# TransactionConcurrencyTestRunnerxUnit Methods

[Type overview](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.xunit/orleans.transactions.testkit.xunit.transactionconcurrencytestrunnerxunit/)

## SingleSharedGrainTest(string) {#singlesharedgraintest-string-257a24a9}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.xunit/orleans.transactions.testkit.xunit.transactionconcurrencytestrunnerxunit/methods/singlesharedgraintest-string-257a24a9/)

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

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

Two transaction share a single grain

### Parameters

- `grainStates` (`string`)

## TransactionChainTest(string) {#transactionchaintest-string-24488f34}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.xunit/orleans.transactions.testkit.xunit.transactionconcurrencytestrunnerxunit/methods/transactionchaintest-string-24488f34/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Transactions.TestKit.xUnit/TransactionConcurrencyTestRunner.cs#L37)

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

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

### Parameters

- `grainStates` (`string`)

## TransactionTreeTest(string) {#transactiontreetest-string-043eab3d}

[Dedicated page](/orleans/docs/api/csharp/microsoft.orleans.transactions.testkit.xunit/orleans.transactions.testkit.xunit.transactionconcurrencytestrunnerxunit/methods/transactiontreetest-string-043eab3d/)

[Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/Orleans.Transactions.TestKit.xUnit/TransactionConcurrencyTestRunner.cs#L51)

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

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

### Parameters

- `grainStates` (`string`)
