public static PageTypeAttribute CreatePageTypeAttributeWithEverythingSpeficied(InMemoryContext syncContext)
        {
            var guid = Guid.NewGuid();

            var pageTypeAttribute = new PageTypeAttribute(guid.ToString());
            
            var anotherPageTypeClass = syncContext.CreateAndAddPageTypeClassToAppDomain(type => { });
            var existingPageType = syncContext.PageTypeRepository.CreateNew();
            existingPageType.Name = anotherPageTypeClass.Name;
            syncContext.PageTypeRepository.Save(existingPageType);
            syncContext.PageTypeResolver.AddPageType(existingPageType.ID, anotherPageTypeClass);

            var availablePageTypes = new[] { anotherPageTypeClass };
            pageTypeAttribute.AvailablePageTypes = availablePageTypes;
            pageTypeAttribute.AvailableInEditMode = false;
            pageTypeAttribute.Description = "A description";
            pageTypeAttribute.SortOrder = 123;
            pageTypeAttribute.DefaultArchiveToPageID = 567;
            pageTypeAttribute.DefaultPageName = "Default page name";
            pageTypeAttribute.DefaultStartPublishOffsetMinutes = 1234;
            pageTypeAttribute.DefaultStopPublishOffsetMinutes = 12345;
            pageTypeAttribute.DefaultVisibleInMenu = false;
            pageTypeAttribute.DefaultChildSortOrder = FilterSortOrder.Alphabetical;
            pageTypeAttribute.DefaultSortIndex = 345;
            pageTypeAttribute.DefaultFrameID = 1;
            pageTypeAttribute.Filename = "~/TemplateForThePageType.aspx";
            pageTypeAttribute.Name = "Page type name";

            return pageTypeAttribute;
        }