Example #1
0
        public void Constructor_SetsTabFactoryPropertyValue()
        {
            TabDefinitionUpdater tabUpdater = TabDefinitionUpdaterFactory.Create();

            Assert.NotNull(tabUpdater.TabDefinitionRepository);
            Assert.Equal <Type>(typeof(TabDefinitionRepository), tabUpdater.TabDefinitionRepository.GetType());
        }
        public void GivenExistingTabThatShouldBeUpdated_UpdateTabDefinitions_UpdatesTab()
        {
            MockRepository       fakes = new MockRepository();
            TabDefinitionUpdater tabDefinitionUpdater = TabDefinitionUpdaterFactory.PartialMock(fakes);
            List <Tab>           tabs = new List <Tab>();
            Tab existingTab           = new TestTab();

            tabs.Add(existingTab);
            tabDefinitionUpdater.Stub(updater => updater.UpdateTabDefinition(Arg <TabDefinition> .Is.Anything, Arg <Tab> .Is.Anything));
            TabDefinitionRepository fakeTabDefinitionRepository = fakes.Stub <TabDefinitionRepository>();

            tabDefinitionUpdater.TabDefinitionRepository = fakeTabDefinitionRepository;
            TabDefinition existingTabDefinition = TabDefinitionUpdaterTestsUtility.CreateTabDefinition(existingTab);

            tabDefinitionUpdater.TabDefinitionRepository.Stub(factory => factory.GetTabDefinition(existingTab.Name)).Return(existingTabDefinition);
            tabDefinitionUpdater.TabDefinitionRepository.Stub(factory => factory.SaveTabDefinition(Arg <TabDefinition> .Is.Anything));
            tabDefinitionUpdater.TabDefinitionRepository.Replay();
            tabDefinitionUpdater.Stub(updater => updater.TabDefinitionShouldBeUpdated(existingTabDefinition, existingTab)).Return(true);
            tabDefinitionUpdater.Replay();

            tabDefinitionUpdater.UpdateTabDefinitions(tabs);

            tabDefinitionUpdater.AssertWasCalled(updater => updater.UpdateTabDefinition(existingTabDefinition, existingTab));
            tabDefinitionUpdater.TabDefinitionRepository.AssertWasCalled(factory => factory.SaveTabDefinition(existingTabDefinition));
        }
        public void GivenTabDefinitionWithAllValuesEqualToTab_TabDefinitionShouldBeUpdated_ReturnsFalse()
        {
            Tab                  tab                  = new TestTab();
            TabDefinition        tabDefinition        = TabDefinitionUpdaterTestsUtility.CreateTabDefinition(tab);
            TabDefinitionUpdater tabDefinitionUpdater = TabDefinitionUpdaterFactory.Create();

            bool shouldBeUpdated = tabDefinitionUpdater.TabDefinitionShouldBeUpdated(tabDefinition, tab);

            Assert.False(shouldBeUpdated);
        }
        public void GivenTab_UpdateTabDefinition_UpdatesTabDefinitionsSortIndex()
        {
            Tab           tab           = new TestTab();
            TabDefinition tabDefinition = TabDefinitionUpdaterTestsUtility.CreateTabDefinition(tab);

            tabDefinition.SortIndex = tab.SortIndex + 1;
            TabDefinitionUpdater tabDefinitionUpdater = TabDefinitionUpdaterFactory.Create();

            tabDefinitionUpdater.UpdateTabDefinition(tabDefinition, tab);

            Assert.Equal <int>(tab.SortIndex, tabDefinition.SortIndex);
        }
        public void GivenTab_UpdateTabDefinition_UpdatesTabDefinitionsRequiredAccess()
        {
            Tab           tab           = new TestTab();
            TabDefinition tabDefinition = TabDefinitionUpdaterTestsUtility.CreateTabDefinition(tab);

            tabDefinition.RequiredAccess = tab.RequiredAccess + 1;
            TabDefinitionUpdater tabDefinitionUpdater = TabDefinitionUpdaterFactory.Create();

            tabDefinitionUpdater.UpdateTabDefinition(tabDefinition, tab);

            Assert.Equal <AccessLevel>(tab.RequiredAccess, tabDefinition.RequiredAccess);
        }
        public void GivenTab_UpdateTabDefinition_UpdatesTabDefinitionsName()
        {
            Tab           tab           = new TestTab();
            TabDefinition tabDefinition = TabDefinitionUpdaterTestsUtility.CreateTabDefinition(tab);

            tabDefinition.Name = TestValueUtility.CreateRandomString();
            TabDefinitionUpdater tabDefinitionUpdater = TabDefinitionUpdaterFactory.Create();

            tabDefinitionUpdater.UpdateTabDefinition(tabDefinition, tab);

            Assert.Equal <string>(tab.Name, tabDefinition.Name);
        }
        public void GivenTabDefinitionWithDifferentSortIndex_TabDefinitionShouldBeUpdated_ReturnsTrue()
        {
            Tab           tab           = new TestTab();
            TabDefinition tabDefinition = TabDefinitionUpdaterTestsUtility.CreateTabDefinition(tab);

            tabDefinition.SortIndex++;
            TabDefinitionUpdater tabDefinitionUpdater = TabDefinitionUpdaterFactory.Create();

            bool shouldBeUpdated = tabDefinitionUpdater.TabDefinitionShouldBeUpdated(tabDefinition, tab);

            Assert.True(shouldBeUpdated);
        }
        public void GivenTabDefinitionWithDifferentName_TabDefinitionShouldBeUpdated_ReturnsTrue()
        {
            Tab           tab           = new TestTab();
            TabDefinition tabDefinition = TabDefinitionUpdaterTestsUtility.CreateTabDefinition(tab);

            tabDefinition.Name = TestValueUtility.CreateRandomString();
            TabDefinitionUpdater tabDefinitionUpdater = TabDefinitionUpdaterFactory.Create();

            bool shouldBeUpdated = tabDefinitionUpdater.TabDefinitionShouldBeUpdated(tabDefinition, tab);

            Assert.True(shouldBeUpdated);
        }
        public void GivenExistingTab_UpdateTabDefinitions_DoesNotSaveTab()
        {
            MockRepository       fakes = new MockRepository();
            TabDefinitionUpdater tabDefinitionUpdater = TabDefinitionUpdaterFactory.Create();
            List <Tab>           tabs = new List <Tab>();
            Tab existingTab           = new TestTab();

            tabs.Add(existingTab);
            TabDefinitionRepository fakeTabDefinitionRepository = fakes.Stub <TabDefinitionRepository>();

            tabDefinitionUpdater.TabDefinitionRepository = fakeTabDefinitionRepository;
            TabDefinition existingTabDefinition = TabDefinitionUpdaterTestsUtility.CreateTabDefinition(existingTab);

            tabDefinitionUpdater.TabDefinitionRepository.Stub(factory => factory.GetTabDefinition(existingTab.Name)).Return(existingTabDefinition);
            tabDefinitionUpdater.TabDefinitionRepository.Replay();

            tabDefinitionUpdater.UpdateTabDefinitions(tabs);

            tabDefinitionUpdater.TabDefinitionRepository.AssertWasNotCalled(factory => factory.SaveTabDefinition(Arg <TabDefinition> .Is.Anything));
        }
        public void GivenNewTab_UpdateTabDefinitions_SavesNewTabDefinition()
        {
            MockRepository       fakes = new MockRepository();
            TabDefinitionUpdater tabDefinitionUpdater = TabDefinitionUpdaterFactory.PartialMock(fakes);
            List <Tab>           tabs = new List <Tab>();
            Tab newTab = new TestTab();

            tabs.Add(newTab);
            tabDefinitionUpdater.Stub(updater => updater.UpdateTabDefinition(Arg <TabDefinition> .Is.Anything, Arg <Tab> .Is.Anything));
            tabDefinitionUpdater.Replay();
            TabDefinitionRepository fakeTabDefinitionRepository = fakes.Stub <TabDefinitionRepository>();

            tabDefinitionUpdater.TabDefinitionRepository = fakeTabDefinitionRepository;
            tabDefinitionUpdater.TabDefinitionRepository.Stub(factory => factory.GetTabDefinition(newTab.Name)).Return(null);
            tabDefinitionUpdater.TabDefinitionRepository.Stub(factory => factory.SaveTabDefinition(Arg <TabDefinition> .Is.Anything));
            tabDefinitionUpdater.TabDefinitionRepository.Replay();

            tabDefinitionUpdater.UpdateTabDefinitions(tabs);

            tabDefinitionUpdater.AssertWasCalled(updater => updater.UpdateTabDefinition(Arg <TabDefinition> .Is.NotNull, Arg <Tab> .Matches(tab => tab == newTab)));
            tabDefinitionUpdater.TabDefinitionRepository.AssertWasCalled(factory => factory.SaveTabDefinition(Arg <TabDefinition> .Is.NotNull));
        }
        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;
        }
Example #12
0
        public void UpdateTabDefinitions_CallsTabDefinitionUpdaterWithDefinedTabs()
        {
            PageTypeSynchronizer pageTypeSynchronizer = PageTypeSynchronizerFactory.Create();
            MockRepository       fakes          = new MockRepository();
            TabLocator           fakeTabLocator = TabLocatorFactory.Stub(fakes);
            List <Tab>           tabs           = new List <Tab> {
                new TestTab()
            };

            fakeTabLocator.Stub(locator => locator.GetDefinedTabs()).Return(tabs);
            fakeTabLocator.Replay();
            pageTypeSynchronizer.TabLocator = fakeTabLocator;
            TabDefinitionUpdater fakeTabDefinitionUpdater = TabDefinitionUpdaterFactory.Stub(fakes);

            fakeTabDefinitionUpdater.Stub(updater => updater.UpdateTabDefinitions(Arg <List <Tab> > .Is.Anything));
            fakeTabDefinitionUpdater.Replay();
            pageTypeSynchronizer.TabDefinitionUpdater = fakeTabDefinitionUpdater;

            pageTypeSynchronizer.UpdateTabDefinitions();

            pageTypeSynchronizer.TabLocator.AssertWasCalled(updater => updater.GetDefinedTabs());
            pageTypeSynchronizer.TabDefinitionUpdater.AssertWasCalled(updater => updater.UpdateTabDefinitions(tabs));
        }