public void GivenDefinitionWithNoSpecifiedName_CreateNewPageType_ReturnsNewPageTypeWithNameSetToTheNameOfTheTypeName()
        {
            PageTypeDefinition definition      = PageTypeUpdaterTestsUtility.CreateBasicPageTypeDefinition();
            PageTypeUpdater    pageTypeUpdater = CreatePageTypeUpdater();

            SetupPageTypeUpdaterWithFakePageTypeFactory(pageTypeUpdater);

            IPageType returnedPageType = pageTypeUpdater.CreateNewPageType(definition);

            Assert.Equal(typeof(object).Name, returnedPageType.Name);
        }
        public void WhenCreateNewPageTypeCalled_CallsPageTypeFactorySave()
        {
            PageTypeDefinition definition      = PageTypeUpdaterTestsUtility.CreateBasicPageTypeDefinition();
            PageTypeUpdater    pageTypeUpdater = CreatePageTypeUpdater();

            SetupPageTypeUpdaterWithFakePageTypeFactory(pageTypeUpdater);

            pageTypeUpdater.CreateNewPageType(definition);

            pageTypeUpdater.PageTypeFactory.AssertWasCalled(factory => factory.Save(Arg <IPageType> .Is.NotNull));
        }
        public void GivenDefinitionWithASpecifiedFilename_CreateNewPageType_ReturnsPageTypeWithThatFilename()
        {
            PageTypeDefinition definition = PageTypeUpdaterTestsUtility.CreateBasicPageTypeDefinition();

            definition.Attribute.Filename = TestValueUtility.CreateRandomString();
            PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater();

            SetupPageTypeUpdaterWithFakePageTypeFactory(pageTypeUpdater);

            IPageType returnedPageType = pageTypeUpdater.CreateNewPageType(definition);

            Assert.Equal <string>(definition.Attribute.Filename, returnedPageType.FileName);
        }
        public void Given_definition_without_a_specified_filename_CreateNewPageType_returns_PageType_with_default_filename()
        {
            PageTypeDefinition definition      = PageTypeUpdaterTestsUtility.CreateBasicPageTypeDefinition();
            PageTypeUpdater    pageTypeUpdater = CreatePageTypeUpdater();

            SetupPageTypeUpdaterWithFakePageTypeFactory(pageTypeUpdater);
            //Override the default filename to something without a slash in the beginning as
            //the PageType.Filename set method requires that EPiServer is started if
            //the filename begins with a slash
            pageTypeUpdater.DefaultFilename = TestValueUtility.CreateRandomString();

            IPageType returnedPageType = pageTypeUpdater.CreateNewPageType(definition);

            Assert.Equal <string>(pageTypeUpdater.DefaultFilename, returnedPageType.FileName);
        }
        public void GivenDefinitionWithASpecifiedGuid_CreateNewPageType_ReturnsPageTypeWithThatGuid()
        {
            PageTypeDefinition definition = new PageTypeDefinition
            {
                Type      = typeof(object),
                Attribute = new PageTypeAttribute(Guid.NewGuid().ToString())
            };
            PageTypeUpdater pageTypeUpdater = CreatePageTypeUpdater();

            SetupPageTypeUpdaterWithFakePageTypeFactory(pageTypeUpdater);

            IPageType returnedPageType = pageTypeUpdater.CreateNewPageType(definition);

            Assert.Equal <Guid?>(definition.Attribute.Guid, returnedPageType.GUID);
        }