public void CreateRootTransaction_WithExtension()
        {
            ITransactionFactory factory = MockRepository.GenerateMock <ClientTransactionFactory>();

            var extensionStub = MockRepository.GenerateStub <IClientTransactionExtension>();

            extensionStub.Stub(stub => stub.Key).Return("extension");

            factory.Expect(mock => PrivateInvoke.InvokeNonPublicMethod(mock, "OnTransactionCreated", Arg <ClientTransaction> .Is.NotNull)).WhenCalled(
                invocation => ((ClientTransaction)invocation.Arguments[0]).Extensions.Add(extensionStub));

            ITransaction transaction = factory.CreateRootTransaction();

            var clientTransaction = transaction.To <ClientTransaction>();

            Assert.That(clientTransaction.Extensions, Has.Member(extensionStub));
        }