public void CreateClientTransactionExtensions()
        {
            var firstExtensions = new[]
            {
                MockRepository.GenerateStub <IPersistenceExtension>(),
                MockRepository.GenerateStub <IPersistenceExtension>()
            };
            var secondExtensions = new[]
            {
                MockRepository.GenerateStub <IPersistenceExtension>(),
                MockRepository.GenerateStub <IPersistenceExtension>()
            };
            var innerFactories = new[]
            {
                MockRepository.GenerateStub <IPersistenceExtensionFactory>(),
                MockRepository.GenerateStub <IPersistenceExtensionFactory>()
            };

            var clientTransactionID = Guid.NewGuid();

            innerFactories[0].Stub(_ => _.CreatePersistenceExtensions(clientTransactionID)).Return(firstExtensions);
            innerFactories[1].Stub(_ => _.CreatePersistenceExtensions(clientTransactionID)).Return(secondExtensions);

            var compoundFactory = new CompoundPersistenceExtensionFactory(innerFactories);

            var extensions = compoundFactory.CreatePersistenceExtensions(clientTransactionID);

            Assert.That(extensions, Is.EqualTo(firstExtensions.Concat(secondExtensions)));
        }
        public void Initialize()
        {
            var innerFactories = new[]
            {
                MockRepository.GenerateStub <IPersistenceExtensionFactory>(),
                MockRepository.GenerateStub <IPersistenceExtensionFactory>()
            };
            var compoundFactory = new CompoundPersistenceExtensionFactory(innerFactories);

            Assert.That(compoundFactory.PersistenceExtensionFactories, Is.Not.SameAs(innerFactories));
            Assert.That(compoundFactory.PersistenceExtensionFactories, Is.EqualTo(innerFactories));
        }