Esempio n. 1
0
        public void GivenPageType_UpdatePageTypePropertyDefinitions_CallsPageTypePropertyUpdaterUpdatePageTypePropertyDefinitions()
        {
            PageTypeDefinition definition = new PageTypeDefinition();

            MockRepository          fakes                   = new MockRepository();
            PageTypeUpdater         pageTypeUpdater         = PageTypeUpdaterFactory.Stub(fakes);
            IPageType               pageType                = new NativePageType();
            PageTypePropertyUpdater pageTypePropertyUpdater = PageTypePropertyUpdaterFactory.Stub(fakes);

            pageTypePropertyUpdater.Stub(updater => updater.UpdatePageTypePropertyDefinitions(pageType, definition));
            pageTypePropertyUpdater.Replay();
            IPageTypeLocator pageTypeLocator = fakes.Stub <IPageTypeLocator>();

            pageTypeLocator.Stub(locator => locator.GetExistingPageType(definition)).Return(pageType);
            pageTypeLocator.Replay();
            List <PageTypeDefinition> definitions = new List <PageTypeDefinition> {
                definition
            };
            PageTypeSynchronizer synchronizer =
                PageTypeSynchronizerFactory.Create(pageTypePropertyUpdater, pageTypeLocator);

            synchronizer.PageTypeUpdater = pageTypeUpdater;
            synchronizer.UpdatePageTypePropertyDefinitions(definitions);

            pageTypePropertyUpdater.AssertWasCalled(updater => updater.UpdatePageTypePropertyDefinitions(pageType, definition));
        }
Esempio n. 2
0
        public void GivenPageTypePropertyDefinition_CreateNewPageDefinition_CallsSetPageDefinitionTypeMethod()
        {
            PageTypePropertyUpdater    partiallyMockedUtility     = CreatePageTypePropertyUpdaterWithFakePageDefinitionFactoryAndFakedSetPageDefinitionTypeMethod();
            PageTypePropertyDefinition pageTypePropertyDefinition = PageTypePropertyUpdaterTestsUtility.CreatePageTypePropertyDefinition();

            PageDefinition returnedPageDefintion = partiallyMockedUtility.CreateNewPageDefinition(pageTypePropertyDefinition);

            partiallyMockedUtility.AssertWasCalled(utility => utility.SetPageDefinitionType(returnedPageDefintion, pageTypePropertyDefinition));
        }
Esempio n. 3
0
        public void GivenPageTypePropertyDefinition_CreateNewPageDefinition_ReturnsPageDefinitionWithCorrectName()
        {
            PageTypePropertyUpdater    utility    = CreatePageTypePropertyUpdaterWithFakePageDefinitionFactoryAndFakedSetPageDefinitionTypeMethod();
            PageTypePropertyDefinition definition = PageTypePropertyUpdaterTestsUtility.CreatePageTypePropertyDefinition();

            PageDefinition returnedPageDefintion = utility.CreateNewPageDefinition(definition);

            Assert.Equal <string>(definition.Name, returnedPageDefintion.Name);
        }
Esempio n. 4
0
        public void Constructor_SetsPageDefinitionTypeMapperPropertyToInstanceOfPageDefinitionTypeMapper()
        {
            Type expectedType = typeof(PageDefinitionTypeMapper);

            PageTypePropertyUpdater updater = PageTypePropertyUpdaterFactory.Create();

            Assert.NotNull(updater.PageDefinitionTypeMapper);
            Assert.Equal <Type>(expectedType, updater.PageDefinitionTypeMapper.GetType());
        }
Esempio n. 5
0
        public void GivenPageTypePropertyDefinition_CreateNewPageDefinition_SavesPageDefinition()
        {
            PageTypePropertyUpdater    utility    = CreatePageTypePropertyUpdaterWithFakePageDefinitionFactoryAndFakedSetPageDefinitionTypeMethod();
            PageTypePropertyDefinition definition = PageTypePropertyUpdaterTestsUtility.CreatePageTypePropertyDefinition();

            PageDefinition returnedPageDefinition = utility.CreateNewPageDefinition(definition);

            utility.PageDefinitionFactory.AssertWasCalled(factory => factory.Save(returnedPageDefinition));
        }
Esempio n. 6
0
        public void GivenPropertyDefinitionWithNoHelpText_UpdatePageDefinitionValues_SetsHelpTextToEmptyString()
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <string>(string.Empty, pageDefinitionToUpdate.HelpText);
        }
Esempio n. 7
0
        public void GivenPropertyDefinition_UpdatePageDefinitionValues_CallsUpdatePageDefinitionTab()
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            pageTypePropertyUpdater.AssertWasCalled(
                utility => utility.UpdatePageDefinitionTab(pageDefinitionToUpdate, propertyDefinition.PageTypePropertyAttribute));
        }
Esempio n. 8
0
        private PageTypePropertyUpdater CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod()
        {
            MockRepository          fakes = new MockRepository();
            PageTypePropertyUpdater pageTypePropertyUpdater = PageTypePropertyUpdaterFactory.PartialMock(fakes);

            pageTypePropertyUpdater.Stub(
                utility => utility.UpdatePageDefinitionTab(Arg <PageDefinition> .Is.Anything,
                                                           Arg <PageTypePropertyAttribute> .Is.Anything));
            pageTypePropertyUpdater.Replay();
            return(pageTypePropertyUpdater);
        }
Esempio n. 9
0
        public void GivenPageTypePropertyDefinitionWithEditCaption_CreateNewPageDefinition_SetsEditCaptionToDefinitionEditCaption()
        {
            PageTypePropertyUpdater    partiallyMockedUtility     = CreatePageTypePropertyUpdaterWithFakePageDefinitionFactoryAndFakedSetPageDefinitionTypeMethod();
            PageTypePropertyDefinition pageTypePropertyDefinition = PageTypePropertyUpdaterTestsUtility.CreatePageTypePropertyDefinition();

            pageTypePropertyDefinition.PageTypePropertyAttribute.EditCaption = TestValueUtility.CreateRandomString();

            PageDefinition returnedPageDefintion = partiallyMockedUtility.CreateNewPageDefinition(pageTypePropertyDefinition);

            Assert.Equal <string>(pageTypePropertyDefinition.PageTypePropertyAttribute.EditCaption, returnedPageDefintion.EditCaption);
        }
Esempio n. 10
0
        public void GivePropertyDefinition_UpdatePageDefinitionValues_UpdatesPageDefinitionDefaultValueType(DefaultValueType defaultValueType)
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.DefaultValueType = defaultValueType;

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <DefaultValueType>(propertyDefinition.PageTypePropertyAttribute.DefaultValueType, pageDefinitionToUpdate.DefaultValueType);
        }
Esempio n. 11
0
        public void GivePropertyDefinition_UpdatePageDefinitionValues_UpdatesPageDefinitionDefaultValue()
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.DefaultValue = TestValueUtility.CreateRandomString();

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <string>(propertyDefinition.PageTypePropertyAttribute.DefaultValue.ToString(), pageDefinitionToUpdate.DefaultValue);
        }
Esempio n. 12
0
        public void GivePropertyDefinition_UpdatePageDefinitionValues_UpdatesPageDefinitionSearchable(bool searchable)
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.Searchable = searchable;

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <bool>(propertyDefinition.PageTypePropertyAttribute.Searchable, pageDefinitionToUpdate.Searchable);
        }
Esempio n. 13
0
        public void GivePropertyDefinition_UpdatePageDefinitionValues_UpdatesPageDefinitionRequired(bool required)
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.Required = required;

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <bool>(propertyDefinition.PageTypePropertyAttribute.Required, pageDefinitionToUpdate.Required);
        }
        public void GivenPageDefinitionWithSpecifiedLongStringSetting_UpdatePageDefinition_ReturnsDifferentStringThanWhenCalledWithPageDefinitionWithNoLongStringSettings()
        {
            PageTypePropertyUpdater pageTypePropertyUpdater = PageTypePropertyUpdaterFactory.Create();
            PageDefinition          pageDefinition          = new PageDefinition();
            string valuesWithOutClearAllLongStringSettings  = pageTypePropertyUpdater.SerializeValues(pageDefinition);

            pageDefinition.LongStringSettings = EditorToolOption.Bold;

            string returnedValue = pageTypePropertyUpdater.SerializeValues(pageDefinition);

            Assert.NotEqual <string>(valuesWithOutClearAllLongStringSettings, returnedValue);
        }
Esempio n. 15
0
        public void GivePropertyDefinition_UpdatePageDefinitionValues_UpdatesPageDefinitionDisplayEditMode(bool displayInEditMode)
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.DisplayInEditMode = displayInEditMode;

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <bool>(propertyDefinition.PageTypePropertyAttribute.DisplayInEditMode, pageDefinitionToUpdate.DisplayEditUI);
        }
Esempio n. 16
0
        public void GivePropertyDefinitionWithNoEditCaption_UpdatePageDefinitionValues_SetsPageDefinitionEditCaptionToName()
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.EditCaption = null;

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <string>(propertyDefinition.Name, pageDefinitionToUpdate.EditCaption);
        }
Esempio n. 17
0
        public void GivePropertyDefinition_UpdatePageDefinitionValues_UpdatesPageDefinitionFieldOrder(int sortOrder)
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.SortOrder = sortOrder;

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <int>(propertyDefinition.PageTypePropertyAttribute.SortOrder, pageDefinitionToUpdate.FieldOrder);
        }
Esempio n. 18
0
        public void GivenPropertyDefinition_UpdatePageDefinition_CallsUpdatePageDefinitionValues()
        {
            PageTypePropertyUpdater pageTypePropertyUpdater =
                CreatePageTypePropertyUpdaterWithFakePageDefinitionFactoryAndFakeUpdatePageDefinitionValuesMethod();
            PageDefinition             pageDefinitionToUpdate = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition     = CreatePageTypePropertyDefinition();

            pageTypePropertyUpdater.UpdatePageDefinition(pageDefinitionToUpdate, propertyDefinition);

            pageTypePropertyUpdater.AssertWasCalled(
                utility => utility.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition));
        }
Esempio n. 19
0
        public void GivePropertyDefinitionWithNoLongStringSettings_UpdatePageDefinitionValues_SetLongStringSettingsToAll()
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <EditorToolOption>(
                EditorToolOption.All,
                pageDefinitionToUpdate.LongStringSettings);
        }
Esempio n. 20
0
        public void GivePropertyDefinition_UpdatePageDefinitionValues_UpdatesPageDefinitionLanguageSpecific(bool uniqueValuePerLanguage)
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.UniqueValuePerLanguage = uniqueValuePerLanguage;

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <bool>(propertyDefinition.PageTypePropertyAttribute.UniqueValuePerLanguage, pageDefinitionToUpdate.LanguageSpecific);
        }
 public static PageTypeSynchronizer Create(PageTypePropertyUpdater pageTypePropertyUpdater, IPageTypeLocator pageTypeLocator)
 {
     return(new PageTypeSynchronizer(
                PageTypeDefinitionLocatorFactory.Create(),
                new PageTypeBuilderConfiguration(),
                pageTypePropertyUpdater,
                new PageTypeDefinitionValidator(new PageDefinitionTypeMapper(new PageDefinitionTypeFactory())),
                PageTypeResolver.Instance,
                pageTypeLocator,
                PageTypeUpdaterFactory.Create(),
                TabDefinitionUpdaterFactory.Create(),
                TabLocatorFactory.Create()));
 }
Esempio n. 22
0
        public void GivenPageType_UpdatePageTypePropertyDefinitions_CallsGetPageTypePropertyDefinitions()
        {
            List <PageTypePropertyDefinition> definitions             = new List <PageTypePropertyDefinition>();
            PageTypePropertyUpdater           pageTypePropertyUpdater = CreatePageTypePropertyUpdater(definitions);
            IPageType          pageType           = new NativePageType();
            PageTypeDefinition pageTypeDefinition = new PageTypeDefinition();

            pageTypePropertyUpdater.UpdatePageTypePropertyDefinitions(pageType, pageTypeDefinition);

            pageTypePropertyUpdater.PageTypePropertyDefinitionLocator.AssertWasCalled(
                locator => locator.GetPageTypePropertyDefinitions(
                    pageType, pageTypeDefinition.Type));
        }
Esempio n. 23
0
        public void GivePropertyDefinitionWithNoLongStringSettingsAndClearAllLongStringSettings_UpdatePageDefinitionValues_SetLongStringSettingsToDefault()
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.ClearAllLongStringSettings = true;

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <EditorToolOption>(
                default(EditorToolOption),
                pageDefinitionToUpdate.LongStringSettings);
        }
Esempio n. 24
0
        public void GivePropertyDefinition_UpdatePageDefinitionValues_UpdatesPageDefinitionLongStringSettings(
            EditorToolOption longStringSettings)
        {
            PageTypePropertyUpdater    pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition             pageDefinitionToUpdate  = new PageDefinition();
            PageTypePropertyDefinition propertyDefinition      = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.LongStringSettings = longStringSettings;

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <EditorToolOption>(
                propertyDefinition.PageTypePropertyAttribute.LongStringSettings,
                pageDefinitionToUpdate.LongStringSettings);
        }
Esempio n. 25
0
        public void GivenPropertyDefinitionWithNewEditCaption_UpdatePageDefinitionValues_UpdatedPageDefinitionEditCaption()
        {
            PageTypePropertyUpdater pageTypePropertyUpdater = CreatePageTypePropertyUpdaterWithFakeUpdatePageDefinitionTabMethod();
            PageDefinition          pageDefinitionToUpdate  = new PageDefinition();

            pageDefinitionToUpdate.EditCaption = TestValueUtility.CreateRandomString();
            string newEditCaption = TestValueUtility.CreateRandomString();
            PageTypePropertyDefinition propertyDefinition = CreatePageTypePropertyDefinition();

            propertyDefinition.PageTypePropertyAttribute.EditCaption = newEditCaption;

            pageTypePropertyUpdater.UpdatePageDefinitionValues(pageDefinitionToUpdate, propertyDefinition);

            Assert.Equal <string>(newEditCaption, pageDefinitionToUpdate.EditCaption);
        }
Esempio n. 26
0
        private PageTypePropertyUpdater CreatePageTypePropertyUpdaterWithFakePageDefinitionFactoryAndFakeUpdatePageDefinitionValuesMethod()
        {
            MockRepository          fakes = new MockRepository();
            PageTypePropertyUpdater pageTypePropertyUpdater = PageTypePropertyUpdaterFactory.PartialMock(fakes);

            pageTypePropertyUpdater.Stub(
                utility => utility.UpdatePageDefinitionValues(
                    Arg <PageDefinition> .Is.Anything, Arg <PageTypePropertyDefinition> .Is.Anything));
            pageTypePropertyUpdater.Replay();
            PageDefinitionFactory fakeFactory = fakes.Stub <PageDefinitionFactory>();

            fakeFactory.Stub(factory => factory.Save(Arg <PageDefinition> .Is.Anything));
            fakeFactory.Replay();
            pageTypePropertyUpdater.PageDefinitionFactory = fakeFactory;
            return(pageTypePropertyUpdater);
        }
Esempio n. 27
0
        public void GivenPageTypeWithPropertyAndCorrespondingPropertyDefition_GetExistingPropertyDefinition_ReturnsPageDefinition()
        {
            PageTypePropertyUpdater utility = PageTypePropertyUpdaterFactory.Create();
            IPageType pageType = new NativePageType();
            string    name     = TestValueUtility.CreateRandomString();
            Type      type     = typeof(string);
            PageTypePropertyAttribute  attribute = new PageTypePropertyAttribute();
            PageTypePropertyDefinition pageTypePropertyDefinition = new PageTypePropertyDefinition(name, type, pageType, attribute);
            PageDefinition             pageDefinition             = new PageDefinition();

            pageDefinition.Name = name;
            pageType.Definitions.Add(pageDefinition);

            PageDefinition returnedPageDefinition = utility.GetExistingPageDefinition(pageType, pageTypePropertyDefinition);

            Assert.Equal <PageDefinition>(pageDefinition, returnedPageDefinition);
        }
Esempio n. 28
0
        private PageTypePropertyUpdater CreatePageTypePropertyUpdaterWithFakePageDefinitionFactoryAndFakedSetPageDefinitionTypeMethod()
        {
            MockRepository        fakes = new MockRepository();
            PageDefinitionFactory fakePageDefinitionFactory = fakes.Stub <PageDefinitionFactory>();

            fakePageDefinitionFactory.Stub(factory => factory.Save(Arg <PageDefinition> .Is.Anything));
            fakePageDefinitionFactory.Replay();
            PageTypePropertyUpdater partiallyMockedUtility = PageTypePropertyUpdaterFactory.PartialMock(fakes);

            partiallyMockedUtility.Stub(
                utility => utility.SetPageDefinitionType(
                    Arg <PageDefinition> .Is.Anything, Arg <PageTypePropertyDefinition> .Is.Anything));
            partiallyMockedUtility.PageDefinitionFactory = fakePageDefinitionFactory;
            partiallyMockedUtility.Replay();

            return(partiallyMockedUtility);
        }
Esempio n. 29
0
        public void GivenPageTypePropertyDefinition_CreateNewPageDefinition_ReturnsPageDefinitionWithCorrectType2()
        {
            PageDefinitionType expectedPageDefintionType = new PageDefinitionType(
                1, PropertyDataType.String, TestValueUtility.CreateRandomString());

            PageTypePropertyDefinition pageTypePropertyDefinition = PageTypePropertyUpdaterTestsUtility.CreatePageTypePropertyDefinition();
            PageDefinition             pageDefinition             = new PageDefinition();
            MockRepository             fakes = new MockRepository();
            PageTypePropertyUpdater    pageTypePropertyUpdater = PageTypePropertyUpdaterFactory.PartialMock(fakes);

            pageTypePropertyUpdater.Stub(
                utility => utility.GetPageDefinitionType(pageTypePropertyDefinition)
                ).Return(expectedPageDefintionType);
            pageTypePropertyUpdater.Replay();

            pageTypePropertyUpdater.SetPageDefinitionType(pageDefinition, pageTypePropertyDefinition);

            Assert.Equal <PageDefinitionType>(expectedPageDefintionType, pageDefinition.Type);
        }
        public void Initialize(InitializationEngine context)
        {
            var pageTypeLocator           = new PageTypeLocator(new PageTypeFactory());
            var pageTypeDefinitionLocator = new PageTypeDefinitionLocator(
                new AppDomainAssemblyLocator());
            var pageTypeUpdater = new PageTypeUpdater(
                pageTypeDefinitionLocator,
                new PageTypeFactory(),
                new PageTypeValueExtractor(),
                pageTypeLocator);

            var pageTypePropertyUpdater = new PageTypePropertyUpdater(
                new PageDefinitionFactory(),
                new PageDefinitionTypeFactory(),
                new TabFactory(),
                new PropertySettingsRepository());

            var tabDefinitionUpdater = new TabDefinitionUpdater(new TabFactory());

            var tabLocator = new TabLocator(new AppDomainAssemblyLocator());

            PageTypeSynchronizer synchronizer = new PageTypeSynchronizer(
                pageTypeDefinitionLocator,
                Configuration,
                pageTypePropertyUpdater,
                new PageTypeDefinitionValidator(new PageDefinitionTypeMapper(new PageDefinitionTypeFactory())),
                PageTypeResolver.Instance,
                pageTypeLocator,
                pageTypeUpdater,
                tabDefinitionUpdater,
                tabLocator);

            synchronizer.SynchronizePageTypes();

            DataFactory.Instance.LoadedPage            += DataFactory_LoadedPage;
            DataFactory.Instance.LoadedChildren        += DataFactory_LoadedChildren;
            DataFactory.Instance.LoadedDefaultPageData += DataFactory_LoadedPage;
        }