protected override void Arrange()
            {
                _suppliedSourceExtension1Object                = MockRepository.GenerateStub <IMappableExtensionEntity>();
                _suppliedSourceExtension2Object                = MockRepository.GenerateStub <IMappableExtensionEntity>();
                _suppliedEmptyImplicitSourceExtensionObject    = MockRepository.GenerateStub <IMappableImplicitExtensionEntity>();
                _suppliedNonEmptyImplicitSourceExtensionObject = MockRepository.GenerateStub <IMappableImplicitExtensionEntity>();

                _suppliedEmptyImplicitSourceExtensionObject.Expect(x => x.IsEmpty()).Return(true);
                _suppliedNonEmptyImplicitSourceExtensionObject.Expect(x => x.IsEmpty()).Return(false);

                // Entity extensions are always wrapped in a list, due to NHibernate mappings
                var sourceExtensions = new Dictionary <string, object>
                {
                    { "Extension1", new List <IMappableExtensionEntity> {
                          _suppliedSourceExtension1Object
                      } },
                    { "Extension2", new List <IMappableExtensionEntity> {
                          _suppliedSourceExtension2Object
                      } },
                    { "EmptyImplicitExtension", new List <IMappableExtensionEntity> {
                          _suppliedEmptyImplicitSourceExtensionObject
                      } },
                    { "NonEmptyImplicitExtension", new List <IMappableExtensionEntity> {
                          _suppliedNonEmptyImplicitSourceExtensionObject
                      } },
                };

                _suppliedSourceObject = new FakeEntityWithExtensions(sourceExtensions);

                // Resources don't start with Extensions initialized
                _suppliedTargetObject = new FakeEntityWithExtensions(null);

                IHasExtensionsExtensions.CreateTargetExtensionObject
                    = (t, x) =>
                    {
                    var targetExtensionObjectMock = mocks.Stub <IMappableResource>();
                    targetExtensionObjectMock.Replay();

                    _suppliedTargetExtensionObjectByExtensionName.Add(x, targetExtensionObjectMock);

                    return(targetExtensionObjectMock);
                    };
            }
            protected override void Arrange()
            {
                _suppliedSourceExtension1Object = MockRepository.GenerateStub <IMappableExtensionEntity>();
                _suppliedSourceExtension2Object = MockRepository.GenerateStub <IMappableExtensionEntity>();

                // Entity extensions are always wrapped in a list, due to NHibernate mappings
                var sourceExtensions = new Dictionary <string, object>
                {
                    {
                        "Extension1", new List <IMappableExtensionEntity>
                        {
                            _suppliedSourceExtension1Object
                        }
                    },
                    {
                        "Extension2", new List <IMappableExtensionEntity>
                        {
                            _suppliedSourceExtension2Object
                        }
                    }
                };

                _suppliedSourceObject = new FakeEntityWithExtensions(sourceExtensions);

                var targetExtensions = new Dictionary <string, object>();

                _suppliedTargetObject = new FakeEntityWithExtensions(targetExtensions);

                IHasExtensionsExtensions.CreateTargetExtensionObject
                    = (t, x) =>
                    {
                    var targetExtensionObjectMock = mocks.Stub <IMappableExtensionEntity>();
                    targetExtensionObjectMock.Replay();

                    _suppliedTargetExtensionObjectByExtensionName.Add(x, targetExtensionObjectMock);

                    return(targetExtensionObjectMock);
                    };
            }