public PageTypeSynchronizer(IPageTypeDefinitionLocator pageTypeDefinitionLocator, 
            PageTypeBuilderConfiguration configuration, 
            PageDefinitionSynchronizationEngine pageDefinitionSynchronizationEngine,
            PageTypeDefinitionValidator pageTypeDefinitionValidator,
            PageTypeResolver pageTypeResolver,
            IPageTypeLocator pageTypeLocator,
            PageTypeUpdater pageTypeUpdater,
            TabDefinitionUpdater tabDefinitionUpdater,
            TabLocator tabLocator,
            GlobalPropertySettingsSynchronizer globalPropertySettingsSynchronizer,
            IHooksHandler hooksHandler)
        {
            _configuration = configuration;
            this.pageTypeResolver = pageTypeResolver;
            TabLocator = tabLocator;
            TabDefinitionUpdater = tabDefinitionUpdater;

            using (new TimingsLogger("Getting page type definitions"))
            {
                _pageTypeDefinitions = pageTypeDefinitionLocator.GetPageTypeDefinitions();
            }

            PageTypeUpdater = pageTypeUpdater;
            PageDefinitionSynchronizationEngine = pageDefinitionSynchronizationEngine;
            PageTypeDefinitionValidator = pageTypeDefinitionValidator;
            _pageTypeLocator = pageTypeLocator;
            this.globalPropertySettingsSynchronizer = globalPropertySettingsSynchronizer;
            this.hooksHandler = hooksHandler;
        }
        public void GivenPageTypeUpdationDisabled_SynchronizePageTypes_OnlyAddsExistingPageTypesToResolver()
        {
            MockRepository            fakes = new MockRepository();
            List <PageTypeDefinition> allPageTypeDefinitions = new List <PageTypeDefinition>
            {
                new PageTypeDefinition(),
                new PageTypeDefinition()
            };
            List <PageTypeDefinition> nonExistingPageTypesDefinitions = new List <PageTypeDefinition> {
                allPageTypeDefinitions[0]
            };
            PageTypeBuilderConfiguration configuration = fakes.Stub <PageTypeBuilderConfiguration>();

            configuration.Stub(config => config.DisablePageTypeUpdation).Return(true);
            configuration.Replay();
            IPageTypeDefinitionLocator pageTypeDefinitionLocator = CreatePageTypeDefinitionLocatorStub(allPageTypeDefinitions);
            PageTypeSynchronizer       pageTypeSynchronizer      = GetPageTypePartiallyMockedSynchronizer(pageTypeDefinitionLocator, configuration);

            pageTypeSynchronizer.Stub(synchronizer => synchronizer.GetNonExistingPageTypes(allPageTypeDefinitions)).Return(nonExistingPageTypesDefinitions);
            pageTypeSynchronizer.Replay();

            pageTypeSynchronizer.SynchronizePageTypes();

            pageTypeSynchronizer.AssertWasCalled(synchronizer => synchronizer.AddPageTypesToResolver(Arg <List <PageTypeDefinition> > .Matches(list => list.Count == 1)));
        }
 public static PageTypeSynchronizer PartialMock(
     MockRepository fakesRepository,
     IPageTypeDefinitionLocator definitionLocator,
     PageTypeBuilderConfiguration configuration)
 {
     return(fakesRepository.PartialMock <PageTypeSynchronizer>(
                definitionLocator,
                configuration,
                PageTypePropertyUpdaterFactory.Create(),
                new PageTypeDefinitionValidator(new PageDefinitionTypeMapper(new PageDefinitionTypeFactory())),
                new PageTypeResolver(),
                new PageTypeLocator(new PageTypeFactory()),
                PageTypeUpdaterFactory.Create(),
                TabDefinitionUpdaterFactory.Create(),
                TabLocatorFactory.Create()));
 }
        public void GivenPageTypeUpdationDisabled_SynchronizePageTypes_DoesNotUpdatePageTypePropertyDefinitions()
        {
            MockRepository fakes = new MockRepository();
            PageTypeBuilderConfiguration configuration = fakes.Stub <PageTypeBuilderConfiguration>();

            configuration.Stub(config => config.DisablePageTypeUpdation).Return(true);
            configuration.Replay();
            IPageTypeDefinitionLocator pageTypeDefinitionLocator = CreatePageTypeDefinitionLocatorStub(new List <PageTypeDefinition>());
            PageTypeSynchronizer       pageTypeSynchronizer      = GetPageTypePartiallyMockedSynchronizer(pageTypeDefinitionLocator, configuration);

            pageTypeSynchronizer.Stub(synchronizer =>
                                      synchronizer.GetNonExistingPageTypes(Arg <List <PageTypeDefinition> > .Is.Anything)).Return(new List <PageTypeDefinition>());

            pageTypeSynchronizer.SynchronizePageTypes();

            pageTypeSynchronizer.AssertWasNotCalled(synchronizer => synchronizer.UpdatePageTypePropertyDefinitions(Arg <List <PageTypeDefinition> > .Is.Anything));
        }
 public static PageTypeSynchronizer PartialMock(
     MockRepository fakesRepository, 
     IPageTypeDefinitionLocator definitionLocator, 
     PageTypeBuilderConfiguration configuration)
 {
     return fakesRepository.PartialMock<PageTypeSynchronizer>(
         definitionLocator,
         configuration,
         PageDefinitionSynchronizationEngineFactory.Create(),
         new PageTypeDefinitionValidator(new PageDefinitionTypeMapper(new PageDefinitionTypeRepository(), new NativePageDefinitionsMap())),
         new PageTypeResolver(),
         new PageTypeLocator(new PageTypeRepository()),
         PageTypeUpdaterFactory.Create(),
         TabDefinitionUpdaterFactory.Create(),
         TabLocatorFactory.Create(),
         new GlobalPropertySettingsSynchronizer(() => new PropertySettingsRepository(), new GlobalPropertySettingsLocator(new AppDomainAssemblyLocator())),
         new HooksHandler(new AppDomainAssemblyLocator()));
 }
Exemplo n.º 6
0
 public PageTypeSynchronizer(IPageTypeDefinitionLocator pageTypeDefinitionLocator,
                             PageTypeBuilderConfiguration configuration,
                             PageTypePropertyUpdater pageTypePropertyUpdater,
                             PageTypeDefinitionValidator pageTypeDefinitionValidator,
                             PageTypeResolver pageTypeResolver,
                             IPageTypeLocator pageTypeLocator,
                             PageTypeUpdater pageTypeUpdater,
                             TabDefinitionUpdater tabDefinitionUpdater,
                             TabLocator tabLocator)
 {
     _configuration              = configuration;
     PageTypeResolver            = pageTypeResolver;
     TabLocator                  = tabLocator;
     TabDefinitionUpdater        = tabDefinitionUpdater;
     _pageTypeDefinitions        = pageTypeDefinitionLocator.GetPageTypeDefinitions();
     PageTypeUpdater             = pageTypeUpdater;
     PageTypePropertyUpdater     = pageTypePropertyUpdater;
     PageTypeDefinitionValidator = pageTypeDefinitionValidator;
     _pageTypeLocator            = pageTypeLocator;
 }
Exemplo n.º 7
0
 public PageTypeSynchronizer(IPageTypeDefinitionLocator pageTypeDefinitionLocator,
                             PageTypeBuilderConfiguration configuration,
                             PageDefinitionSynchronizationEngine pageDefinitionSynchronizationEngine,
                             PageTypeDefinitionValidator pageTypeDefinitionValidator,
                             PageTypeResolver pageTypeResolver,
                             IPageTypeLocator pageTypeLocator,
                             PageTypeUpdater pageTypeUpdater,
                             TabDefinitionUpdater tabDefinitionUpdater,
                             TabLocator tabLocator,
                             GlobalPropertySettingsSynchronizer globalPropertySettingsSynchronizer,
                             IHooksHandler hooksHandler)
 {
     _configuration        = configuration;
     this.pageTypeResolver = pageTypeResolver;
     TabLocator            = tabLocator;
     TabDefinitionUpdater  = tabDefinitionUpdater;
     _pageTypeDefinitions  = pageTypeDefinitionLocator.GetPageTypeDefinitions();
     PageTypeUpdater       = pageTypeUpdater;
     PageDefinitionSynchronizationEngine = pageDefinitionSynchronizationEngine;
     PageTypeDefinitionValidator         = pageTypeDefinitionValidator;
     _pageTypeLocator = pageTypeLocator;
     this.globalPropertySettingsSynchronizer = globalPropertySettingsSynchronizer;
     this.hooksHandler = hooksHandler;
 }
Exemplo n.º 8
0
        public void DisablePageTypeUpdation_DefaultsToFalse()
        {
            PageTypeBuilderConfiguration configuration = new PageTypeBuilderConfiguration();

            Assert.Equal <bool>(false, configuration.DisablePageTypeUpdation);
        }
Exemplo n.º 9
0
        public void GivenPageTypeUpdationDisabledInAppConfig_DisablePageTypeUpdation_ReturnsTrue()
        {
            PageTypeBuilderConfiguration configuration = PageTypeBuilderConfiguration.GetConfiguration();

            Assert.Equal <bool>(true, configuration.DisablePageTypeUpdation);
        }
 public void Configure(ContainerBuilder containerBuilder)
 {
     containerBuilder
     .RegisterType <AppDomainAssemblyLocator>()
     .As <IAssemblyLocator>();
     containerBuilder
     .RegisterType <PageTypeRepository>()
     .As <IPageTypeRepository>();
     containerBuilder
     .RegisterType <PageDefinitionRepository>()
     .As <IPageDefinitionRepository>();
     containerBuilder
     .RegisterType <PageDefinitionTypeRepository>()
     .As <IPageDefinitionTypeRepository>();
     containerBuilder
     .RegisterType <PageTypeLocator>()
     .As <IPageTypeLocator>();
     containerBuilder
     .RegisterType <PageDefinitionTypeRepository>()
     .As <IPageDefinitionTypeRepository>();
     containerBuilder
     .RegisterType <PageTypeDefinitionLocator>()
     .As <IPageTypeDefinitionLocator>();
     containerBuilder
     .RegisterType <PageDefinitionTypeMapper>()
     .As <PageDefinitionTypeMapper>();
     containerBuilder
     .RegisterType <PageTypeValueExtractor>()
     .As <IPageTypeValueExtractor>();
     containerBuilder
     .RegisterType <GlobalPropertySettingsLocator>()
     .As <IGlobalPropertySettingsLocator>();
     containerBuilder
     .RegisterType <GlobalPropertySettingsSynchronizer>()
     .As <GlobalPropertySettingsSynchronizer>();
     containerBuilder
     .RegisterType <PropertySettingsRepository>()
     .As <IPropertySettingsRepository>();
     containerBuilder
     .RegisterType <PageTypeUpdater>()
     .As <PageTypeUpdater>();
     containerBuilder
     .RegisterType <TabDefinitionUpdater>()
     .As <TabDefinitionUpdater>();
     containerBuilder
     .RegisterType <TabLocator>()
     .As <TabLocator>();
     containerBuilder
     .RegisterType <PageDefinitionSynchronizationEngine>()
     .As <PageDefinitionSynchronizationEngine>();
     containerBuilder
     .RegisterType <TabDefinitionRepository>()
     .As <ITabDefinitionRepository>();
     containerBuilder
     .RegisterType <PageTypeSynchronizer>()
     .As <PageTypeSynchronizer>();
     containerBuilder
     .RegisterType <PageTypeDefinitionValidator>()
     .As <PageTypeDefinitionValidator>();
     containerBuilder
     .Register(context => PageTypeBuilderConfiguration.GetConfiguration())
     .As <PageTypeBuilderConfiguration>();
     containerBuilder
     .RegisterInstance(PageTypeResolver.Instance)
     .As <PageTypeResolver>();
     containerBuilder
     .RegisterType <PageDefinitionUpdater>()
     .As <IPageDefinitionUpdater>();
     containerBuilder
     .RegisterType <PageTypePropertyDefinitionLocator>()
     .As <PageTypePropertyDefinitionLocator>();
     containerBuilder
     .RegisterType <NativePageDefinitionsMap>()
     .As <INativePageDefinitionsMap>();
     containerBuilder
     .RegisterType <PageDefinitionSpecificPropertySettingsUpdater>()
     .As <PageDefinitionSpecificPropertySettingsUpdater>();
     containerBuilder
     .RegisterType <HooksHandler>()
     .As <IHooksHandler>();
 }
        private PageTypeSynchronizer GetPageTypePartiallyMockedSynchronizer(IPageTypeDefinitionLocator definitionLocator, PageTypeBuilderConfiguration configuration)
        {
            MockRepository       fakes = new MockRepository();
            PageTypeSynchronizer pageTypeSynchronizer = PageTypeSynchronizerFactory.PartialMock(fakes, definitionLocator, configuration);

            pageTypeSynchronizer.Stub(synchronizer => synchronizer.UpdateTabDefinitions());
            pageTypeSynchronizer.Stub(synchronizer => synchronizer.ValidatePageTypeDefinitions(Arg <List <PageTypeDefinition> > .Is.Anything));
            pageTypeSynchronizer.Stub(synchronizer => synchronizer.CreateNonExistingPageTypes(Arg <List <PageTypeDefinition> > .Is.Anything));
            pageTypeSynchronizer.Stub(synchronizer => synchronizer.UpdatePageTypes(Arg <List <PageTypeDefinition> > .Is.Anything));
            pageTypeSynchronizer.Stub(synchronizer => synchronizer.UpdatePageTypePropertyDefinitions(Arg <List <PageTypeDefinition> > .Is.Anything));
            pageTypeSynchronizer.Stub(synchronizer => synchronizer.AddPageTypesToResolver(Arg <List <PageTypeDefinition> > .Is.Anything));
            pageTypeSynchronizer.Replay();

            return(pageTypeSynchronizer);
        }