# TransactionConcurrencyTestRunner Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.transactionconcurrencytestrunner/)

## SingleSharedGrainTest(string) {#singlesharedgraintest-string-677c0614}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.transactionconcurrencytestrunner/methods/singlesharedgraintest-string-677c0614/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Transactions.TestKit.Base/TestRunners/TransactionConcurrencyTestRunner.cs#L23-L41)

```csharp
public virtual Task SingleSharedGrainTest(string grainStates)
```

Two transaction share a single grain

### Parameters

- `grainStates` (`string`)

## TransactionChainTest(string) {#transactionchaintest-string-b04f5fc3}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.transactionconcurrencytestrunner/methods/transactionchaintest-string-b04f5fc3/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Transactions.TestKit.Base/TestRunners/TransactionConcurrencyTestRunner.cs#L52-L82)

```csharp
public virtual Task TransactionChainTest(string grainStates)
```

Chain of transactions, each dependent on the results of the previous

### Parameters

- `grainStates` (`string`)

## TransactionTreeTest(string) {#transactiontreetest-string-33c1ed10}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.base/orleans.transactions.testkit.transactionconcurrencytestrunner/methods/transactiontreetest-string-33c1ed10/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Transactions.TestKit.Base/TestRunners/TransactionConcurrencyTestRunner.cs#L93-L117)

```csharp
public virtual Task TransactionTreeTest(string grainStates)
```

Single transaction containing two grains is dependent on two other transaction, one from each grain

### Parameters

- `grainStates` (`string`)
