public virtual async Task TransactionGrainsThrowWhenTransactions(string transactionTestGrainClassName)
        {
            const int             delta = 5;
            ITransactionTestGrain grain = RandomTestGrain(transactionTestGrainClassName);
            OrleansStartTransactionFailedException exception = await Assert.ThrowsAsync <OrleansStartTransactionFailedException>(() => grain.Set(delta));

            Assert.IsAssignableFrom <OrleansTransactionsDisabledException>(exception.InnerException);
        }
        public virtual async Task MultiTransactionGrainsThrowWhenTransactions(string transactionTestGrainClassName)
        {
            const int delta      = 5;
            const int grainCount = TransactionTestConstants.MaxCoordinatedTransactions;

            List <ITransactionTestGrain> grains =
                Enumerable.Range(0, grainCount)
                .Select(i => RandomTestGrain(transactionTestGrainClassName))
                .ToList();
            ITransactionCoordinatorGrain coordinator = this.grainFactory.GetGrain <ITransactionCoordinatorGrain>(Guid.NewGuid());

            OrleansStartTransactionFailedException exception = await Assert.ThrowsAsync <OrleansStartTransactionFailedException>(() => coordinator.MultiGrainSet(grains, delta));

            Assert.IsAssignableFrom <OrleansTransactionsDisabledException>(exception.InnerException);
        }