Migrated ContentServiceTests.
This commit is contained in:
@@ -5,6 +5,7 @@ using Umbraco.Core.Models;
|
||||
using Umbraco.Tests.Common.Builders.Interfaces;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
using Umbraco.Tests.Testing;
|
||||
using Umbraco.Core;
|
||||
|
||||
namespace Umbraco.Tests.Common.Builders
|
||||
{
|
||||
@@ -122,10 +123,7 @@ namespace Umbraco.Tests.Common.Builders
|
||||
Content content;
|
||||
if (parent != null)
|
||||
{
|
||||
content = new Content(name, parent, contentType, culture)
|
||||
{
|
||||
ParentId = parent.Id
|
||||
};
|
||||
content = new Content(name, parent, contentType, culture);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -272,6 +270,37 @@ namespace Umbraco.Tests.Common.Builders
|
||||
return list;
|
||||
}
|
||||
|
||||
public static Content CreateAllTypesContent(IContentType contentType, string name, int parentId)
|
||||
{
|
||||
var content = new ContentBuilder()
|
||||
.WithName(name)
|
||||
.WithParentId(parentId)
|
||||
.WithContentType(contentType)
|
||||
.Build();
|
||||
|
||||
content.SetValue("isTrue", true);
|
||||
content.SetValue("number", 42);
|
||||
content.SetValue("bodyText", "Lorem Ipsum Body Text Test");
|
||||
content.SetValue("singleLineText", "Single Line Text Test");
|
||||
content.SetValue("multilineText", "Multiple lines \n in one box");
|
||||
content.SetValue("upload", "/media/1234/koala.jpg");
|
||||
content.SetValue("label", "Non-editable label");
|
||||
content.SetValue("dateTime", DateTime.Now.AddDays(-20));
|
||||
content.SetValue("colorPicker", "black");
|
||||
content.SetValue("ddlMultiple", "1234,1235");
|
||||
content.SetValue("rbList", "random");
|
||||
content.SetValue("date", DateTime.Now.AddDays(-10));
|
||||
content.SetValue("ddl", "1234");
|
||||
content.SetValue("chklist", "randomc");
|
||||
content.SetValue("contentPicker", Udi.Create(Constants.UdiEntityType.Document, new Guid("74ECA1D4-934E-436A-A7C7-36CC16D4095C")).ToString());
|
||||
content.SetValue("mediaPicker", Udi.Create(Constants.UdiEntityType.Media, new Guid("44CB39C8-01E5-45EB-9CF8-E70AAF2D1691")).ToString());
|
||||
content.SetValue("memberPicker", Udi.Create(Constants.UdiEntityType.Member, new Guid("9A50A448-59C0-4D42-8F93-4F1D55B0F47D")).ToString());
|
||||
content.SetValue("multiUrlPicker", "[{\"name\":\"https://test.com\",\"url\":\"https://test.com\"}]");
|
||||
content.SetValue("tags", "this,is,tags");
|
||||
|
||||
return content;
|
||||
}
|
||||
|
||||
int? IWithIdBuilder.Id
|
||||
{
|
||||
get => _id;
|
||||
|
||||
@@ -154,7 +154,7 @@ namespace Umbraco.Tests.Common.Builders
|
||||
.WithAlias(RandomAlias("bodyText", randomizeAliases))
|
||||
.WithName("Body text")
|
||||
.WithSortOrder(2)
|
||||
.WithDataTypeId(-87)
|
||||
.WithDataTypeId(Constants.DataTypes.RichtextEditor)
|
||||
.WithMandatory(mandatoryProperties)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
@@ -173,6 +173,23 @@ namespace Umbraco.Tests.Common.Builders
|
||||
.Build();
|
||||
}
|
||||
|
||||
public static ContentType CreateSimpleTagsContentType(string alias, string name, IContentType parent = null, bool randomizeAliases = false, string propertyGroupName = "Content", int defaultTemplateId = 1)
|
||||
{
|
||||
var contentType = CreateSimpleContentType(alias, name, parent, randomizeAliases, propertyGroupName, defaultTemplateId: defaultTemplateId);
|
||||
|
||||
var propertyType = new PropertyTypeBuilder()
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.Tags)
|
||||
.WithValueStorageType(ValueStorageType.Nvarchar)
|
||||
.WithAlias(RandomAlias("tags", randomizeAliases))
|
||||
.WithName("Tags")
|
||||
.WithDataTypeId(Constants.DataTypes.Tags)
|
||||
.WithSortOrder(99)
|
||||
.Build();
|
||||
contentType.AddPropertyType(propertyType);
|
||||
|
||||
return contentType;
|
||||
}
|
||||
|
||||
public static ContentType CreateTextPageContentType(string alias = "textPage", string name = "Text Page", int defaultTemplateId = 1)
|
||||
{
|
||||
var builder = new ContentTypeBuilder();
|
||||
@@ -195,7 +212,7 @@ namespace Umbraco.Tests.Common.Builders
|
||||
.WithAlias("bodyText")
|
||||
.WithName("Body text")
|
||||
.WithSortOrder(2)
|
||||
.WithDataTypeId(-87)
|
||||
.WithDataTypeId(Constants.DataTypes.RichtextEditor)
|
||||
.Done()
|
||||
.Done()
|
||||
.AddPropertyGroup()
|
||||
@@ -268,6 +285,171 @@ namespace Umbraco.Tests.Common.Builders
|
||||
.Build();
|
||||
}
|
||||
|
||||
public static ContentType CreateAllTypesContentType(string alias, string name)
|
||||
{
|
||||
var builder = new ContentTypeBuilder();
|
||||
return (ContentType)builder
|
||||
.WithAlias(alias)
|
||||
.WithName(name)
|
||||
.AddPropertyGroup()
|
||||
.WithName("Content")
|
||||
.WithSupportsPublishing(true)
|
||||
.AddPropertyType()
|
||||
.WithAlias("isTrue")
|
||||
.WithName("Is True or False")
|
||||
.WithDataTypeId(Constants.DataTypes.Boolean)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.Boolean)
|
||||
.WithValueStorageType(ValueStorageType.Integer)
|
||||
.WithSortOrder(1)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("number")
|
||||
.WithName("Number")
|
||||
.WithDataTypeId(-51)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.Integer)
|
||||
.WithValueStorageType(ValueStorageType.Integer)
|
||||
.WithSortOrder(2)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("bodyText")
|
||||
.WithName("Body Text")
|
||||
.WithDataTypeId(Constants.DataTypes.RichtextEditor)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.TinyMce)
|
||||
.WithValueStorageType(ValueStorageType.Ntext)
|
||||
.WithSortOrder(3)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("singleLineText")
|
||||
.WithName("Text String")
|
||||
.WithDataTypeId(Constants.DataTypes.Textbox)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.TextBox)
|
||||
.WithValueStorageType(ValueStorageType.Nvarchar)
|
||||
.WithSortOrder(4)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("multilineText")
|
||||
.WithName("Multiple Text Strings")
|
||||
.WithDataTypeId(Constants.DataTypes.Textarea)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.TextArea)
|
||||
.WithValueStorageType(ValueStorageType.Ntext)
|
||||
.WithSortOrder(5)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("upload")
|
||||
.WithName("Upload Field")
|
||||
.WithDataTypeId(Constants.DataTypes.Upload)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.UploadField)
|
||||
.WithValueStorageType(ValueStorageType.Nvarchar)
|
||||
.WithSortOrder(6)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("label")
|
||||
.WithName("Label")
|
||||
.WithDataTypeId(Constants.DataTypes.LabelString)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.Label)
|
||||
.WithValueStorageType(ValueStorageType.Nvarchar)
|
||||
.WithSortOrder(7)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("dateTime")
|
||||
.WithName("Date Time")
|
||||
.WithDataTypeId(Constants.DataTypes.DateTime)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.DateTime)
|
||||
.WithValueStorageType(ValueStorageType.Date)
|
||||
.WithSortOrder(8)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("colorPicker")
|
||||
.WithName("Color Picker")
|
||||
.WithDataTypeId(-37)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.ColorPicker)
|
||||
.WithValueStorageType(ValueStorageType.Nvarchar)
|
||||
.WithSortOrder(9)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("ddlMultiple")
|
||||
.WithName("Dropdown List Multiple")
|
||||
.WithDataTypeId(Constants.DataTypes.DropDownMultiple)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.DropDownListFlexible)
|
||||
.WithValueStorageType(ValueStorageType.Nvarchar)
|
||||
.WithSortOrder(11)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("rbList")
|
||||
.WithName("Radio Button List")
|
||||
.WithDataTypeId(-40)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.RadioButtonList)
|
||||
.WithValueStorageType(ValueStorageType.Nvarchar)
|
||||
.WithSortOrder(12)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("date")
|
||||
.WithName("Date")
|
||||
.WithDataTypeId(-36)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.DateTime)
|
||||
.WithValueStorageType(ValueStorageType.Date)
|
||||
.WithSortOrder(13)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("ddl")
|
||||
.WithName("Dropdown List")
|
||||
.WithDataTypeId(Constants.DataTypes.DropDownSingle)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.DropDownListFlexible)
|
||||
.WithValueStorageType(ValueStorageType.Integer)
|
||||
.WithSortOrder(14)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("chklist")
|
||||
.WithName("Checkbox List")
|
||||
.WithDataTypeId(-43)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.CheckBoxList)
|
||||
.WithValueStorageType(ValueStorageType.Nvarchar)
|
||||
.WithSortOrder(15)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("contentPicker")
|
||||
.WithName("Content Picker")
|
||||
.WithDataTypeId(1046)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.ContentPicker)
|
||||
.WithValueStorageType(ValueStorageType.Integer)
|
||||
.WithSortOrder(16)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("mediaPicker")
|
||||
.WithName("Media Picker")
|
||||
.WithDataTypeId(1048)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.MediaPicker)
|
||||
.WithValueStorageType(ValueStorageType.Integer)
|
||||
.WithSortOrder(17)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("memberPicker")
|
||||
.WithName("Member Picker")
|
||||
.WithDataTypeId(1047)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.MemberPicker)
|
||||
.WithValueStorageType(ValueStorageType.Integer)
|
||||
.WithSortOrder(18)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("multiUrlPicker")
|
||||
.WithName("Multi URL Picker")
|
||||
.WithDataTypeId(1050)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.MultiUrlPicker)
|
||||
.WithValueStorageType(ValueStorageType.Nvarchar)
|
||||
.WithSortOrder(19)
|
||||
.Done()
|
||||
.AddPropertyType()
|
||||
.WithAlias("tags")
|
||||
.WithName("Tags")
|
||||
.WithDataTypeId(Constants.DataTypes.Tags)
|
||||
.WithPropertyEditorAlias(Constants.PropertyEditors.Aliases.Tags)
|
||||
.WithValueStorageType(ValueStorageType.Ntext)
|
||||
.WithSortOrder(20)
|
||||
.Done()
|
||||
.Done()
|
||||
.Build();
|
||||
}
|
||||
|
||||
int? IWithPropertyTypeIdsIncrementingFrom.PropertyTypeIdsIncrementingFrom
|
||||
{
|
||||
get => _propertyTypeIdsIncrementingFrom;
|
||||
|
||||
@@ -37,10 +37,7 @@ namespace Umbraco.Tests.Integration.Persistence.Repositories
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
var testHelper = new TestHelper();
|
||||
_fileSystems = Mock.Of<IFileSystems>();
|
||||
var viewsFileSystem = new PhysicalFileSystem(IOHelper, testHelper.GetHostingEnvironment(), LoggerFactory.CreateLogger<PhysicalFileSystem>(), Constants.SystemDirectories.MvcViews);
|
||||
Mock.Get(_fileSystems).Setup(x => x.MvcViewsFileSystem).Returns(viewsFileSystem);
|
||||
_fileSystems = GetMockFileSystems();
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -289,7 +289,6 @@ namespace Umbraco.Tests.Integration.Testing
|
||||
|
||||
#region LocalDb
|
||||
|
||||
|
||||
private static readonly object _dbLocker = new object();
|
||||
private static LocalDbTestDatabase _dbInstance;
|
||||
|
||||
@@ -479,6 +478,15 @@ namespace Umbraco.Tests.Integration.Testing
|
||||
protected GlobalSettings GlobalSettings => Services.GetRequiredService<IOptions<GlobalSettings>>().Value;
|
||||
protected IMapperCollection Mappers => Services.GetRequiredService<IMapperCollection>();
|
||||
|
||||
protected IFileSystems GetMockFileSystems()
|
||||
{
|
||||
var testHelper = new TestHelper();
|
||||
var fileSystems = Mock.Of<IFileSystems>();
|
||||
var viewsFileSystem = new PhysicalFileSystem(IOHelper, testHelper.GetHostingEnvironment(), LoggerFactory.CreateLogger<PhysicalFileSystem>(), Constants.SystemDirectories.MvcViews);
|
||||
Mock.Get(fileSystems).Setup(x => x.MvcViewsFileSystem).Returns(viewsFileSystem);
|
||||
return fileSystems;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Builders
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
using System;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Core.Services.Implement;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
|
||||
namespace Umbraco.Tests.Integration.Testing
|
||||
{
|
||||
public abstract class UmbracoIntegrationTestWithContent : UmbracoIntegrationTest
|
||||
{
|
||||
protected IContentTypeService ContentTypeService => GetRequiredService<IContentTypeService>();
|
||||
protected IFileService FileService => GetRequiredService<IFileService>();
|
||||
protected ContentService ContentService => (ContentService)GetRequiredService<IContentService>();
|
||||
|
||||
protected int NodeIdSeed => 1050;
|
||||
|
||||
public override void Setup()
|
||||
{
|
||||
base.Setup();
|
||||
CreateTestData();
|
||||
}
|
||||
|
||||
public virtual void CreateTestData()
|
||||
{
|
||||
//NOTE Maybe not the best way to create/save test data as we are using the services, which are being tested.
|
||||
|
||||
// Create and Save ContentType "umbTextpage" -> 1051 (template), 1052 (content type)
|
||||
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage", "Textpage", defaultTemplateId: template.Id);
|
||||
contentType.Key = new Guid("1D3A8E6E-2EA9-4CC1-B229-1AEE19821522");
|
||||
ContentTypeService.Save(contentType);
|
||||
|
||||
// Create and Save Content "Homepage" based on "umbTextpage" -> 1053
|
||||
var textpage = ContentBuilder.CreateSimpleContent(contentType);
|
||||
textpage.Key = new Guid("B58B3AD4-62C2-4E27-B1BE-837BD7C533E0");
|
||||
ContentService.Save(textpage, 0);
|
||||
|
||||
// Create and Save Content "Text Page 1" based on "umbTextpage" -> 1054
|
||||
var subpage = ContentBuilder.CreateSimpleContent(contentType, "Text Page 1", textpage.Id);
|
||||
subpage.ContentSchedule.Add(DateTime.Now.AddMinutes(-5), null);
|
||||
ContentService.Save(subpage, 0);
|
||||
|
||||
// Create and Save Content "Text Page 1" based on "umbTextpage" -> 1055
|
||||
var subpage2 = ContentBuilder.CreateSimpleContent(contentType, "Text Page 2", textpage.Id);
|
||||
ContentService.Save(subpage2, 0);
|
||||
|
||||
// Create and Save Content "Text Page Deleted" based on "umbTextpage" -> 1056
|
||||
var trashed = ContentBuilder.CreateSimpleContent(contentType, "Text Page Deleted", -20);
|
||||
trashed.Trashed = true;
|
||||
ContentService.Save(trashed, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@ using Newtonsoft.Json;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
|
||||
namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
{
|
||||
@@ -21,6 +22,7 @@ namespace Umbraco.Tests.UnitTests.Umbraco.Infrastructure.Models
|
||||
public void Can_Deep_Clone()
|
||||
{
|
||||
var item = _builder
|
||||
.WithId(1)
|
||||
.WithParentObjectType(Guid.NewGuid())
|
||||
.WithChildObjectType(Guid.NewGuid())
|
||||
.Build();
|
||||
|
||||
@@ -152,6 +152,7 @@
|
||||
<Compile Include="Scoping\ScopeEventDispatcherTests.cs" />
|
||||
<Compile Include="Security\OwinDataProtectorTokenProviderTests.cs" />
|
||||
<Compile Include="Persistence\Repositories\UserRepositoryTest.cs" />
|
||||
<Compile Include="Services\TestWithSomeContentBase.cs" />
|
||||
<Compile Include="TestHelpers\Entities\MockedContent.cs" />
|
||||
<Compile Include="TestHelpers\Entities\MockedContentTypes.cs" />
|
||||
<Compile Include="TestHelpers\Entities\MockedEntity.cs" />
|
||||
@@ -318,9 +319,7 @@
|
||||
<Compile Include="Routing\DomainsAndCulturesTests.cs" />
|
||||
<Compile Include="Routing\SiteDomainHelperTests.cs" />
|
||||
<Compile Include="Routing\UrlsWithNestedDomains.cs" />
|
||||
<Compile Include="Services\TestWithSomeContentBase.cs" />
|
||||
<Compile Include="Services\ContentServicePerformanceTest.cs" />
|
||||
<Compile Include="Services\ContentServiceTests.cs" />
|
||||
<Compile Include="Packaging\PackageDataInstallationTests.cs" />
|
||||
<Compile Include="Services\Importing\ImportResources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
|
||||
Reference in New Issue
Block a user