public void GivenPageTypeDefinition_AddPageTypesToResolver_AddsToResolver() { List <PageTypeDefinition> definitions = new List <PageTypeDefinition>(); PageTypeDefinition definition = new PageTypeDefinition { Type = typeof(string), Attribute = new PageTypeAttribute() }; definitions.Add(definition); IPageType pageType = new NativePageType(); pageType.ID = 1; MockRepository fakes = new MockRepository(); IPageTypeLocator pageTypeLocator = fakes.Stub <IPageTypeLocator>(); pageTypeLocator.Stub(locator => locator.GetExistingPageType(definition)).Return(pageType); pageTypeLocator.Replay(); PageTypeResolver resolver = new PageTypeResolver(); PageTypeSynchronizer synchronizer = PageTypeSynchronizerFactory.Create(resolver, pageTypeLocator); synchronizer.AddPageTypesToResolver(definitions); Assert.Equal <Type>(definition.Type, resolver.GetPageTypeType(pageType.ID)); }
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)); }
public void GivenTypeArray_WhenUpdateAvailablePageTypesCalled_SetsPageTypeAllowedPageTypes() { PageTypeDefinition definition = PageTypeUpdaterTestsUtility.CreateBasicPageTypeDefinition(); definition.Attribute.AvailablePageTypes = new[] { typeof(object) }; IPageType existingPageType = new NativePageType(); MockRepository mocks = new MockRepository(); List <PageTypeDefinition> definitions = new List <PageTypeDefinition>(); PageTypeDefinition definitionToReturn = new PageTypeDefinition { Type = typeof(object), Attribute = new PageTypeAttribute() }; definitions.Add(definitionToReturn); var pageTypeDefinitionLocator = PageTypeDefinitionLocatorFactory.Mock(); pageTypeDefinitionLocator.Setup(locator => locator.GetPageTypeDefinitions()).Returns(definitions); PageTypeUpdater pageTypeUpdater = mocks.PartialMock <PageTypeUpdater>( pageTypeDefinitionLocator.Object, new PageTypeFactory(), new PageTypeValueExtractor(), new PageTypeLocator(new PageTypeFactory())); IPageType allowedPageType = new NativePageType(); allowedPageType.ID = 1; pageTypeUpdater.Stub(updater => updater.GetExistingPageType(definitionToReturn)).Return(allowedPageType); pageTypeUpdater.Replay(); pageTypeUpdater.UpdateAvailablePageTypes(existingPageType, definition.Attribute.AvailablePageTypes); Assert.Equal <int[]>(new[] { 1 }, existingPageType.AllowedPageTypes); }
public void GivenPageTypeWithSpecifiedNameAndNoGuid_GetExistingPageType_ReturnsPageTypeReturnedFromPageTypeFactoryLoad() { MockRepository mockRepository = new MockRepository(); Type pageTypeType = typeof(object); PageTypeDefinition pageTypeDefinition = new PageTypeDefinition { Type = pageTypeType, Attribute = new PageTypeAttribute { Name = Guid.NewGuid().ToString() } }; PageTypeRepository fakePageTypeRepository = mockRepository.Stub <PageTypeRepository>(); IPageType pageTypeFromFactory = new NativePageType(); pageTypeFromFactory.ID = 1; fakePageTypeRepository.Expect(factory => factory.Load(pageTypeDefinition.Attribute.Name)).Return(pageTypeFromFactory); fakePageTypeRepository.Replay(); PageTypeUpdater pageTypeUpdater = PageTypeUpdaterFactory.Create( PageTypeDefinitionLocatorFactory.Stub(), fakePageTypeRepository); IPageType returnedPageType = pageTypeUpdater.GetExistingPageType(pageTypeDefinition); fakePageTypeRepository.AssertWasCalled(factory => factory.Load(pageTypeDefinition.Attribute.Name)); Assert.Equal <int>(pageTypeFromFactory.ID, returnedPageType.ID); }
public void GivenTypeWithNestedPropertyGroups_GetPageTypePropertyDefinitions_ReturnsListWithSevenPropertyDefinitions() { PageTypePropertyDefinitionLocator definitionLocator = new PageTypePropertyDefinitionLocator(); IPageType pageType = new NativePageType(); Type pageTypeType = typeof(TestPageTypeWithPropertyGroups); IEnumerable<PageTypePropertyDefinition> propertyDefinitions = definitionLocator.GetPageTypePropertyDefinitions(pageType, pageTypeType); Assert.Equal(7, propertyDefinitions.Count()); List<Defintion> defintions = new List<Defintion> { new Defintion { EditCaption = "Property one", SortOrder = 100, Name = "LongStringProperty" }, new Defintion { EditCaption = "Image one - Image Url", SortOrder = 400, Name = "ImageOne-ImageUrl" }, new Defintion { EditCaption = "Image one - Alt text", SortOrder = 410, Name = "ImageOne-AltText" }, new Defintion { EditCaption = "Image two - Image Url", SortOrder = 500, Name = "ImageTwo-ImageUrl" }, new Defintion { EditCaption = "Image two - Alt text", SortOrder = 510, Name = "ImageTwo-AltText" }, new Defintion { EditCaption = "Image three - Image Url", SortOrder = 600, Name = "ImageThree-ImageUrl" }, new Defintion { EditCaption = "Image three - Alt text", SortOrder = 610, Name = "ImageThree-AltText" } }; foreach (PageTypePropertyDefinition pageTypePropertyDefinition in propertyDefinitions) { Defintion defintion = defintions.Where(current => string.Equals(current.Name, pageTypePropertyDefinition.Name)).FirstOrDefault(); Assert.True(defintion != null); Assert.Equal(pageTypePropertyDefinition.PageTypePropertyAttribute.SortOrder, defintion.SortOrder); Assert.Equal(pageTypePropertyDefinition.PageTypePropertyAttribute.EditCaption, defintion.EditCaption); } }
public static PageTypePropertyDefinition CreatePageTypePropertyDefinition() { string name = TestValueUtility.CreateRandomString(); Type type = typeof(string); IPageType pageType = new NativePageType(); PageTypePropertyAttribute attribute = new PageTypePropertyAttribute(); return new PageTypePropertyDefinition(name, type, pageType, attribute); }
public void GivenTypeWithOnePageTypePropertyAttributeFromClashingInterfacesButOverriddenInPageType_GetPageTypePropertyDefinitions_ReturnsListWithOnePropertyDefinition() { var type = typeof(TestPageTypeWithClashingInterfacesWhichAlsoDefinesProperty); var pageType = new NativePageType(); PageTypePropertyDefinitionLocator definitionLocator = new PageTypePropertyDefinitionLocator(); IEnumerable<PageTypePropertyDefinition> propertyDefinitions = definitionLocator.GetPageTypePropertyDefinitions(pageType, type); Assert.Equal<int>(1, propertyDefinitions.Count()); }
public void GivenTypeWithOnePageTypePropertyAttributeFromInterfaceOverriddenInPageType_GetPageTypePropertyDefinitions_ReturnsDefinitionFromPageType() { var type = typeof(TestPageTypeWithInterfaceWhichAlsoDefinesProperty); var pageType = new NativePageType(); PageTypePropertyDefinitionLocator definitionLocator = new PageTypePropertyDefinitionLocator(); IEnumerable<PageTypePropertyDefinition> propertyDefinitions = definitionLocator.GetPageTypePropertyDefinitions(pageType, type); Assert.Equal<string>(TestEditCaptions.FromPageType, propertyDefinitions.First().PageTypePropertyAttribute.EditCaption); }
public void GivenTypeWithOnePageTypePropertyAttributeFromInterface_GetPageTypePropertyDefinitions_ReturnsDefinitionFromInterface() { var type = typeof(TestPageTypeWithInterface); var pageType = new NativePageType(); PageTypePropertyDefinitionLocator definitionLocator = new PageTypePropertyDefinitionLocator(); IEnumerable<PageTypePropertyDefinition> propertyDefinitions = definitionLocator.GetPageTypePropertyDefinitions(pageType, type); Assert.Equal<string>(TestEditCaptions.FromInterfaceA, propertyDefinitions.ElementAt(0).PageTypePropertyAttribute.EditCaption); }
public void GivenTypeWithOnePageTypePropertyAttributeFromInterface_GetPageTypePropertyDefinitions_ReturnsListWithOnePropertyDefinition() { var type = typeof(TestPageTypeWithInterface); var pageType = new NativePageType(); PageTypePropertyDefinitionLocator definitionLocator = new PageTypePropertyDefinitionLocator(); IEnumerable<PageTypePropertyDefinition> propertyDefinitions = definitionLocator.GetPageTypePropertyDefinitions(pageType, type); Assert.Equal<int>(1, propertyDefinitions.Count()); }
public void GivenTypeWithOnePageTypePropertyAttributeFromInterface_GetPageTypePropertyDefinitions_ReturnsDefinitionFromInterface() { var type = typeof(TestPageTypeWithInterface); var pageType = new NativePageType(); PageTypePropertyDefinitionLocator definitionLocator = new PageTypePropertyDefinitionLocator(); IEnumerable <PageTypePropertyDefinition> propertyDefinitions = definitionLocator.GetPageTypePropertyDefinitions(pageType, type); Assert.Equal <string>(TestEditCaptions.FromInterfaceA, propertyDefinitions.ElementAt(0).PageTypePropertyAttribute.EditCaption); }
public void GivenTypeWithOnePageTypePropertyAttributeFromInterface_GetPageTypePropertyDefinitions_ReturnsListWithOnePropertyDefinition() { var type = typeof(TestPageTypeWithInterface); var pageType = new NativePageType(); PageTypePropertyDefinitionLocator definitionLocator = new PageTypePropertyDefinitionLocator(); IEnumerable <PageTypePropertyDefinition> propertyDefinitions = definitionLocator.GetPageTypePropertyDefinitions(pageType, type); Assert.Equal <int>(1, propertyDefinitions.Count()); }
public static PageTypePropertyDefinition CreatePageTypePropertyDefinition() { string name = TestValueUtility.CreateRandomString(); Type type = typeof(string); IPageType pageType = new NativePageType(); PageTypePropertyAttribute attribute = new PageTypePropertyAttribute(); return(new PageTypePropertyDefinition(name, type, pageType, attribute)); }
public void GivenTypeWithOnePageTypePropertyAttributeFromClashingInterfacesButOverriddenInPageType_GetPageTypePropertyDefinitions_ReturnsListWithOnePropertyDefinition() { var type = typeof(TestPageTypeWithClashingInterfacesWhichAlsoDefinesProperty); var pageType = new NativePageType(); PageTypePropertyDefinitionLocator definitionLocator = new PageTypePropertyDefinitionLocator(); IEnumerable <PageTypePropertyDefinition> propertyDefinitions = definitionLocator.GetPageTypePropertyDefinitions(pageType, type); Assert.Equal <int>(1, propertyDefinitions.Count()); }
public void GivenTypeWithOnePageTypePropertyAttributeFromClashingInterfacesButOverriddenInPageType_GetPageTypePropertyDefinitions_ReturnsDefinitionFromPageType() { var type = typeof(TestPageTypeWithClashingInterfacesWhichAlsoDefinesProperty); var pageType = new NativePageType(); PageTypePropertyDefinitionLocator definitionLocator = new PageTypePropertyDefinitionLocator(); IEnumerable <PageTypePropertyDefinition> propertyDefinitions = definitionLocator.GetPageTypePropertyDefinitions(pageType, type); Assert.Equal <string>(TestEditCaptions.FromPageType, propertyDefinitions.First().PageTypePropertyAttribute.EditCaption); }
public void WhenUpdatePageTypeCalled_CallsUpdateFrame() { PageTypeAttribute attribute = new PageTypeAttribute(); IPageType pageType = new NativePageType(); PageTypeUpdater pageTypeUpdater = CreateFakePageTypeUpdaterWithUpdatePageTypeMethodHelperStubs(); pageTypeUpdater.UpdateFrame(pageType, attribute); pageTypeUpdater.AssertWasCalled(updater => updater.UpdateFrame(pageType, attribute)); }
public void WhenUpdatePageTypeCalls_CallsUpdateDefaultVisibleInMenu() { PageTypeDefinition definition = PageTypeUpdaterTestsUtility.CreateBasicPageTypeDefinition(); IPageType existingPageType = new NativePageType(); PageTypeUpdater pageTypeUpdater = CreateFakePageTypeUpdaterWithUpdatePageTypeMethodHelperStubs(); pageTypeUpdater.UpdatePageType(definition); pageTypeUpdater.AssertWasCalled(updater => updater.UpdateDefaultVisibleInMenu(existingPageType, definition.Attribute)); }
public void WhenUpdatePageTypeCalled_CallsUpdateFilename() { PageTypeDefinition definition = PageTypeUpdaterTestsUtility.CreateBasicPageTypeDefinition(); IPageType pageType = new NativePageType(); PageTypeUpdater pageTypeUpdater = CreateFakePageTypeUpdaterWithUpdatePageTypeMethodHelperStubs(); pageTypeUpdater.UpdatePageType(definition); pageTypeUpdater.AssertWasCalled(updater => updater.UpdateFilename(pageType, definition.Attribute)); }
public void WhenUpdatePageTypeCalled_CallsUpdateFilename() { PageTypeDefinition definition = PageTypeUpdaterTestsUtility.CreateBasicPageTypeDefinition(); IPageType pageType = new NativePageType(); PageTypeUpdater pageTypeUpdater = CreateFakePageTypeUpdaterWithUpdatePageTypeMethodHelperStubs(); pageTypeUpdater.UpdatePageType(definition); pageTypeUpdater.AssertWasCalled(updater => updater.UpdateFilename(pageType, definition.Attribute)); }
public void GivenNoAvailablePageTypes_WhenUpdateAvailablePageTypesCalled_SetsPageTypeAllowedPageTypesToEmptyArray() { PageTypeDefinition definition = PageTypeUpdaterTestsUtility.CreateBasicPageTypeDefinition(); IPageType existingPageType = new NativePageType(); MockRepository mocks = new MockRepository(); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateAvailablePageTypes(existingPageType, definition.Attribute.AvailablePageTypes); Assert.Equal <int[]>(new int[0], existingPageType.AllowedPageTypes); }
public void GivenNoNameSetInAttribute_WhenUpdatePageTypeCalled_UpdatesPageTypeNameWithName() { PageTypeDefinition definition = PageTypeUpdaterTestsUtility.CreateBasicPageTypeDefinition(); IPageType pageType = new NativePageType(); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); string name = definition.Type.Name; pageTypeUpdater.UpdateName(pageType, definition); Assert.Equal <string>(name, pageType.Name); }
public void GivenNoDefaultVisibleInMenuInAttribute_UpdateDefaultVisibleInMenuCalled_SetsPageTypeDefaultVisibleInMenuToDefaultValue() { IPageType pageType = new NativePageType(); pageType.DefaultVisibleInMenu = !PageTypeUpdater.DefaultDefaultVisibleInMenu; PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultVisibleInMenu(pageType, new PageTypeAttribute()); Assert.Equal <bool>(PageTypeUpdater.DefaultDefaultVisibleInMenu, pageType.DefaultVisibleInMenu); }
public void GivenNoNameSetInAttribute_WhenUpdatePageTypeCalled_UpdatesPageTypeNameWithName() { PageTypeDefinition definition = PageTypeUpdaterTestsUtility.CreateBasicPageTypeDefinition(); IPageType pageType = new NativePageType(); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); string name = definition.Type.Name; pageTypeUpdater.UpdateName(pageType, definition); Assert.Equal<string>(name, pageType.Name); }
public void GivenValue_UpdateDefaultVisibleInMenu_UpdatesPageTypeDefaultVisibleInMenuWithValue(bool defaultVisibleInMenu) { PageTypeDefinition definition = PageTypeUpdaterTestsUtility.CreateBasicPageTypeDefinition(); definition.Attribute.DefaultVisibleInMenu = defaultVisibleInMenu; IPageType pageType = new NativePageType(); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultVisibleInMenu(pageType, definition.Attribute); Assert.Equal <bool>(defaultVisibleInMenu, pageType.DefaultVisibleInMenu); }
public void GivenAttribueDefaultArchiveToPageIDIsSet_WhenUpdateDefaultArchiveToPageIDCalled_UpdatesPageTypeDefaultArchivePageLink(int archiveToPageID) { PageTypeAttribute attribute = new PageTypeAttribute(); attribute.DefaultArchiveToPageID = archiveToPageID; IPageType pageType = new NativePageType(); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultArchivePageLink(pageType, attribute); Assert.Equal <int>(attribute.DefaultArchiveToPageID, pageType.DefaultArchivePageLink.ID); }
public void GivenValue_WhenUpdateIsAvailableCalled_UpdatesPageTypeAvailableInEditMode(bool availableInEditMode) { PageTypeAttribute attribute = new PageTypeAttribute(); attribute.AvailableInEditMode = availableInEditMode; IPageType pageType = new NativePageType(); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateIsAvailable(pageType, attribute); Assert.Equal <bool>(attribute.AvailableInEditMode, pageType.IsAvailable); }
public void GivenSortOrder_WhenUpdateSortOrderCalled_UpdatesPageTypeSortOrder() { PageTypeAttribute attribute = new PageTypeAttribute(); attribute.SortOrder = 1; IPageType pageType = new NativePageType(); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateSortOrder(pageType, attribute); Assert.Equal <int>(attribute.SortOrder, pageType.SortOrder); }
public void GivenAttribueDefaultArchiveToPageIDPageTypeIDIsNotSet_WhenUpdateDefaultArchiveToPageIDCalled_UpdatesPageTypeDefaultArchivePageLink() { PageTypeAttribute attribute = new PageTypeAttribute(); IPageType pageType = new NativePageType(); pageType.DefaultArchivePageLink = new PageReference(1); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultArchivePageLink(pageType, attribute); Assert.Equal <PageReference>(null, pageType.DefaultArchivePageLink); }
public void GivenNoFilenameSetInAttribute_WhenUpdatePageTypeCalled_UpdatesPageTypeFilenameWith_Filename() { PageTypeAttribute attribute = new PageTypeAttribute(); IPageType pageType = new NativePageType(); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.DefaultFilename = TestValueUtility.CreateRandomString(); pageTypeUpdater.UpdateFilename(pageType, attribute); Assert.Equal <string>(pageTypeUpdater.DefaultFilename, pageType.FileName); }
public void GivenType_Constructor_SetsPropertyTypeProperty() { PageTypePropertyAttribute attribute = new PageTypePropertyAttribute(); string name = TestValueUtility.CreateRandomString(); Type propertyType = typeof(string); IPageType pageType = new NativePageType(); PageTypePropertyDefinition definition = new PageTypePropertyDefinition(name, propertyType, pageType, attribute); Assert.Equal <Type>(propertyType, definition.PropertyType); }
public void GivenDescription_UpdateDescription_UpdatesPageTypeDescription() { PageTypeAttribute attribute = new PageTypeAttribute(); attribute.Description = TestValueUtility.CreateRandomString(); IPageType pageType = new NativePageType(); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDescription(pageType, attribute); Assert.Equal <string>(attribute.Description, pageType.Description); }
public void GivenNoDefaultPeerOrderRuleInAttribute_WhenUpdateDefaultPeerOrderRuleCalled_SetsPageTypeDefaultPeerOrderRuleToDefaultValue() { PageTypeAttribute attribute = new PageTypeAttribute(); IPageType pageType = new NativePageType(); pageType.DefaultPeerOrder = 1; PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultPeerOrder(pageType, attribute); Assert.Equal <int>(PageTypeUpdater.DefaultDefaultPageTypePeerOrder, pageType.DefaultPeerOrder); }
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)); }
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)); }
public void GivenFilterSortOrder_WhenUpdatePageTypeCalled_UpdatesPageTypeDefaultChildOrderRule(FilterSortOrder sortOrder) { PageTypeAttribute attribute = new PageTypeAttribute(); attribute.DefaultChildSortOrder = sortOrder; IPageType pageType = new NativePageType(); pageType.DefaultChildOrderRule = FilterSortOrder.PublishedAscending; PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultChildOrderRule(pageType, attribute); Assert.Equal <FilterSortOrder>(sortOrder, pageType.DefaultChildOrderRule); }
public void GivenName_WhenUpdateDefaultNameCalled_UpdatesPageTypeDefaultPageName(string defaultPageName) { PageTypeAttribute attribute = new PageTypeAttribute(); attribute.DefaultPageName = defaultPageName; IPageType pageType = new NativePageType(); pageType.DefaultPageName = TestValueUtility.CreateRandomString(); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultPageName(pageType, attribute); Assert.Equal <string>(defaultPageName, pageType.DefaultPageName); }
public void GivenPageType_Constructor_SetsPageTypeProperty() { PageTypePropertyAttribute attribute = new PageTypePropertyAttribute(); string name = TestValueUtility.CreateRandomString(); Type propertyType = typeof(string); IPageType pageType = new NativePageType(); pageType.GUID = Guid.NewGuid(); PageTypePropertyDefinition definition = new PageTypePropertyDefinition(name, propertyType, pageType, attribute); Assert.Equal <IPageType>(pageType, definition.PageType, new PageTypeComparer()); }
public void GivenPageType_WhenUpdateDefaultPeerOrderRuleCalled_UpdatesPageTypeDefaultPeerOrderRule(int defaultSortIndex) { PageTypeAttribute attribute = new PageTypeAttribute(); attribute.DefaultSortIndex = defaultSortIndex; IPageType pageType = new NativePageType(); pageType.DefaultPeerOrder = 1; PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultPeerOrder(pageType, attribute); Assert.Equal <int>(defaultSortIndex, pageType.DefaultPeerOrder); }
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); }
public void GivenAPageTypeAndANumberOfMinutes_WhenUpdateDefaultStopPublishOffsetIsCalled_ItUpdatesPageTypeDefaultStopPublishOffset(int defaultOffsetMinutes) { PageTypeAttribute attribute = new PageTypeAttribute(); attribute.DefaultStopPublishOffsetMinutes = defaultOffsetMinutes; IPageType pageType = new NativePageType(); pageType.DefaultStopPublishOffset = new TimeSpan(0, 0, 1, 0); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultStopPublishOffset(pageType, attribute); TimeSpan expectedOffset = new TimeSpan(0, 0, defaultOffsetMinutes, 0); Assert.Equal <TimeSpan>(expectedOffset, pageType.DefaultStopPublishOffset); }
public void GivenPageTypeWithNoGuidOrSpecifiedName_GetExistingPageType_ReturnsPageTypeReturnedFromPageTypeFactoryLoad() { MockRepository mockRepository = new MockRepository(); PageTypeDefinition pageTypeDefinition = PageTypeUpdaterTestsUtility.CreateBasicPageTypeDefinition(); PageTypeRepository fakePageTypeRepository = mockRepository.Stub<PageTypeRepository>(); IPageType pageTypeFromFactory = new NativePageType(); pageTypeFromFactory.ID = 1; fakePageTypeRepository.Expect(factory => factory.Load(pageTypeDefinition.Type.Name)).Return(pageTypeFromFactory); fakePageTypeRepository.Replay(); PageTypeUpdater pageTypeUpdater = PageTypeUpdaterFactory.Create( PageTypeDefinitionLocatorFactory.Stub(), fakePageTypeRepository); IPageType returnedPageType = pageTypeUpdater.GetExistingPageType(pageTypeDefinition); fakePageTypeRepository.AssertWasCalled(factory => factory.Load(pageTypeDefinition.Type.Name)); Assert.Equal<int>(pageTypeFromFactory.ID, returnedPageType.ID); }
public void GivenTypeWithOnePageTypePropertyAttribute_GetPageTypePropertyDefinitions_ReturnsListWithOnePropertyDefinition() { AssemblyBuilder assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName("TestAssembly"), AssemblyBuilderAccess.RunAndSave); ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule("Module", "Module.dll"); TypeBuilder typeBuilder = moduleBuilder.DefineType("PageTypeType"); string propertyName = TestValueUtility.CreateRandomString(); Type propertyType = typeof(string); PropertyBuilder propertyBuilder = typeBuilder.DefineProperty(propertyName, PropertyAttributes.None, propertyType, null); ConstructorInfo pageTypePropertyAttributeConstructor = typeof(PageTypePropertyAttribute).GetConstructor(new Type[0]); CustomAttributeBuilder customAttributeBuilder = new CustomAttributeBuilder(pageTypePropertyAttributeConstructor, new object[0]); propertyBuilder.SetCustomAttribute(customAttributeBuilder); Type type = typeBuilder.CreateType(); IPageType pageType = new NativePageType(); PageTypePropertyDefinitionLocator definitionLocator = new PageTypePropertyDefinitionLocator(); IEnumerable<PageTypePropertyDefinition> propertyDefinitions = definitionLocator.GetPageTypePropertyDefinitions(pageType, type); Assert.Equal<int>(1, propertyDefinitions.Count()); }
public void GivenPageType_UpdatePageTypePropertyDefinitions_CallsGetExistingPageDefinition() { List<PageTypePropertyDefinition> definitions = new List<PageTypePropertyDefinition>(); PageTypePropertyDefinition pageTypePropertyDefinition = PageTypePropertyUpdaterTestsUtility.CreatePageTypePropertyDefinition(); definitions.Add(pageTypePropertyDefinition); PageTypePropertyUpdater pageTypePropertyUpdater = CreatePageTypePropertyUpdater(definitions); IPageType pageType = new NativePageType(); PageTypeDefinition pageTypeDefinition = new PageTypeDefinition(); pageTypePropertyUpdater.Stub(utility => utility.GetExistingPageDefinition( pageType, pageTypePropertyDefinition)).Return(new PageDefinition()); pageTypePropertyUpdater.Stub( utility => utility.UpdatePageDefinition( Arg<PageDefinition>.Is.Anything, Arg<PageTypePropertyDefinition>.Is.Anything)); pageTypePropertyUpdater.Replay(); pageTypePropertyUpdater.UpdatePageTypePropertyDefinitions(pageType, pageTypeDefinition); pageTypePropertyUpdater.AssertWasCalled( utility => utility.GetExistingPageDefinition( pageType, pageTypePropertyDefinition)); }
public void GivenPageType_UpdatePageTypePropertyDefinitions_CallsPageTypePropertyUpdaterUpdatePageTypePropertyDefinitions() { PageTypeDefinition definition = new PageTypeDefinition(); MockRepository fakes = new MockRepository(); PageTypeUpdater pageTypeUpdater = PageTypeUpdaterFactory.Stub(fakes); IPageType pageType = new NativePageType(); PageDefinitionSynchronizationEngine pageDefinitionSynchronizationEngine = PageDefinitionSynchronizationEngineFactory.Stub(fakes); pageDefinitionSynchronizationEngine.Stub(updater => updater.UpdatePageTypePropertyDefinitions(pageType, definition)); pageDefinitionSynchronizationEngine.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(pageDefinitionSynchronizationEngine, pageTypeLocator); synchronizer.PageTypeUpdater = pageTypeUpdater; synchronizer.UpdatePageTypePropertyDefinitions(definitions); pageDefinitionSynchronizationEngine.AssertWasCalled(updater => updater.UpdatePageTypePropertyDefinitions(pageType, definition)); }
public void GivenPageTypeWithSpecifiedNameAndNoGuid_GetExistingPageType_ReturnsPageTypeReturnedFromPageTypeFactoryLoad() { MockRepository mockRepository = new MockRepository(); Type pageTypeType = typeof(object); PageTypeDefinition pageTypeDefinition = new PageTypeDefinition { Type = pageTypeType, Attribute = new PageTypeAttribute { Name = Guid.NewGuid().ToString() } }; PageTypeRepository fakePageTypeRepository = mockRepository.Stub<PageTypeRepository>(); IPageType pageTypeFromFactory = new NativePageType(); pageTypeFromFactory.ID = 1; fakePageTypeRepository.Expect(factory => factory.Load(pageTypeDefinition.Attribute.Name)).Return(pageTypeFromFactory); fakePageTypeRepository.Replay(); PageTypeUpdater pageTypeUpdater = PageTypeUpdaterFactory.Create( PageTypeDefinitionLocatorFactory.Stub(), fakePageTypeRepository); IPageType returnedPageType = pageTypeUpdater.GetExistingPageType(pageTypeDefinition); fakePageTypeRepository.AssertWasCalled(factory => factory.Load(pageTypeDefinition.Attribute.Name)); Assert.Equal<int>(pageTypeFromFactory.ID, returnedPageType.ID); }
public void GivenPageTypeDefinition_AddPageTypesToResolver_AddsToResolver() { List<PageTypeDefinition> definitions = new List<PageTypeDefinition>(); PageTypeDefinition definition = new PageTypeDefinition { Type = typeof(string), Attribute = new PageTypeAttribute() }; definitions.Add(definition); IPageType pageType = new NativePageType(); pageType.ID = 1; MockRepository fakes = new MockRepository(); IPageTypeLocator pageTypeLocator = fakes.Stub<IPageTypeLocator>(); pageTypeLocator.Stub(locator => locator.GetExistingPageType(definition)).Return(pageType); pageTypeLocator.Replay(); PageTypeResolver resolver = new PageTypeResolver(); PageTypeSynchronizer synchronizer = PageTypeSynchronizerFactory.Create(resolver, pageTypeLocator); synchronizer.AddPageTypesToResolver(definitions); Assert.Equal<Type>(definition.Type, resolver.GetPageTypeType(pageType.ID)); }
public void GivenNoDefaultVisibleInMenuInAttribute_UpdateDefaultVisibleInMenuCalled_SetsPageTypeDefaultVisibleInMenuToDefaultValue() { IPageType pageType = new NativePageType(); pageType.DefaultVisibleInMenu = !PageTypeUpdater.DefaultDefaultVisibleInMenu; PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultVisibleInMenu(pageType, new PageTypeAttribute()); Assert.Equal<bool>(PageTypeUpdater.DefaultDefaultVisibleInMenu, pageType.DefaultVisibleInMenu); }
public void GivenValue_UpdateDefaultVisibleInMenu_UpdatesPageTypeDefaultVisibleInMenuWithValue(bool defaultVisibleInMenu) { PageTypeDefinition definition = PageTypeUpdaterTestsUtility.CreateBasicPageTypeDefinition(); definition.Attribute.DefaultVisibleInMenu = defaultVisibleInMenu; IPageType pageType = new NativePageType(); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultVisibleInMenu(pageType, definition.Attribute); Assert.Equal<bool>(defaultVisibleInMenu, pageType.DefaultVisibleInMenu); }
public void WhenUpdatePageTypeCalls_CallsUpdateDefaultVisibleInMenu() { PageTypeDefinition definition = PageTypeUpdaterTestsUtility.CreateBasicPageTypeDefinition(); IPageType existingPageType = new NativePageType(); PageTypeUpdater pageTypeUpdater = CreateFakePageTypeUpdaterWithUpdatePageTypeMethodHelperStubs(); pageTypeUpdater.UpdatePageType(definition); pageTypeUpdater.AssertWasCalled(updater => updater.UpdateDefaultVisibleInMenu(existingPageType, definition.Attribute)); }
public void GivenAPageTypeAndANumberOfMinutes_WhenUpdateDefaultStopPublishOffsetIsCalled_ItUpdatesPageTypeDefaultStopPublishOffset(int defaultOffsetMinutes) { PageTypeAttribute attribute = new PageTypeAttribute(); attribute.DefaultStopPublishOffsetMinutes = defaultOffsetMinutes; IPageType pageType = new NativePageType(); pageType.DefaultStopPublishOffset = new TimeSpan(0, 0, 1, 0); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultStopPublishOffset(pageType, attribute); TimeSpan expectedOffset = new TimeSpan(0, 0, defaultOffsetMinutes, 0); Assert.Equal<TimeSpan>(expectedOffset, pageType.DefaultStopPublishOffset); }
public void GivenNoDefaultPeerOrderRuleInAttribute_WhenUpdateDefaultPeerOrderRuleCalled_SetsPageTypeDefaultPeerOrderRuleToDefaultValue() { PageTypeAttribute attribute = new PageTypeAttribute(); IPageType pageType = new NativePageType(); pageType.DefaultPeerOrder = 1; PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultPeerOrder(pageType, attribute); Assert.Equal<int>(PageTypeUpdater.DefaultDefaultPageTypePeerOrder, pageType.DefaultPeerOrder); }
public void GivenPageType_WhenUpdateDefaultPeerOrderRuleCalled_UpdatesPageTypeDefaultPeerOrderRule(int defaultSortIndex) { PageTypeAttribute attribute = new PageTypeAttribute(); attribute.DefaultSortIndex = defaultSortIndex; IPageType pageType = new NativePageType(); pageType.DefaultPeerOrder = 1; PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultPeerOrder(pageType, attribute); Assert.Equal<int>(defaultSortIndex, pageType.DefaultPeerOrder); }
public void GivenName_WhenUpdateDefaultNameCalled_UpdatesPageTypeDefaultPageName(string defaultPageName) { PageTypeAttribute attribute = new PageTypeAttribute(); attribute.DefaultPageName = defaultPageName; IPageType pageType = new NativePageType(); pageType.DefaultPageName = TestValueUtility.CreateRandomString(); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultPageName(pageType, attribute); Assert.Equal<string>(defaultPageName, pageType.DefaultPageName); }
public void GivenTypeArray_WhenUpdateAvailablePageTypesCalled_SetsPageTypeAllowedPageTypes() { PageTypeDefinition definition = PageTypeUpdaterTestsUtility.CreateBasicPageTypeDefinition(); definition.Attribute.AvailablePageTypes = new[] { typeof(object) }; IPageType existingPageType = new NativePageType(); MockRepository mocks = new MockRepository(); List<PageTypeDefinition> definitions = new List<PageTypeDefinition>(); PageTypeDefinition definitionToReturn = new PageTypeDefinition { Type = typeof(object), Attribute = new PageTypeAttribute() }; definitions.Add(definitionToReturn); var pageTypeDefinitionLocator = PageTypeDefinitionLocatorFactory.Mock(); pageTypeDefinitionLocator.Setup(locator => locator.GetPageTypeDefinitions()).Returns(definitions); PageTypeUpdater pageTypeUpdater = mocks.PartialMock<PageTypeUpdater>( pageTypeDefinitionLocator.Object, new PageTypeFactory(), new PageTypeValueExtractor(), new PageTypeLocator(new PageTypeFactory())); IPageType allowedPageType = new NativePageType(); allowedPageType.ID = 1; pageTypeUpdater.Stub(updater => updater.GetExistingPageType(definitionToReturn)).Return(allowedPageType); pageTypeUpdater.Replay(); pageTypeUpdater.UpdateAvailablePageTypes(existingPageType, definition.Attribute.AvailablePageTypes); Assert.Equal<int[]>(new[] { 1 }, existingPageType.AllowedPageTypes); }
public void WhenUpdatePageTypeCalled_CallsUpdateFrame() { PageTypeAttribute attribute = new PageTypeAttribute(); IPageType pageType = new NativePageType(); PageTypeUpdater pageTypeUpdater = CreateFakePageTypeUpdaterWithUpdatePageTypeMethodHelperStubs(); pageTypeUpdater.UpdateFrame(pageType, attribute); pageTypeUpdater.AssertWasCalled(updater => updater.UpdateFrame(pageType, attribute)); }
public void GivenAttribueDefaultArchiveToPageIDPageTypeIDIsNotSet_WhenUpdateDefaultArchiveToPageIDCalled_UpdatesPageTypeDefaultArchivePageLink() { PageTypeAttribute attribute = new PageTypeAttribute(); IPageType pageType = new NativePageType(); pageType.DefaultArchivePageLink = new PageReference(1); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultArchivePageLink(pageType, attribute); Assert.Equal<PageReference>(null, pageType.DefaultArchivePageLink); }
public void GivenNoAvailablePageTypes_WhenUpdateAvailablePageTypesCalled_SetsPageTypeAllowedPageTypesToEmptyArray() { PageTypeDefinition definition = PageTypeUpdaterTestsUtility.CreateBasicPageTypeDefinition(); IPageType existingPageType = new NativePageType(); MockRepository mocks = new MockRepository(); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateAvailablePageTypes(existingPageType, definition.Attribute.AvailablePageTypes); Assert.Equal<int[]>(new int[0], existingPageType.AllowedPageTypes); }
public void GivenAttribueDefaultArchiveToPageIDIsSet_WhenUpdateDefaultArchiveToPageIDCalled_UpdatesPageTypeDefaultArchivePageLink(int archiveToPageID) { PageTypeAttribute attribute = new PageTypeAttribute(); attribute.DefaultArchiveToPageID = archiveToPageID; IPageType pageType = new NativePageType(); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultArchivePageLink(pageType, attribute); Assert.Equal<int>(attribute.DefaultArchiveToPageID, pageType.DefaultArchivePageLink.ID); }
public void GivenFilenameSetInAttribute_WhenUpdatePageTypeCalled_UpdatesPageTypeFilenameWith_Filename() { PageTypeAttribute attribute = new PageTypeAttribute(); attribute.Filename = TestValueUtility.CreateRandomString(); IPageType pageType = new NativePageType(); PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateFilename(pageType, attribute); Assert.Equal<string>(attribute.Filename, pageType.FileName); }
public void GivenFilterSortOrder_WhenUpdatePageTypeCalled_UpdatesPageTypeDefaultChildOrderRule(FilterSortOrder sortOrder) { PageTypeAttribute attribute = new PageTypeAttribute(); attribute.DefaultChildSortOrder = sortOrder; IPageType pageType = new NativePageType(); pageType.DefaultChildOrderRule = FilterSortOrder.PublishedAscending; PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater(); pageTypeUpdater.UpdateDefaultChildOrderRule(pageType, attribute); Assert.Equal<FilterSortOrder>(sortOrder, pageType.DefaultChildOrderRule); }