Merge pull request #9126 from umbraco/netcore/feature/migrate_contenttyperepositorytest
Netcore: Migrated Respository Tests
This commit is contained in:
@@ -219,6 +219,12 @@ namespace Umbraco.Tests.Common.Builders
|
||||
.WithName(name)
|
||||
.WithParent(parent);
|
||||
|
||||
|
||||
if (!(culture is null))
|
||||
{
|
||||
builder = builder.WithCultureName(culture, name);
|
||||
}
|
||||
|
||||
if (setPropertyValues)
|
||||
{
|
||||
builder = builder.WithPropertyValues(new
|
||||
|
||||
@@ -86,7 +86,7 @@ namespace Umbraco.Tests.Common.Builders
|
||||
Alias = GetAlias(),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
contentType.Id = GetId();
|
||||
contentType.Key = GetKey();
|
||||
contentType.CreateDate = GetCreateDate();
|
||||
@@ -101,7 +101,7 @@ namespace Umbraco.Tests.Common.Builders
|
||||
contentType.CreatorId = GetCreatorId();
|
||||
contentType.Trashed = GetTrashed();
|
||||
contentType.IsContainer = GetIsContainer();
|
||||
|
||||
|
||||
contentType.Variations = contentVariation;
|
||||
|
||||
contentType.NoGroupPropertyTypes = _noGroupPropertyTypeBuilders.Select(x => x.Build());
|
||||
@@ -132,9 +132,32 @@ namespace Umbraco.Tests.Common.Builders
|
||||
.Build();
|
||||
}
|
||||
|
||||
public static ContentType CreateSimpleContentType(string alias = null, string name = null, IContentType parent = null, bool randomizeAliases = false, string propertyGroupName = "Content", int defaultTemplateId = 1)
|
||||
public static ContentType CreateSimpleContentType2(string alias, string name, IContentType parent = null, bool randomizeAliases = false, string propertyGroupName = "Content")
|
||||
{
|
||||
return (ContentType)new ContentTypeBuilder()
|
||||
var builder = CreateSimpleContentTypeHelper(alias, name, parent, randomizeAliases, propertyGroupName);
|
||||
|
||||
builder.AddPropertyType()
|
||||
.WithAlias(RandomAlias("gen", randomizeAliases))
|
||||
.WithName("Gen")
|
||||
.WithSortOrder(1)
|
||||
.WithDataTypeId(-88)
|
||||
.WithMandatory(false)
|
||||
.WithDescription(string.Empty)
|
||||
.Done();
|
||||
|
||||
return (ContentType)builder.Build();
|
||||
}
|
||||
|
||||
public static ContentType CreateSimpleContentType(string alias = null, string name = null,
|
||||
IContentType parent = null, bool randomizeAliases = false, string propertyGroupName = "Content",
|
||||
int defaultTemplateId = 0)
|
||||
{
|
||||
return (ContentType)CreateSimpleContentTypeHelper(alias, name, parent, randomizeAliases, propertyGroupName, defaultTemplateId).Build();
|
||||
}
|
||||
|
||||
public static ContentTypeBuilder CreateSimpleContentTypeHelper(string alias = null, string name = null, IContentType parent = null, bool randomizeAliases = false, string propertyGroupName = "Content", int defaultTemplateId = 0)
|
||||
{
|
||||
return new ContentTypeBuilder()
|
||||
.WithAlias(alias ?? "simple")
|
||||
.WithName(name ?? "Simple Page")
|
||||
.WithParentContentType(parent)
|
||||
@@ -166,8 +189,7 @@ namespace Umbraco.Tests.Common.Builders
|
||||
.WithAlias("textPage")
|
||||
.WithName("Textpage")
|
||||
.Done()
|
||||
.WithDefaultTemplateId(defaultTemplateId)
|
||||
.Build();
|
||||
.WithDefaultTemplateId(defaultTemplateId);
|
||||
}
|
||||
|
||||
public static ContentType CreateTextPageContentType(string alias = "textPage", int defaultTemplateId = 1)
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Data.Common;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Reflection;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
@@ -10,13 +13,17 @@ using Microsoft.Extensions.Hosting;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Cache;
|
||||
using Umbraco.Core.Configuration.Models;
|
||||
using Umbraco.Core.Diagnostics;
|
||||
using Umbraco.Core.Hosting;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Models.Entities;
|
||||
using Umbraco.Core.Persistence;
|
||||
using Umbraco.Core.PropertyEditors;
|
||||
using Umbraco.Core.Runtime;
|
||||
using Umbraco.Net;
|
||||
using Umbraco.Tests.Common;
|
||||
@@ -153,5 +160,101 @@ namespace Umbraco.Tests.Integration.Implementations
|
||||
|
||||
return relativePath.Replace("~/", bin + "/");
|
||||
}
|
||||
|
||||
public void AssertPropertyValuesAreEqual(object actual, object expected, string dateTimeFormat = null, Func<IEnumerable, IEnumerable> sorter = null, string[] ignoreProperties = null)
|
||||
{
|
||||
const int dateDeltaMilliseconds = 500; // .5s
|
||||
|
||||
var properties = expected.GetType().GetProperties();
|
||||
foreach (var property in properties)
|
||||
{
|
||||
// ignore properties that are attributed with EditorBrowsableState.Never
|
||||
var att = property.GetCustomAttribute<EditorBrowsableAttribute>(false);
|
||||
if (att != null && att.State == EditorBrowsableState.Never)
|
||||
continue;
|
||||
|
||||
// ignore explicitely ignored properties
|
||||
if (ignoreProperties != null && ignoreProperties.Contains(property.Name))
|
||||
continue;
|
||||
|
||||
var actualValue = property.GetValue(actual, null);
|
||||
var expectedValue = property.GetValue(expected, null);
|
||||
|
||||
AssertAreEqual(property, expectedValue, actualValue, sorter, dateDeltaMilliseconds);
|
||||
}
|
||||
}
|
||||
|
||||
private static void AssertListsAreEqual(PropertyInfo property, IEnumerable expected, IEnumerable actual, Func<IEnumerable, IEnumerable> sorter = null, int dateDeltaMilliseconds = 0)
|
||||
{
|
||||
|
||||
|
||||
if (sorter == null)
|
||||
{
|
||||
// this is pretty hackerific but saves us some code to write
|
||||
sorter = enumerable =>
|
||||
{
|
||||
// semi-generic way of ensuring any collection of IEntity are sorted by Ids for comparison
|
||||
var entities = enumerable.OfType<IEntity>().ToList();
|
||||
return entities.Count > 0 ? (IEnumerable) entities.OrderBy(x => x.Id) : entities;
|
||||
};
|
||||
}
|
||||
|
||||
var expectedListEx = sorter(expected).Cast<object>().ToList();
|
||||
var actualListEx = sorter(actual).Cast<object>().ToList();
|
||||
|
||||
if (actualListEx.Count != expectedListEx.Count)
|
||||
Assert.Fail("Collection {0}.{1} does not match. Expected IEnumerable containing {2} elements but was IEnumerable containing {3} elements", property.PropertyType.Name, property.Name, expectedListEx.Count, actualListEx.Count);
|
||||
|
||||
for (var i = 0; i < actualListEx.Count; i++)
|
||||
AssertAreEqual(property, expectedListEx[i], actualListEx[i], sorter, dateDeltaMilliseconds);
|
||||
}
|
||||
|
||||
private static void AssertAreEqual(PropertyInfo property, object expected, object actual, Func<IEnumerable, IEnumerable> sorter = null, int dateDeltaMilliseconds = 0)
|
||||
{
|
||||
if (!(expected is string) && expected is IEnumerable)
|
||||
{
|
||||
// sort property collection by alias, not by property ids
|
||||
// on members, built-in properties don't have ids (always zero)
|
||||
if (expected is PropertyCollection)
|
||||
sorter = e => ((PropertyCollection) e).OrderBy(x => x.Alias);
|
||||
|
||||
// compare lists
|
||||
AssertListsAreEqual(property, (IEnumerable) actual, (IEnumerable) expected, sorter, dateDeltaMilliseconds);
|
||||
}
|
||||
else if (expected is DateTime expectedDateTime)
|
||||
{
|
||||
// compare date & time with delta
|
||||
var actualDateTime = (DateTime) actual;
|
||||
var delta = (actualDateTime - expectedDateTime).TotalMilliseconds;
|
||||
Assert.IsTrue(Math.Abs(delta) <= dateDeltaMilliseconds, "Property {0}.{1} does not match. Expected: {2} but was: {3}", property.DeclaringType.Name, property.Name, expected, actual);
|
||||
}
|
||||
else if (expected is Property expectedProperty)
|
||||
{
|
||||
// compare values
|
||||
var actualProperty = (Property) actual;
|
||||
var expectedPropertyValues = expectedProperty.Values.OrderBy(x => x.Culture).ThenBy(x => x.Segment).ToArray();
|
||||
var actualPropertyValues = actualProperty.Values.OrderBy(x => x.Culture).ThenBy(x => x.Segment).ToArray();
|
||||
if (expectedPropertyValues.Length != actualPropertyValues.Length)
|
||||
Assert.Fail($"{property.DeclaringType.Name}.{property.Name}: Expected {expectedPropertyValues.Length} but got {actualPropertyValues.Length}.");
|
||||
for (var i = 0; i < expectedPropertyValues.Length; i++)
|
||||
{
|
||||
Assert.AreEqual(expectedPropertyValues[i].EditedValue, actualPropertyValues[i].EditedValue, $"{property.DeclaringType.Name}.{property.Name}: Expected draft value \"{expectedPropertyValues[i].EditedValue}\" but got \"{actualPropertyValues[i].EditedValue}\".");
|
||||
Assert.AreEqual(expectedPropertyValues[i].PublishedValue, actualPropertyValues[i].PublishedValue, $"{property.DeclaringType.Name}.{property.Name}: Expected published value \"{expectedPropertyValues[i].EditedValue}\" but got \"{actualPropertyValues[i].EditedValue}\".");
|
||||
}
|
||||
}
|
||||
else if (expected is IDataEditor expectedEditor)
|
||||
{
|
||||
Assert.IsInstanceOf<IDataEditor>(actual);
|
||||
var actualEditor = (IDataEditor) actual;
|
||||
Assert.AreEqual(expectedEditor.Alias, actualEditor.Alias);
|
||||
// what else shall we test?
|
||||
}
|
||||
else
|
||||
{
|
||||
// directly compare values
|
||||
Assert.AreEqual(expected, actual, "Property {0}.{1} does not match. Expected: {2} but was: {3}", property.DeclaringType.Name, property.Name,
|
||||
expected?.ToString() ?? "<null>", actual?.ToString() ?? "<null>");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,13 +7,18 @@ using NUnit.Framework;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Cache;
|
||||
using Umbraco.Core.Configuration.Models;
|
||||
using Umbraco.Core.IO;
|
||||
using Umbraco.Core.Mapping;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Persistence;
|
||||
using Umbraco.Core.Persistence.Dtos;
|
||||
using Umbraco.Core.Persistence.Repositories;
|
||||
using Umbraco.Core.Persistence.Repositories.Implement;
|
||||
using Umbraco.Core.PropertyEditors;
|
||||
using Umbraco.Core.Scoping;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Integration.Testing;
|
||||
using Umbraco.Tests.TestHelpers;
|
||||
using Umbraco.Tests.TestHelpers.Entities;
|
||||
using Umbraco.Tests.Testing;
|
||||
@@ -23,57 +28,36 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
{
|
||||
[TestFixture]
|
||||
[UmbracoTest(Mapper = true, Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
|
||||
public class ContentTypeRepositoryTest : TestWithDatabaseBase
|
||||
public class ContentTypeRepositoryTest : UmbracoIntegrationTest
|
||||
{
|
||||
private IOptions<GlobalSettings> _globalSettings;
|
||||
private ContentType _simpleContentType;
|
||||
private ContentType _textpageContentType;
|
||||
private IFileSystems FileSystems => GetRequiredService<IFileSystems>();
|
||||
private UmbracoMapper Mapper => GetRequiredService<UmbracoMapper>();
|
||||
private IContentTypeService ContentTypeService => GetRequiredService<IContentTypeService>();
|
||||
private IDocumentTypeContainerRepository DocumentTypeContainerRepository => GetRequiredService<IDocumentTypeContainerRepository>();
|
||||
private IMediaTypeContainerRepository MediaTypeContainerRepository => GetRequiredService<IMediaTypeContainerRepository>();
|
||||
private IMediaTypeRepository MediaTypeRepository => GetRequiredService<IMediaTypeRepository>();
|
||||
private IDocumentRepository DocumentRepository => GetRequiredService<IDocumentRepository>();
|
||||
private ContentTypeRepository ContentTypeRepository => (ContentTypeRepository) GetRequiredService<IContentTypeRepository>();
|
||||
|
||||
public override void SetUp()
|
||||
|
||||
[SetUp]
|
||||
public void SetUpData()
|
||||
{
|
||||
base.SetUp();
|
||||
|
||||
CreateTestData();
|
||||
|
||||
_globalSettings = Microsoft.Extensions.Options.Options.Create(new GlobalSettings());
|
||||
}
|
||||
|
||||
private DocumentRepository CreateRepository(IScopeAccessor scopeAccessor, out ContentTypeRepository contentTypeRepository)
|
||||
public void CreateTestData()
|
||||
{
|
||||
var langRepository = new LanguageRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger<LanguageRepository>(), _globalSettings);
|
||||
var templateRepository = new TemplateRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger<TemplateRepository>(), TestObjects.GetFileSystemsMock(), IOHelper, ShortStringHelper);
|
||||
var tagRepository = new TagRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger<TagRepository>());
|
||||
var commonRepository = new ContentTypeCommonRepository(scopeAccessor, templateRepository, AppCaches.Disabled, ShortStringHelper);
|
||||
contentTypeRepository = new ContentTypeRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger<ContentTypeRepository>(), commonRepository, langRepository, ShortStringHelper);
|
||||
var languageRepository = new LanguageRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger<LanguageRepository>(), _globalSettings);
|
||||
var relationTypeRepository = new RelationTypeRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger<RelationTypeRepository>());
|
||||
var entityRepository = new EntityRepository(scopeAccessor);
|
||||
var relationRepository = new RelationRepository(scopeAccessor, LoggerFactory.CreateLogger<RelationRepository>(), relationTypeRepository, entityRepository);
|
||||
var propertyEditors = new Lazy<PropertyEditorCollection>(() => new PropertyEditorCollection(new DataEditorCollection(Enumerable.Empty<IDataEditor>())));
|
||||
var dataValueReferences = new DataValueReferenceFactoryCollection(Enumerable.Empty<IDataValueReferenceFactory>());
|
||||
var repository = new DocumentRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger<DocumentRepository>(), LoggerFactory, contentTypeRepository, templateRepository, tagRepository, languageRepository, relationRepository, relationTypeRepository, propertyEditors, dataValueReferences, DataTypeService);
|
||||
return repository;
|
||||
}
|
||||
//Create and Save ContentType "umbTextpage" -> (_simpleContentType.Id)
|
||||
_simpleContentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage", "Textpage", defaultTemplateId: 0);
|
||||
|
||||
private ContentTypeRepository CreateRepository(IScopeAccessor scopeAccessor)
|
||||
{
|
||||
var langRepository = new LanguageRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger<LanguageRepository>(), _globalSettings);
|
||||
var templateRepository = new TemplateRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger<TemplateRepository>(), TestObjects.GetFileSystemsMock(), IOHelper, ShortStringHelper);
|
||||
var commonRepository = new ContentTypeCommonRepository(scopeAccessor, templateRepository, AppCaches.Disabled, ShortStringHelper);
|
||||
var contentTypeRepository = new ContentTypeRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger<ContentTypeRepository>(), commonRepository, langRepository, ShortStringHelper);
|
||||
return contentTypeRepository;
|
||||
}
|
||||
ContentTypeService.Save(_simpleContentType);
|
||||
|
||||
private MediaTypeRepository CreateMediaTypeRepository(IScopeAccessor scopeAccessor)
|
||||
{
|
||||
var templateRepository = new TemplateRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger<TemplateRepository>(), TestObjects.GetFileSystemsMock(), IOHelper, ShortStringHelper);
|
||||
var commonRepository = new ContentTypeCommonRepository(scopeAccessor, templateRepository, AppCaches.Disabled, ShortStringHelper);
|
||||
var langRepository = new LanguageRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger<LanguageRepository>(), _globalSettings);
|
||||
var contentTypeRepository = new MediaTypeRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger<MediaTypeRepository>(), commonRepository, langRepository, ShortStringHelper);
|
||||
return contentTypeRepository;
|
||||
}
|
||||
|
||||
private EntityContainerRepository CreateContainerRepository(IScopeAccessor scopeAccessor, Guid containerEntityType)
|
||||
{
|
||||
return new EntityContainerRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger<EntityContainerRepository>(), containerEntityType);
|
||||
//Create and Save ContentType "textPage" -> (_textpageContentType.Id)
|
||||
_textpageContentType = ContentTypeBuilder.CreateTextPageContentType( defaultTemplateId: 0);
|
||||
ContentTypeService.Save(_textpageContentType);
|
||||
}
|
||||
|
||||
// TODO: Add test to verify SetDefaultTemplates updates both AllowedTemplates and DefaultTemplate(id).
|
||||
@@ -82,11 +66,11 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Maps_Templates_Correctly()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var templateRepo = new TemplateRepository((IScopeAccessor) provider, AppCaches.Disabled, LoggerFactory.CreateLogger<TemplateRepository>(), TestObjects.GetFileSystemsMock(), IOHelper, ShortStringHelper);
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var templateRepo = new TemplateRepository((IScopeAccessor) provider, AppCaches.Disabled, LoggerFactory.CreateLogger<TemplateRepository>(), FileSystems, IOHelper, ShortStringHelper);
|
||||
var repository = ContentTypeRepository;
|
||||
var templates = new[]
|
||||
{
|
||||
new Template(ShortStringHelper, "test1", "test1"),
|
||||
@@ -99,7 +83,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
}
|
||||
|
||||
|
||||
var contentType = MockedContentTypes.CreateSimpleContentType();
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType();
|
||||
contentType.AllowedTemplates = new[] { templates[0], templates[1] };
|
||||
contentType.SetDefaultTemplate(templates[0]);
|
||||
repository.Save(contentType);
|
||||
@@ -117,20 +101,20 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Move()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var containerRepository = CreateContainerRepository((IScopeAccessor) provider, Constants.ObjectTypes.DocumentTypeContainer);
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
|
||||
var repository = ContentTypeRepository;
|
||||
var container1 = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "blah1" };
|
||||
containerRepository.Save(container1);
|
||||
DocumentTypeContainerRepository.Save(container1);
|
||||
|
||||
|
||||
var container2 = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "blah2", ParentId = container1.Id };
|
||||
containerRepository.Save(container2);
|
||||
DocumentTypeContainerRepository.Save(container2);
|
||||
|
||||
|
||||
var contentType = (IContentType)MockedContentTypes.CreateBasicContentType("asdfasdf");
|
||||
var contentType = (IContentType)ContentTypeBuilder.CreateBasicContentType("asdfasdf");
|
||||
contentType.ParentId = container2.Id;
|
||||
repository.Save(contentType);
|
||||
|
||||
@@ -163,16 +147,16 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Create_Container()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var containerRepository = CreateContainerRepository((IScopeAccessor) provider, Constants.ObjectTypes.DocumentTypeContainer);
|
||||
|
||||
var container = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "blah" };
|
||||
containerRepository.Save(container);
|
||||
DocumentTypeContainerRepository.Save(container);
|
||||
|
||||
Assert.That(container.Id, Is.GreaterThan(0));
|
||||
|
||||
var found = containerRepository.Get(container.Id);
|
||||
var found = DocumentTypeContainerRepository.Get(container.Id);
|
||||
Assert.IsNotNull(found);
|
||||
}
|
||||
}
|
||||
@@ -182,29 +166,28 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
{
|
||||
EntityContainer container1, container2, container3;
|
||||
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var containerRepository = CreateContainerRepository((IScopeAccessor) provider, Constants.ObjectTypes.DocumentTypeContainer);
|
||||
|
||||
container1 = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "container1" };
|
||||
containerRepository.Save(container1);
|
||||
DocumentTypeContainerRepository.Save(container1);
|
||||
container2 = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "container2" };
|
||||
containerRepository.Save(container2);
|
||||
DocumentTypeContainerRepository.Save(container2);
|
||||
container3 = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "container3" };
|
||||
containerRepository.Save(container3);
|
||||
DocumentTypeContainerRepository.Save(container3);
|
||||
|
||||
Assert.That(container1.Id, Is.GreaterThan(0));
|
||||
Assert.That(container2.Id, Is.GreaterThan(0));
|
||||
Assert.That(container3.Id, Is.GreaterThan(0));
|
||||
|
||||
var found1 = containerRepository.Get(container1.Id);
|
||||
var found1 = DocumentTypeContainerRepository.Get(container1.Id);
|
||||
Assert.IsNotNull(found1);
|
||||
var found2 = containerRepository.Get(container2.Id);
|
||||
var found2 = DocumentTypeContainerRepository.Get(container2.Id);
|
||||
Assert.IsNotNull(found2);
|
||||
var found3 = containerRepository.Get(container3.Id);
|
||||
var found3 = DocumentTypeContainerRepository.Get(container3.Id);
|
||||
Assert.IsNotNull(found3);
|
||||
var allContainers = containerRepository.GetMany();
|
||||
var allContainers = DocumentTypeContainerRepository.GetMany();
|
||||
Assert.AreEqual(3, allContainers.Count());
|
||||
}
|
||||
}
|
||||
@@ -212,19 +195,18 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Delete_Container()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var containerRepository = CreateContainerRepository((IScopeAccessor) provider, Constants.ObjectTypes.DocumentTypeContainer);
|
||||
var container = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "blah" };
|
||||
containerRepository.Save(container);
|
||||
DocumentTypeContainerRepository.Save(container);
|
||||
|
||||
|
||||
// Act
|
||||
containerRepository.Delete(container);
|
||||
DocumentTypeContainerRepository.Delete(container);
|
||||
|
||||
|
||||
var found = containerRepository.Get(container.Id);
|
||||
var found = DocumentTypeContainerRepository.Get(container.Id);
|
||||
Assert.IsNull(found);
|
||||
}
|
||||
}
|
||||
@@ -232,16 +214,15 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Create_Container_Containing_Media_Types()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var containerRepository = CreateContainerRepository((IScopeAccessor) provider, Constants.ObjectTypes.MediaTypeContainer);
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var repository = ContentTypeRepository;
|
||||
var container = new EntityContainer(Constants.ObjectTypes.MediaType) { Name = "blah" };
|
||||
containerRepository.Save(container);
|
||||
MediaTypeContainerRepository.Save(container);
|
||||
|
||||
|
||||
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test", propertyGroupName: "testGroup");
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("test", "Test", propertyGroupName: "testGroup", defaultTemplateId:0);
|
||||
contentType.ParentId = container.Id;
|
||||
repository.Save(contentType);
|
||||
|
||||
@@ -253,28 +234,27 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Delete_Container_Containing_Media_Types()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var containerRepository = CreateContainerRepository((IScopeAccessor) provider, Constants.ObjectTypes.MediaTypeContainer);
|
||||
var repository = CreateMediaTypeRepository((IScopeAccessor) provider);
|
||||
|
||||
var container = new EntityContainer(Constants.ObjectTypes.MediaType) { Name = "blah" };
|
||||
containerRepository.Save(container);
|
||||
MediaTypeContainerRepository.Save(container);
|
||||
|
||||
|
||||
IMediaType contentType = MockedContentTypes.CreateSimpleMediaType("test", "Test", propertyGroupName: "testGroup");
|
||||
IMediaType contentType = MediaTypeBuilder.CreateSimpleMediaType("test", "Test", propertyGroupName: "testGroup");
|
||||
contentType.ParentId = container.Id;
|
||||
repository.Save(contentType);
|
||||
MediaTypeRepository.Save(contentType);
|
||||
|
||||
|
||||
// Act
|
||||
containerRepository.Delete(container);
|
||||
MediaTypeContainerRepository.Delete(container);
|
||||
|
||||
|
||||
var found = containerRepository.Get(container.Id);
|
||||
var found = MediaTypeContainerRepository.Get(container.Id);
|
||||
Assert.IsNull(found);
|
||||
|
||||
contentType = repository.Get(contentType.Id);
|
||||
contentType = MediaTypeRepository.Get(contentType.Id);
|
||||
Assert.IsNotNull(contentType);
|
||||
Assert.AreEqual(-1, contentType.ParentId);
|
||||
}
|
||||
@@ -284,16 +264,16 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Perform_Add_On_ContentTypeRepository()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
|
||||
// Act
|
||||
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test", propertyGroupName: "testGroup");
|
||||
repository.Save(contentType);
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("test", "Test", propertyGroupName: "testGroup");
|
||||
ContentTypeRepository.Save(contentType);
|
||||
|
||||
|
||||
var fetched = repository.Get(contentType.Id);
|
||||
var fetched = ContentTypeRepository.Get(contentType.Id);
|
||||
|
||||
// Assert
|
||||
Assert.That(contentType.HasIdentity, Is.True);
|
||||
@@ -319,12 +299,12 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Perform_Add_On_ContentTypeRepository_After_Model_Mapping()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var repository = ContentTypeRepository;
|
||||
// Act
|
||||
var contentType = (IContentType)MockedContentTypes.CreateSimpleContentType2("test", "Test", propertyGroupName: "testGroup");
|
||||
var contentType = (IContentType)ContentTypeBuilder.CreateSimpleContentType2("test", "Test", propertyGroupName: "testGroup");
|
||||
|
||||
Assert.AreEqual(4, contentType.PropertyTypes.Count());
|
||||
|
||||
@@ -371,12 +351,12 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Perform_Update_On_ContentTypeRepository()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var repository = ContentTypeRepository;
|
||||
// Act
|
||||
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
|
||||
var contentType = repository.Get(_textpageContentType.Id);
|
||||
|
||||
contentType.Thumbnail = "Doc2.png";
|
||||
contentType.PropertyGroups["Content"].PropertyTypes.Add(new PropertyType(ShortStringHelper, "test", ValueStorageType.Ntext, "subtitle")
|
||||
@@ -447,12 +427,12 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Perform_Update_On_ContentTypeRepository_After_Model_Mapping()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var repository = ContentTypeRepository;
|
||||
// Act
|
||||
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
|
||||
var contentType = repository.Get(_textpageContentType.Id);
|
||||
|
||||
// there is NO mapping from display to contentType, but only from save
|
||||
// to contentType, so if we want to test, let's to it properly!
|
||||
@@ -491,7 +471,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
var dirty = mapped.IsDirty();
|
||||
|
||||
//re-get
|
||||
contentType = repository.Get(NodeDto.NodeIdSeed + 1);
|
||||
contentType = repository.Get(_textpageContentType.Id);
|
||||
|
||||
// Assert
|
||||
Assert.That(contentType.HasIdentity, Is.True);
|
||||
@@ -510,12 +490,12 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Perform_Delete_On_ContentTypeRepository()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var repository = ContentTypeRepository;
|
||||
// Act
|
||||
var contentType = MockedContentTypes.CreateSimpleContentType();
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType(defaultTemplateId:0);
|
||||
repository.Save(contentType);
|
||||
|
||||
|
||||
@@ -534,13 +514,13 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Perform_Delete_With_Heirarchy_On_ContentTypeRepository()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var ctMain = MockedContentTypes.CreateSimpleContentType();
|
||||
var ctChild1 = MockedContentTypes.CreateSimpleContentType("child1", "Child 1", ctMain, true);
|
||||
var ctChild2 = MockedContentTypes.CreateSimpleContentType("child2", "Child 2", ctChild1, true);
|
||||
var repository = ContentTypeRepository;
|
||||
var ctMain = ContentTypeBuilder.CreateSimpleContentType(defaultTemplateId:0);
|
||||
var ctChild1 = ContentTypeBuilder.CreateSimpleContentType("child1", "Child 1", ctMain, true, defaultTemplateId:0);
|
||||
var ctChild2 = ContentTypeBuilder.CreateSimpleContentType("child2", "Child 2", ctChild1, true, defaultTemplateId:0);
|
||||
|
||||
repository.Save(ctMain);
|
||||
repository.Save(ctChild1);
|
||||
@@ -566,16 +546,16 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
IContentType contentType;
|
||||
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
contentType = repository.Get(NodeDto.NodeIdSeed + 1);
|
||||
var child1 = MockedContentTypes.CreateSimpleContentType("abc", "abc", contentType, randomizeAliases: true);
|
||||
var repository = ContentTypeRepository;
|
||||
contentType = repository.Get(_textpageContentType.Id);
|
||||
var child1 = ContentTypeBuilder.CreateSimpleContentType("abc", "abc", contentType, randomizeAliases: true, defaultTemplateId:0);
|
||||
repository.Save(child1);
|
||||
var child3 = MockedContentTypes.CreateSimpleContentType("zyx", "zyx", contentType, randomizeAliases: true);
|
||||
var child3 = ContentTypeBuilder.CreateSimpleContentType("zyx", "zyx", contentType, randomizeAliases: true, defaultTemplateId:0);
|
||||
repository.Save(child3);
|
||||
var child2 = MockedContentTypes.CreateSimpleContentType("a123", "a123", contentType, randomizeAliases: true);
|
||||
var child2 = ContentTypeBuilder.CreateSimpleContentType("a123", "a123", contentType, randomizeAliases: true, defaultTemplateId:0);
|
||||
repository.Save(child2);
|
||||
|
||||
scope.Complete();
|
||||
@@ -583,7 +563,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider);
|
||||
var repository = ContentTypeRepository;
|
||||
|
||||
// Act
|
||||
var contentTypes = repository.Get(scope.SqlContext.Query<IContentType>().Where(x => x.ParentId == contentType.Id));
|
||||
@@ -601,17 +581,17 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Perform_Get_On_ContentTypeRepository()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var repository = ContentTypeRepository;
|
||||
|
||||
// Act
|
||||
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
|
||||
var contentType = repository.Get(_textpageContentType.Id);
|
||||
|
||||
// Assert
|
||||
Assert.That(contentType, Is.Not.Null);
|
||||
Assert.That(contentType.Id, Is.EqualTo(NodeDto.NodeIdSeed + 1));
|
||||
Assert.That(contentType.Id, Is.EqualTo(_textpageContentType.Id));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -619,12 +599,12 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Perform_Get_By_Guid_On_ContentTypeRepository()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
|
||||
var childContentType = MockedContentTypes.CreateSimpleContentType("blah", "Blah", contentType, randomizeAliases:true);
|
||||
var repository = ContentTypeRepository;
|
||||
var contentType = repository.Get(_textpageContentType.Id);
|
||||
var childContentType = ContentTypeBuilder.CreateSimpleContentType("blah", "Blah", contentType, randomizeAliases:true, defaultTemplateId:0);
|
||||
repository.Save(childContentType);
|
||||
|
||||
|
||||
@@ -641,10 +621,10 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Perform_Get_By_Missing_Guid_On_ContentTypeRepository()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var repository = ContentTypeRepository;
|
||||
// Act
|
||||
var result = repository.Get(Guid.NewGuid());
|
||||
|
||||
@@ -657,10 +637,10 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Perform_GetAll_On_ContentTypeRepository()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var repository = (ContentTypeRepository)ContentTypeRepository;
|
||||
|
||||
// Act
|
||||
var contentTypes = repository.GetMany();
|
||||
@@ -679,10 +659,10 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Perform_GetAll_By_Guid_On_ContentTypeRepository()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var repository = (ContentTypeRepository)ContentTypeRepository;
|
||||
var allGuidIds = repository.GetMany().Select(x => x.Key).ToArray();
|
||||
|
||||
// Act
|
||||
@@ -702,13 +682,13 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Perform_Exists_On_ContentTypeRepository()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var repository = ContentTypeRepository;
|
||||
|
||||
// Act
|
||||
var exists = repository.Exists(NodeDto.NodeIdSeed);
|
||||
var exists = repository.Exists(_simpleContentType.Id);
|
||||
|
||||
// Assert
|
||||
Assert.That(exists, Is.True);
|
||||
@@ -719,18 +699,18 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Update_ContentType_With_PropertyType_Removed()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
|
||||
var repository = ContentTypeRepository;
|
||||
var contentType = repository.Get(_textpageContentType.Id);
|
||||
|
||||
// Act
|
||||
contentType.PropertyGroups["Meta"].PropertyTypes.Remove("description");
|
||||
repository.Save(contentType);
|
||||
|
||||
|
||||
var result = repository.Get(NodeDto.NodeIdSeed + 1);
|
||||
var result = repository.Get(_textpageContentType.Id);
|
||||
|
||||
// Assert
|
||||
Assert.That(result.PropertyTypes.Any(x => x.Alias == "description"), Is.False);
|
||||
@@ -743,13 +723,13 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Verify_PropertyTypes_On_SimpleTextpage()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var repository = ContentTypeRepository;
|
||||
|
||||
// Act
|
||||
var contentType = repository.Get(NodeDto.NodeIdSeed);
|
||||
var contentType = repository.Get(_simpleContentType.Id);
|
||||
|
||||
// Assert
|
||||
Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(3));
|
||||
@@ -761,13 +741,13 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Verify_PropertyTypes_On_Textpage()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var repository = ContentTypeRepository;
|
||||
|
||||
// Act
|
||||
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
|
||||
var contentType = repository.Get(_textpageContentType.Id);
|
||||
|
||||
// Assert
|
||||
Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(4));
|
||||
@@ -779,11 +759,11 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Verify_PropertyType_With_No_Group()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
|
||||
var repository = ContentTypeRepository;
|
||||
var contentType = repository.Get(_textpageContentType.Id);
|
||||
|
||||
Assert.That(contentType.PropertyGroups.Count, Is.EqualTo(2));
|
||||
Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(4));
|
||||
@@ -807,7 +787,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
|
||||
|
||||
// Assert
|
||||
var updated = repository.Get(NodeDto.NodeIdSeed + 1);
|
||||
var updated = repository.Get(_textpageContentType.Id);
|
||||
Assert.That(addedPropertyType, Is.True);
|
||||
Assert.That(updated.PropertyGroups.Count, Is.EqualTo(2));
|
||||
Assert.That(updated.PropertyTypes.Count(), Is.EqualTo(5));
|
||||
@@ -820,19 +800,19 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Verify_AllowedChildContentTypes_On_ContentType()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor) provider);
|
||||
var repository = ContentTypeRepository;
|
||||
|
||||
var subpageContentType = MockedContentTypes.CreateSimpleContentType("umbSubpage", "Subpage");
|
||||
var simpleSubpageContentType = MockedContentTypes.CreateSimpleContentType("umbSimpleSubpage", "Simple Subpage");
|
||||
var subpageContentType = ContentTypeBuilder.CreateSimpleContentType("umbSubpage", "Subpage");
|
||||
var simpleSubpageContentType = ContentTypeBuilder.CreateSimpleContentType("umbSimpleSubpage", "Simple Subpage");
|
||||
repository.Save(subpageContentType);
|
||||
repository.Save(simpleSubpageContentType);
|
||||
|
||||
|
||||
// Act
|
||||
var contentType = repository.Get(NodeDto.NodeIdSeed);
|
||||
var contentType = repository.Get(_simpleContentType.Id);
|
||||
contentType.AllowedContentTypes = new List<ContentTypeSort>
|
||||
{
|
||||
new ContentTypeSort(new Lazy<int>(() => subpageContentType.Id), 0, subpageContentType.Alias),
|
||||
@@ -842,7 +822,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
|
||||
|
||||
//Assert
|
||||
var updated = repository.Get(NodeDto.NodeIdSeed);
|
||||
var updated = repository.Get(_simpleContentType.Id);
|
||||
|
||||
Assert.That(updated.AllowedContentTypes.Any(), Is.True);
|
||||
Assert.That(updated.AllowedContentTypes.Any(x => x.Alias == subpageContentType.Alias), Is.True);
|
||||
@@ -854,15 +834,14 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Verify_Removal_Of_Used_PropertyType_From_ContentType()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
ContentTypeRepository repository;
|
||||
var contentRepository = CreateRepository((IScopeAccessor) provider, out repository);
|
||||
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
|
||||
var repository = ContentTypeRepository;
|
||||
var contentType = repository.Get(_textpageContentType.Id);
|
||||
|
||||
var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id);
|
||||
contentRepository.Save(subpage);
|
||||
var subpage = ContentBuilder.CreateTextpageContent(contentType, "Text Page 1", contentType.Id);
|
||||
DocumentRepository.Save(subpage);
|
||||
|
||||
|
||||
// Act
|
||||
@@ -881,15 +860,14 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Verify_Addition_Of_PropertyType_After_ContentType_Is_Used()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
ContentTypeRepository repository;
|
||||
var contentRepository = CreateRepository((IScopeAccessor) provider, out repository);
|
||||
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
|
||||
var repository = ContentTypeRepository;
|
||||
var contentType = repository.Get(_textpageContentType.Id);
|
||||
|
||||
var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id);
|
||||
contentRepository.Save(subpage);
|
||||
var subpage = ContentBuilder.CreateTextpageContent(contentType, "Text Page 1", contentType.Id);
|
||||
DocumentRepository.Save(subpage);
|
||||
|
||||
|
||||
// Act
|
||||
@@ -909,15 +887,15 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Verify_Usage_Of_New_PropertyType_On_Content()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
ContentTypeRepository repository;
|
||||
var contentRepository = CreateRepository((IScopeAccessor) provider, out repository);
|
||||
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
|
||||
var repository = ContentTypeRepository;
|
||||
|
||||
var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id);
|
||||
contentRepository.Save(subpage);
|
||||
var contentType = repository.Get(_textpageContentType.Id);
|
||||
|
||||
var subpage = ContentBuilder.CreateTextpageContent(contentType, "Text Page 1", contentType.Id);
|
||||
DocumentRepository.Save(subpage);
|
||||
|
||||
|
||||
var propertyGroup = contentType.PropertyGroups.First(x => x.Name == "Meta");
|
||||
@@ -926,13 +904,13 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
|
||||
|
||||
// Act
|
||||
var content = contentRepository.Get(subpage.Id);
|
||||
var content = DocumentRepository.Get(subpage.Id);
|
||||
content.SetValue("metaAuthor", "John Doe");
|
||||
contentRepository.Save(content);
|
||||
DocumentRepository.Save(content);
|
||||
|
||||
|
||||
//Assert
|
||||
var updated = contentRepository.Get(subpage.Id);
|
||||
var updated = DocumentRepository.Get(subpage.Id);
|
||||
Assert.That(updated.GetValue("metaAuthor").ToString(), Is.EqualTo("John Doe"));
|
||||
Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(5));
|
||||
Assert.That(contentType.PropertyTypes.Any(x => x.Alias == "metaAuthor"), Is.True);
|
||||
@@ -943,15 +921,15 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Verify_That_A_Combination_Of_Adding_And_Deleting_PropertyTypes_Doesnt_Cause_Issues_For_Content_And_ContentType()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
ContentTypeRepository repository;
|
||||
var contentRepository = CreateRepository((IScopeAccessor) provider, out repository);
|
||||
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
|
||||
var repository = ContentTypeRepository;
|
||||
|
||||
var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id);
|
||||
contentRepository.Save(subpage);
|
||||
var contentType = repository.Get(_textpageContentType.Id);
|
||||
|
||||
var subpage = ContentBuilder.CreateTextpageContent(contentType, "Text Page 1", contentType.Id);
|
||||
DocumentRepository.Save(subpage);
|
||||
|
||||
|
||||
//Remove PropertyType
|
||||
@@ -963,13 +941,13 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
|
||||
|
||||
// Act
|
||||
var content = contentRepository.Get(subpage.Id);
|
||||
var content = DocumentRepository.Get(subpage.Id);
|
||||
content.SetValue("metaAuthor", "John Doe");
|
||||
contentRepository.Save(content);
|
||||
DocumentRepository.Save(content);
|
||||
|
||||
|
||||
//Assert
|
||||
var updated = contentRepository.Get(subpage.Id);
|
||||
var updated = DocumentRepository.Get(subpage.Id);
|
||||
Assert.That(updated.GetValue("metaAuthor").ToString(), Is.EqualTo("John Doe"));
|
||||
Assert.That(updated.Properties.First(x => x.Alias == "description").GetValue(), Is.EqualTo("This is the meta description for a textpage"));
|
||||
|
||||
@@ -983,19 +961,19 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void Can_Verify_Content_Type_Has_Content_Nodes()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
ContentTypeRepository repository;
|
||||
var contentRepository = CreateRepository((IScopeAccessor)provider, out repository);
|
||||
var contentTypeId = NodeDto.NodeIdSeed + 1;
|
||||
var repository = ContentTypeRepository;
|
||||
|
||||
var contentTypeId = _textpageContentType.Id;
|
||||
var contentType = repository.Get(contentTypeId);
|
||||
|
||||
// Act
|
||||
var result = repository.HasContentNodes(contentTypeId);
|
||||
|
||||
var subpage = MockedContent.CreateTextpageContent(contentType, "Test Page 1", contentType.Id);
|
||||
contentRepository.Save(subpage);
|
||||
var subpage = ContentBuilder.CreateTextpageContent(contentType, "Test Page 1", contentType.Id);
|
||||
DocumentRepository.Save(subpage);
|
||||
|
||||
var result2 = repository.HasContentNodes(contentTypeId);
|
||||
|
||||
@@ -1005,15 +983,6 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
}
|
||||
}
|
||||
|
||||
public void CreateTestData()
|
||||
{
|
||||
//Create and Save ContentType "umbTextpage" -> (NodeDto.NodeIdSeed)
|
||||
ContentType simpleContentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage");
|
||||
ServiceContext.ContentTypeService.Save(simpleContentType);
|
||||
|
||||
//Create and Save ContentType "textPage" -> (NodeDto.NodeIdSeed + 1)
|
||||
ContentType textpageContentType = MockedContentTypes.CreateTextPageContentType();
|
||||
ServiceContext.ContentTypeService.Save(textpageContentType);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,48 +1,37 @@
|
||||
using System.Linq;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Cache;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Persistence.Repositories;
|
||||
using Umbraco.Tests.TestHelpers;
|
||||
using Umbraco.Tests.Testing;
|
||||
using Umbraco.Core.Composing;
|
||||
using Umbraco.Core.Persistence.Repositories.Implement;
|
||||
using Umbraco.Core.PropertyEditors;
|
||||
using Umbraco.Core.Scoping;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Tests.Integration.Testing;
|
||||
using Umbraco.Web.PropertyEditors;
|
||||
|
||||
namespace Umbraco.Tests.Persistence.Repositories
|
||||
{
|
||||
[TestFixture]
|
||||
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
|
||||
public class DataTypeDefinitionRepositoryTest : TestWithDatabaseBase
|
||||
public class DataTypeDefinitionRepositoryTest : UmbracoIntegrationTest
|
||||
{
|
||||
private IDataTypeRepository CreateRepository()
|
||||
{
|
||||
return Factory.GetInstance<IDataTypeRepository>();
|
||||
}
|
||||
|
||||
private EntityContainerRepository CreateContainerRepository(IScopeAccessor scopeAccessor)
|
||||
{
|
||||
return new EntityContainerRepository(scopeAccessor, AppCaches.Disabled, LoggerFactory.CreateLogger<EntityContainerRepository>(), Constants.ObjectTypes.DataTypeContainer);
|
||||
}
|
||||
private IDataTypeService DataTypeService => GetRequiredService<IDataTypeService>();
|
||||
private ILocalizedTextService LocalizedTextService => GetRequiredService<ILocalizedTextService>();
|
||||
private ILocalizationService LocalizationService => GetRequiredService<ILocalizationService>();
|
||||
private IContentTypeRepository ContentTypeRepository => GetRequiredService<IContentTypeRepository>();
|
||||
private IDataTypeContainerRepository DataTypeContainerRepository => GetRequiredService<IDataTypeContainerRepository>();
|
||||
private IDataTypeRepository DataTypeRepository => GetRequiredService<IDataTypeRepository>();
|
||||
|
||||
[Test]
|
||||
public void Can_Find_Usages()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
|
||||
using (provider.CreateScope())
|
||||
using (ScopeProvider.CreateScope())
|
||||
{
|
||||
var dtRepo = CreateRepository();
|
||||
IDataType dataType1 = new DataType(new RadioButtonsPropertyEditor(LoggerFactory, IOHelper, DataTypeService, LocalizationService, LocalizedTextService, ShortStringHelper)) { Name = "dt1" };
|
||||
dtRepo.Save(dataType1);
|
||||
DataTypeRepository.Save(dataType1);
|
||||
IDataType dataType2 = new DataType(new RadioButtonsPropertyEditor(LoggerFactory, IOHelper, DataTypeService, LocalizationService, LocalizedTextService, ShortStringHelper)) { Name = "dt2" };
|
||||
dtRepo.Save(dataType2);
|
||||
DataTypeRepository.Save(dataType2);
|
||||
|
||||
var ctRepo = Factory.GetInstance<IContentTypeRepository>();
|
||||
IContentType ct = new ContentType(ShortStringHelper, -1)
|
||||
{
|
||||
Alias = "ct1",
|
||||
@@ -72,9 +61,9 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
}
|
||||
}
|
||||
};
|
||||
ctRepo.Save(ct);
|
||||
ContentTypeRepository.Save(ct);
|
||||
|
||||
var usages = dtRepo.FindUsages(dataType1.Id);
|
||||
var usages = DataTypeRepository.FindUsages(dataType1.Id);
|
||||
|
||||
var key = usages.First().Key;
|
||||
Assert.AreEqual(ct.Key, ((GuidUdi)key).Guid);
|
||||
@@ -82,7 +71,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
Assert.AreEqual("pt1", usages[key].ElementAt(0));
|
||||
Assert.AreEqual("pt2", usages[key].ElementAt(1));
|
||||
|
||||
usages = dtRepo.FindUsages(dataType2.Id);
|
||||
usages = DataTypeRepository.FindUsages(dataType2.Id);
|
||||
|
||||
key = usages.First().Key;
|
||||
Assert.AreEqual(ct.Key, ((GuidUdi)key).Guid);
|
||||
@@ -94,39 +83,35 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Move()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var accessor = (IScopeAccessor) provider;
|
||||
|
||||
using (provider.CreateScope())
|
||||
using (ScopeProvider.CreateScope())
|
||||
{
|
||||
var containerRepository = CreateContainerRepository(accessor);
|
||||
var repository = CreateRepository();
|
||||
|
||||
var container1 = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah1" };
|
||||
containerRepository.Save(container1);
|
||||
DataTypeContainerRepository.Save(container1);
|
||||
|
||||
var container2 = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah2", ParentId = container1.Id };
|
||||
containerRepository.Save(container2);
|
||||
DataTypeContainerRepository.Save(container2);
|
||||
|
||||
var dataType = (IDataType) new DataType(new RadioButtonsPropertyEditor(LoggerFactory, IOHelper, DataTypeService, LocalizationService, LocalizedTextService, ShortStringHelper), container2.Id)
|
||||
{
|
||||
Name = "dt1"
|
||||
};
|
||||
repository.Save(dataType);
|
||||
DataTypeRepository.Save(dataType);
|
||||
|
||||
//create a
|
||||
var dataType2 = (IDataType)new DataType(new RadioButtonsPropertyEditor(LoggerFactory, IOHelper, DataTypeService, LocalizationService, LocalizedTextService, ShortStringHelper), dataType.Id)
|
||||
{
|
||||
Name = "dt2"
|
||||
};
|
||||
repository.Save(dataType2);
|
||||
DataTypeRepository.Save(dataType2);
|
||||
|
||||
var result = repository.Move(dataType, container1).ToArray();
|
||||
var result = DataTypeRepository.Move(dataType, container1).ToArray();
|
||||
|
||||
Assert.AreEqual(2, result.Length);
|
||||
|
||||
//re-get
|
||||
dataType = repository.Get(dataType.Id);
|
||||
dataType2 = repository.Get(dataType2.Id);
|
||||
dataType = DataTypeRepository.Get(dataType.Id);
|
||||
dataType2 = DataTypeRepository.Get(dataType2.Id);
|
||||
|
||||
Assert.AreEqual(container1.Id, dataType.ParentId);
|
||||
Assert.AreNotEqual(result.Single(x => x.Entity.Id == dataType.Id).OriginalPath, dataType.Path);
|
||||
@@ -137,18 +122,14 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Create_Container()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var accessor = (IScopeAccessor) provider;
|
||||
|
||||
using (provider.CreateScope())
|
||||
using (ScopeProvider.CreateScope())
|
||||
{
|
||||
var containerRepository = CreateContainerRepository(accessor);
|
||||
var container = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah" };
|
||||
containerRepository.Save(container);
|
||||
DataTypeContainerRepository.Save(container);
|
||||
|
||||
Assert.That(container.Id, Is.GreaterThan(0));
|
||||
|
||||
var found = containerRepository.Get(container.Id);
|
||||
var found = DataTypeContainerRepository.Get(container.Id);
|
||||
Assert.IsNotNull(found);
|
||||
}
|
||||
}
|
||||
@@ -156,19 +137,15 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Delete_Container()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var accessor = (IScopeAccessor) provider;
|
||||
|
||||
using (provider.CreateScope())
|
||||
using (ScopeProvider.CreateScope())
|
||||
{
|
||||
var containerRepository = CreateContainerRepository(accessor);
|
||||
var container = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah" };
|
||||
containerRepository.Save(container);
|
||||
DataTypeContainerRepository.Save(container);
|
||||
|
||||
// Act
|
||||
containerRepository.Delete(container);
|
||||
DataTypeContainerRepository.Delete(container);
|
||||
|
||||
var found = containerRepository.Get(container.Id);
|
||||
var found = DataTypeContainerRepository.Get(container.Id);
|
||||
Assert.IsNull(found);
|
||||
}
|
||||
}
|
||||
@@ -176,18 +153,13 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Create_Container_Containing_Data_Types()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var accessor = (IScopeAccessor) provider;
|
||||
|
||||
using (provider.CreateScope())
|
||||
using (ScopeProvider.CreateScope())
|
||||
{
|
||||
var containerRepository = CreateContainerRepository(accessor);
|
||||
var repository = CreateRepository();
|
||||
var container = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah" };
|
||||
containerRepository.Save(container);
|
||||
DataTypeContainerRepository.Save(container);
|
||||
|
||||
var dataTypeDefinition = new DataType(new RadioButtonsPropertyEditor(LoggerFactory, IOHelper, DataTypeService, LocalizationService, LocalizedTextService, ShortStringHelper), container.Id) { Name = "test" };
|
||||
repository.Save(dataTypeDefinition);
|
||||
DataTypeRepository.Save(dataTypeDefinition);
|
||||
|
||||
Assert.AreEqual(container.Id, dataTypeDefinition.ParentId);
|
||||
}
|
||||
@@ -196,26 +168,21 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Delete_Container_Containing_Data_Types()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var accessor = (IScopeAccessor) provider;
|
||||
|
||||
using (provider.CreateScope())
|
||||
using (ScopeProvider.CreateScope())
|
||||
{
|
||||
var containerRepository = CreateContainerRepository(accessor);
|
||||
var repository = CreateRepository();
|
||||
var container = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah" };
|
||||
containerRepository.Save(container);
|
||||
DataTypeContainerRepository.Save(container);
|
||||
|
||||
IDataType dataType = new DataType(new RadioButtonsPropertyEditor(LoggerFactory, IOHelper, DataTypeService, LocalizationService, LocalizedTextService, ShortStringHelper), container.Id) { Name = "test" };
|
||||
repository.Save(dataType);
|
||||
DataTypeRepository.Save(dataType);
|
||||
|
||||
// Act
|
||||
containerRepository.Delete(container);
|
||||
DataTypeContainerRepository.Delete(container);
|
||||
|
||||
var found = containerRepository.Get(container.Id);
|
||||
var found = DataTypeContainerRepository.Get(container.Id);
|
||||
Assert.IsNull(found);
|
||||
|
||||
dataType = repository.Get(dataType.Id);
|
||||
dataType = DataTypeRepository.Get(dataType.Id);
|
||||
Assert.IsNotNull(dataType);
|
||||
Assert.AreEqual(-1, dataType.ParentId);
|
||||
}
|
||||
@@ -224,20 +191,17 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Create()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
|
||||
using (provider.CreateScope())
|
||||
using (ScopeProvider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository();
|
||||
IDataType dataType = new DataType(new RadioButtonsPropertyEditor(LoggerFactory, IOHelper, DataTypeService, LocalizationService, LocalizedTextService, ShortStringHelper)) {Name = "test"};
|
||||
|
||||
repository.Save(dataType);
|
||||
DataTypeRepository.Save(dataType);
|
||||
|
||||
var id = dataType.Id;
|
||||
Assert.That(id, Is.GreaterThan(0));
|
||||
|
||||
// Act
|
||||
dataType = repository.Get(id);
|
||||
dataType = DataTypeRepository.Get(id);
|
||||
|
||||
// Assert
|
||||
Assert.That(dataType, Is.Not.Null);
|
||||
@@ -249,13 +213,10 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Perform_Get_On_DataTypeDefinitionRepository()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
|
||||
using (provider.CreateScope())
|
||||
using (ScopeProvider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository();
|
||||
// Act
|
||||
var dataTypeDefinition = repository.Get(Constants.DataTypes.DropDownSingle);
|
||||
var dataTypeDefinition = DataTypeRepository.Get(Constants.DataTypes.DropDownSingle);
|
||||
|
||||
// Assert
|
||||
Assert.That(dataTypeDefinition, Is.Not.Null);
|
||||
@@ -267,14 +228,10 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Perform_GetAll_On_DataTypeDefinitionRepository()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
|
||||
using (provider.CreateScope())
|
||||
using (ScopeProvider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository();
|
||||
|
||||
// Act
|
||||
var dataTypeDefinitions = repository.GetMany().ToArray();
|
||||
var dataTypeDefinitions = DataTypeRepository.GetMany().ToArray();
|
||||
|
||||
// Assert
|
||||
Assert.That(dataTypeDefinitions, Is.Not.Null);
|
||||
@@ -287,14 +244,10 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Perform_GetAll_With_Params_On_DataTypeDefinitionRepository()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
|
||||
using (provider.CreateScope())
|
||||
using (ScopeProvider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository();
|
||||
|
||||
// Act
|
||||
var dataTypeDefinitions = repository.GetMany(-40, -41, -42).ToArray();
|
||||
var dataTypeDefinitions = DataTypeRepository.GetMany(-40, -41, -42).ToArray();
|
||||
|
||||
// Assert
|
||||
Assert.That(dataTypeDefinitions, Is.Not.Null);
|
||||
@@ -307,15 +260,12 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Perform_GetByQuery_On_DataTypeDefinitionRepository()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
|
||||
using (var scope = provider.CreateScope())
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository();
|
||||
|
||||
// Act
|
||||
var query = scope.SqlContext.Query<IDataType>().Where(x => x.EditorAlias == Constants.PropertyEditors.Aliases.RadioButtonList);
|
||||
var result = repository.Get(query).ToArray();
|
||||
var result = DataTypeRepository.Get(query).ToArray();
|
||||
|
||||
// Assert
|
||||
Assert.That(result, Is.Not.Null);
|
||||
@@ -327,15 +277,11 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Perform_Count_On_DataTypeDefinitionRepository()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
|
||||
using (var scope = provider.CreateScope())
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository();
|
||||
|
||||
// Act
|
||||
var query = scope.SqlContext.Query<IDataType>().Where(x => x.Name.StartsWith("D"));
|
||||
int count = repository.Count(query);
|
||||
int count = DataTypeRepository.Count(query);
|
||||
|
||||
// Assert
|
||||
Assert.That(count, Is.EqualTo(4));
|
||||
@@ -345,11 +291,8 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Perform_Add_On_DataTypeDefinitionRepository()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
|
||||
using (provider.CreateScope())
|
||||
using (ScopeProvider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository();
|
||||
var dataTypeDefinition = new DataType(new LabelPropertyEditor(LoggerFactory, IOHelper, DataTypeService, LocalizedTextService, LocalizationService, ShortStringHelper))
|
||||
{
|
||||
DatabaseType = ValueStorageType.Integer,
|
||||
@@ -359,10 +302,10 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
};
|
||||
|
||||
// Act
|
||||
repository.Save(dataTypeDefinition);
|
||||
DataTypeRepository.Save(dataTypeDefinition);
|
||||
|
||||
var exists = repository.Exists(dataTypeDefinition.Id);
|
||||
var fetched = repository.Get(dataTypeDefinition.Id);
|
||||
var exists = DataTypeRepository.Exists(dataTypeDefinition.Id);
|
||||
var fetched = DataTypeRepository.Get(dataTypeDefinition.Id);
|
||||
|
||||
// Assert
|
||||
Assert.That(dataTypeDefinition.HasIdentity, Is.True);
|
||||
@@ -383,26 +326,23 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Perform_Update_On_DataTypeDefinitionRepository()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
|
||||
using (provider.CreateScope())
|
||||
using (ScopeProvider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository();
|
||||
var dataTypeDefinition = new DataType(new IntegerPropertyEditor(LoggerFactory, DataTypeService, LocalizationService, ShortStringHelper, LocalizedTextService))
|
||||
{
|
||||
DatabaseType = ValueStorageType.Integer,
|
||||
Name = "AgeDataType",
|
||||
CreatorId = 0
|
||||
};
|
||||
repository.Save(dataTypeDefinition);
|
||||
DataTypeRepository.Save(dataTypeDefinition);
|
||||
|
||||
// Act
|
||||
var definition = repository.Get(dataTypeDefinition.Id);
|
||||
var definition = DataTypeRepository.Get(dataTypeDefinition.Id);
|
||||
definition.Name = "AgeDataType Updated";
|
||||
definition.Editor = new LabelPropertyEditor(LoggerFactory, IOHelper, DataTypeService, LocalizedTextService, LocalizationService, ShortStringHelper); //change
|
||||
repository.Save(definition);
|
||||
DataTypeRepository.Save(definition);
|
||||
|
||||
var definitionUpdated = repository.Get(dataTypeDefinition.Id);
|
||||
var definitionUpdated = DataTypeRepository.Get(dataTypeDefinition.Id);
|
||||
|
||||
// Assert
|
||||
Assert.That(definitionUpdated, Is.Not.Null);
|
||||
@@ -414,11 +354,8 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Perform_Delete_On_DataTypeDefinitionRepository()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
|
||||
using (provider.CreateScope())
|
||||
using (ScopeProvider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository();
|
||||
var dataTypeDefinition = new DataType(new LabelPropertyEditor(LoggerFactory, IOHelper, DataTypeService,LocalizedTextService, LocalizationService, ShortStringHelper))
|
||||
{
|
||||
DatabaseType = ValueStorageType.Integer,
|
||||
@@ -427,13 +364,13 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
};
|
||||
|
||||
// Act
|
||||
repository.Save(dataTypeDefinition);
|
||||
DataTypeRepository.Save(dataTypeDefinition);
|
||||
|
||||
var existsBefore = repository.Exists(dataTypeDefinition.Id);
|
||||
var existsBefore = DataTypeRepository.Exists(dataTypeDefinition.Id);
|
||||
|
||||
repository.Delete(dataTypeDefinition);
|
||||
DataTypeRepository.Delete(dataTypeDefinition);
|
||||
|
||||
var existsAfter = repository.Exists(dataTypeDefinition.Id);
|
||||
var existsAfter = DataTypeRepository.Exists(dataTypeDefinition.Id);
|
||||
|
||||
// Assert
|
||||
Assert.That(existsBefore, Is.True);
|
||||
@@ -444,15 +381,11 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void Can_Perform_Exists_On_DataTypeDefinitionRepository()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
|
||||
using (provider.CreateScope())
|
||||
using (ScopeProvider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository();
|
||||
|
||||
// Act
|
||||
var exists = repository.Exists(1046); //Content picker
|
||||
var doesntExist = repository.Exists(-80);
|
||||
var exists = DataTypeRepository.Exists(1046); //Content picker
|
||||
var doesntExist = DataTypeRepository.Exists(-80);
|
||||
|
||||
// Assert
|
||||
Assert.That(exists, Is.True);
|
||||
@@ -2,17 +2,11 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Cache;
|
||||
using Umbraco.Core.Configuration.UmbracoSettings;
|
||||
using Umbraco.Core.IO;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Persistence;
|
||||
using Umbraco.Tests.TestHelpers;
|
||||
using Umbraco.Tests.TestHelpers.Entities;
|
||||
using Umbraco.Core.Persistence.DatabaseModelDefinitions;
|
||||
using Umbraco.Core.Persistence.Dtos;
|
||||
using Umbraco.Core.Persistence.Repositories.Implement;
|
||||
using Umbraco.Core.Persistence.SqlSyntax;
|
||||
@@ -21,19 +15,34 @@ using Umbraco.Core.Scoping;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Tests.Testing;
|
||||
using Umbraco.Web.PropertyEditors;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Core.Configuration.Models;
|
||||
using Umbraco.Core.IO;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Integration.Testing;
|
||||
|
||||
namespace Umbraco.Tests.Persistence.Repositories
|
||||
{
|
||||
[TestFixture]
|
||||
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
|
||||
public class DocumentRepositoryTest : TestWithDatabaseBase
|
||||
public class DocumentRepositoryTest : UmbracoIntegrationTest
|
||||
{
|
||||
public override void SetUp()
|
||||
{
|
||||
base.SetUp();
|
||||
private ContentType _contentType;
|
||||
private Content _textpage;
|
||||
private Content _subpage;
|
||||
private Content _subpage2;
|
||||
private Content _trashed;
|
||||
|
||||
private IContentService ContentService => GetRequiredService<IContentService>();
|
||||
private IContentTypeService ContentTypeService => GetRequiredService<IContentTypeService>();
|
||||
private IFileService FileService => GetRequiredService<IFileService>();
|
||||
private IDataTypeService DataTypeService => GetRequiredService<IDataTypeService>();
|
||||
private ILocalizedTextService LocalizedTextService => GetRequiredService<ILocalizedTextService>();
|
||||
private ILocalizationService LocalizationService => GetRequiredService<ILocalizationService>();
|
||||
private IFileSystems FileSystems => GetRequiredService<IFileSystems>();
|
||||
|
||||
[SetUp]
|
||||
public void SetUpData()
|
||||
{
|
||||
CreateTestData();
|
||||
|
||||
ContentRepositoryBase.ThrowOnWarning = true;
|
||||
@@ -46,6 +55,36 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
base.TearDown();
|
||||
}
|
||||
|
||||
public void CreateTestData()
|
||||
{
|
||||
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
|
||||
//Create and Save ContentType "umbTextpage" -> (_contentType.Id)
|
||||
_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" -> (_textpage.Id)
|
||||
_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" -> (_subpage.Id)
|
||||
_subpage = ContentBuilder.CreateSimpleContent(_contentType, "Text Page 1", _textpage.Id);
|
||||
_subpage.Key = new Guid("FF11402B-7E53-4654-81A7-462AC2108059");
|
||||
ContentService.Save(_subpage, 0);
|
||||
|
||||
//Create and Save Content "Text Page 1" based on "umbTextpage" -> (_subpage2.Id)
|
||||
_subpage2 = ContentBuilder.CreateSimpleContent(_contentType, "Text Page 2", _textpage.Id);
|
||||
ContentService.Save(_subpage2, 0);
|
||||
|
||||
//Create and Save Content "Text Page Deleted" based on "umbTextpage" -> (_trashed.Id)
|
||||
_trashed = ContentBuilder.CreateSimpleContent(_contentType, "Text Page Deleted", -20);
|
||||
_trashed.Trashed = true;
|
||||
ContentService.Save(_trashed, 0);
|
||||
}
|
||||
|
||||
private DocumentRepository CreateRepository(IScopeAccessor scopeAccessor, out ContentTypeRepository contentTypeRepository, out DataTypeRepository dtdRepository, AppCaches appCaches = null)
|
||||
{
|
||||
appCaches = appCaches ?? AppCaches;
|
||||
@@ -69,7 +108,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
|
||||
appCaches = appCaches ?? AppCaches;
|
||||
|
||||
templateRepository = new TemplateRepository(scopeAccessor, appCaches, LoggerFactory.CreateLogger<TemplateRepository>(), TestObjects.GetFileSystemsMock(), IOHelper, ShortStringHelper);
|
||||
templateRepository = new TemplateRepository(scopeAccessor, appCaches, LoggerFactory.CreateLogger<TemplateRepository>(), FileSystems, IOHelper, ShortStringHelper);
|
||||
var tagRepository = new TagRepository(scopeAccessor, appCaches, LoggerFactory.CreateLogger<TagRepository>());
|
||||
var commonRepository = new ContentTypeCommonRepository(scopeAccessor, templateRepository, appCaches, ShortStringHelper);
|
||||
var languageRepository = new LanguageRepository(scopeAccessor, appCaches, LoggerFactory.CreateLogger<LanguageRepository>(), globalSettings);
|
||||
@@ -92,7 +131,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
new DictionaryAppCache(),
|
||||
new IsolatedCaches(t => new ObjectCacheAppCache()));
|
||||
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out var contentTypeRepository, appCaches: realCache);
|
||||
@@ -101,10 +140,12 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
|
||||
udb.EnableSqlCount = false;
|
||||
|
||||
var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage1", "Textpage");
|
||||
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
|
||||
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage1", "Textpage", defaultTemplateId: template.Id);
|
||||
|
||||
contentTypeRepository.Save(contentType);
|
||||
var content = MockedContent.CreateSimpleContent(contentType);
|
||||
var content = ContentBuilder.CreateSimpleContent(contentType);
|
||||
repository.Save(content);
|
||||
|
||||
udb.EnableSqlCount = true;
|
||||
@@ -133,18 +174,20 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void CreateVersions()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out var contentTypeRepository, out DataTypeRepository _);
|
||||
|
||||
var versions = new List<int>();
|
||||
var hasPropertiesContentType = MockedContentTypes.CreateSimpleContentType("umbTextpage1", "Textpage");
|
||||
ServiceContext.FileService.SaveTemplate(hasPropertiesContentType.DefaultTemplate); // else, FK violation on contentType!
|
||||
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
var hasPropertiesContentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage1", "Textpage", defaultTemplateId: template.Id);
|
||||
|
||||
|
||||
contentTypeRepository.Save(hasPropertiesContentType);
|
||||
|
||||
IContent content1 = MockedContent.CreateSimpleContent(hasPropertiesContentType);
|
||||
IContent content1 = ContentBuilder.CreateSimpleContent(hasPropertiesContentType);
|
||||
|
||||
// save = create the initial version
|
||||
repository.Save(content1);
|
||||
@@ -307,20 +350,23 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void PropertyDataAssignedCorrectly()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out var contentTypeRepository, out DataTypeRepository _);
|
||||
|
||||
var emptyContentType = MockedContentTypes.CreateBasicContentType();
|
||||
var hasPropertiesContentType = MockedContentTypes.CreateSimpleContentType("umbTextpage1", "Textpage");
|
||||
var emptyContentType = ContentTypeBuilder.CreateBasicContentType();
|
||||
var hasPropertiesContentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage1", "Textpage", defaultTemplateId: template.Id);
|
||||
contentTypeRepository.Save(emptyContentType);
|
||||
contentTypeRepository.Save(hasPropertiesContentType);
|
||||
|
||||
ServiceContext.FileService.SaveTemplate(hasPropertiesContentType.DefaultTemplate); // else, FK violation on contentType!
|
||||
var content1 = MockedContent.CreateSimpleContent(hasPropertiesContentType);
|
||||
var content2 = MockedContent.CreateBasicContent(emptyContentType);
|
||||
var content3 = MockedContent.CreateSimpleContent(hasPropertiesContentType);
|
||||
|
||||
var content1 = ContentBuilder.CreateSimpleContent(hasPropertiesContentType);
|
||||
var content2 = ContentBuilder.CreateBasicContent(emptyContentType);
|
||||
var content3 = ContentBuilder.CreateSimpleContent(hasPropertiesContentType);
|
||||
|
||||
|
||||
repository.Save(content1);
|
||||
@@ -347,74 +393,75 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This test ensures that when property values using special database fields are saved, the actual data in the
|
||||
/// object being stored is also transformed in the same way as the data being stored in the database is.
|
||||
/// Before you would see that ex: a decimal value being saved as 100 or "100", would be that exact value in the
|
||||
/// object, but the value saved to the database was actually 100.000000.
|
||||
/// When querying the database for the value again - the value would then differ from what is in the object.
|
||||
/// This caused inconsistencies between saving+publishing and simply saving and then publishing, due to the former
|
||||
/// sending the non-transformed data directly on to publishing.
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void PropertyValuesWithSpecialTypes()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out var contentTypeRepository, out DataTypeRepository dataTypeDefinitionRepository);
|
||||
|
||||
var editor = new DecimalPropertyEditor(LoggerFactory, DataTypeService, LocalizationService, LocalizedTextService, ShortStringHelper);
|
||||
var dtd = new DataType(editor) { Name = "test", DatabaseType = ValueStorageType.Decimal };
|
||||
dataTypeDefinitionRepository.Save(dtd);
|
||||
|
||||
const string decimalPropertyAlias = "decimalProperty";
|
||||
const string intPropertyAlias = "intProperty";
|
||||
const string dateTimePropertyAlias = "datetimeProperty";
|
||||
var dateValue = new DateTime(2016, 1, 6);
|
||||
|
||||
var propertyTypeCollection = new PropertyTypeCollection(true,
|
||||
new List<PropertyType>
|
||||
{
|
||||
MockedPropertyTypes.CreateDecimalProperty(decimalPropertyAlias, "Decimal property", dtd.Id),
|
||||
MockedPropertyTypes.CreateIntegerProperty(intPropertyAlias, "Integer property"),
|
||||
MockedPropertyTypes.CreateDateTimeProperty(dateTimePropertyAlias, "DateTime property")
|
||||
});
|
||||
var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage1", "Textpage", propertyTypeCollection);
|
||||
contentTypeRepository.Save(contentType);
|
||||
|
||||
// int and decimal values are passed in as strings as they would be from the backoffice UI
|
||||
var textpage = MockedContent.CreateSimpleContentWithSpecialDatabaseTypes(contentType, "test@umbraco.org", -1, "100", "150", dateValue);
|
||||
|
||||
repository.Save(textpage);
|
||||
scope.Complete();
|
||||
|
||||
Assert.That(contentType.HasIdentity, Is.True);
|
||||
Assert.That(textpage.HasIdentity, Is.True);
|
||||
|
||||
var persistedTextpage = repository.Get(textpage.Id);
|
||||
Assert.That(persistedTextpage.Name, Is.EqualTo(textpage.Name));
|
||||
Assert.AreEqual(100m, persistedTextpage.GetValue(decimalPropertyAlias));
|
||||
Assert.AreEqual(persistedTextpage.GetValue(decimalPropertyAlias), textpage.GetValue(decimalPropertyAlias));
|
||||
Assert.AreEqual(150, persistedTextpage.GetValue(intPropertyAlias));
|
||||
Assert.AreEqual(persistedTextpage.GetValue(intPropertyAlias), textpage.GetValue(intPropertyAlias));
|
||||
Assert.AreEqual(dateValue, persistedTextpage.GetValue(dateTimePropertyAlias));
|
||||
Assert.AreEqual(persistedTextpage.GetValue(dateTimePropertyAlias), textpage.GetValue(dateTimePropertyAlias));
|
||||
}
|
||||
}
|
||||
// /// <summary>
|
||||
// /// This test ensures that when property values using special database fields are saved, the actual data in the
|
||||
// /// object being stored is also transformed in the same way as the data being stored in the database is.
|
||||
// /// Before you would see that ex: a decimal value being saved as 100 or "100", would be that exact value in the
|
||||
// /// object, but the value saved to the database was actually 100.000000.
|
||||
// /// When querying the database for the value again - the value would then differ from what is in the object.
|
||||
// /// This caused inconsistencies between saving+publishing and simply saving and then publishing, due to the former
|
||||
// /// sending the non-transformed data directly on to publishing.
|
||||
// /// </summary>
|
||||
// [Test]
|
||||
// public void PropertyValuesWithSpecialTypes()
|
||||
// {
|
||||
// var provider = ScopeProvider;
|
||||
// using (var scope = provider.CreateScope())
|
||||
// {
|
||||
// var repository = CreateRepository((IScopeAccessor)provider, out var contentTypeRepository, out DataTypeRepository dataTypeDefinitionRepository);
|
||||
//
|
||||
// var editor = new DecimalPropertyEditor(LoggerFactory, DataTypeService, LocalizationService, LocalizedTextService, ShortStringHelper);
|
||||
// var dtd = new DataType(editor) { Name = "test", DatabaseType = ValueStorageType.Decimal };
|
||||
// dataTypeDefinitionRepository.Save(dtd);
|
||||
//
|
||||
// const string decimalPropertyAlias = "decimalProperty";
|
||||
// const string intPropertyAlias = "intProperty";
|
||||
// const string dateTimePropertyAlias = "datetimeProperty";
|
||||
// var dateValue = new DateTime(2016, 1, 6);
|
||||
//
|
||||
// var propertyTypeCollection = new PropertyTypeCollection(true,
|
||||
// new List<PropertyType>
|
||||
// {
|
||||
// MockedPropertyTypes.CreateDecimalProperty(decimalPropertyAlias, "Decimal property", dtd.Id),
|
||||
// MockedPropertyTypes.CreateIntegerProperty(intPropertyAlias, "Integer property"),
|
||||
// MockedPropertyTypes.CreateDateTimeProperty(dateTimePropertyAlias, "DateTime property")
|
||||
// });
|
||||
// var contentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage1", "Textpage", propertyTypeCollection);
|
||||
// contentTypeRepository.Save(contentType);
|
||||
//
|
||||
// // int and decimal values are passed in as strings as they would be from the backoffice UI
|
||||
// var textpage = ContentBuilder.CreateSimpleContentWithSpecialDatabaseTypes(contentType, "test@umbraco.org", -1, "100", "150", dateValue);
|
||||
//
|
||||
// repository.Save(textpage);
|
||||
// scope.Complete();
|
||||
//
|
||||
// Assert.That(contentType.HasIdentity, Is.True);
|
||||
// Assert.That(textpage.HasIdentity, Is.True);
|
||||
//
|
||||
// var persistedTextpage = repository.Get(textpage.Id);
|
||||
// Assert.That(persistedTextpage.Name, Is.EqualTo(textpage.Name));
|
||||
// Assert.AreEqual(100m, persistedTextpage.GetValue(decimalPropertyAlias));
|
||||
// Assert.AreEqual(persistedTextpage.GetValue(decimalPropertyAlias), textpage.GetValue(decimalPropertyAlias));
|
||||
// Assert.AreEqual(150, persistedTextpage.GetValue(intPropertyAlias));
|
||||
// Assert.AreEqual(persistedTextpage.GetValue(intPropertyAlias), textpage.GetValue(intPropertyAlias));
|
||||
// Assert.AreEqual(dateValue, persistedTextpage.GetValue(dateTimePropertyAlias));
|
||||
// Assert.AreEqual(persistedTextpage.GetValue(dateTimePropertyAlias), textpage.GetValue(dateTimePropertyAlias));
|
||||
// }
|
||||
// }
|
||||
|
||||
[Test]
|
||||
public void SaveContent()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out var contentTypeRepository);
|
||||
var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage2", "Textpage");
|
||||
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage2", "Textpage", defaultTemplateId: template.Id);
|
||||
contentTypeRepository.Save(contentType);
|
||||
|
||||
IContent textpage = MockedContent.CreateSimpleContent(contentType);
|
||||
IContent textpage = ContentBuilder.CreateSimpleContent(contentType);
|
||||
|
||||
repository.Save(textpage);
|
||||
scope.Complete();
|
||||
@@ -427,7 +474,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void SaveContentWithDefaultTemplate()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out var contentTypeRepository, out TemplateRepository templateRepository);
|
||||
@@ -436,12 +483,12 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
templateRepository.Save(template);
|
||||
|
||||
|
||||
var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage2", "Textpage");
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage2", "Textpage");
|
||||
contentType.AllowedTemplates = Enumerable.Empty<ITemplate>(); // because CreateSimpleContentType assigns one already
|
||||
contentType.SetDefaultTemplate(template);
|
||||
contentTypeRepository.Save(contentType);
|
||||
|
||||
var textpage = MockedContent.CreateSimpleContent(contentType);
|
||||
var textpage = ContentBuilder.CreateSimpleContent(contentType);
|
||||
repository.Save(textpage);
|
||||
|
||||
|
||||
@@ -462,17 +509,18 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
public void SaveContentWithAtSignInName()
|
||||
{
|
||||
// Arrange
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out var contentTypeRepository);
|
||||
var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage1", "Textpage");
|
||||
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage1", "Textpage", defaultTemplateId: template.Id);
|
||||
contentTypeRepository.Save(contentType);
|
||||
|
||||
|
||||
var textpage = MockedContent.CreateSimpleContent(contentType, "test@umbraco.org");
|
||||
var anotherTextpage = MockedContent.CreateSimpleContent(contentType, "@lightgiants");
|
||||
var textpage = ContentBuilder.CreateSimpleContent(contentType, "test@umbraco.org");
|
||||
var anotherTextpage = ContentBuilder.CreateSimpleContent(contentType, "@lightgiants");
|
||||
|
||||
repository.Save(textpage);
|
||||
repository.Save(anotherTextpage);
|
||||
@@ -495,20 +543,21 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void SaveContentMultiple()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out var contentTypeRepository);
|
||||
var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage1", "Textpage");
|
||||
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
|
||||
var contentType = ContentTypeBuilder.CreateSimpleContentType("umbTextpage1", "Textpage", defaultTemplateId: template.Id);
|
||||
contentTypeRepository.Save(contentType);
|
||||
|
||||
var textpage = MockedContent.CreateSimpleContent(contentType);
|
||||
var textpage = ContentBuilder.CreateSimpleContent(contentType);
|
||||
|
||||
repository.Save(textpage);
|
||||
|
||||
|
||||
var subpage = MockedContent.CreateSimpleContent(contentType, "Text Page 1", textpage.Id);
|
||||
var subpage = ContentBuilder.CreateSimpleContent(contentType, "Text Page 1", textpage.Id);
|
||||
repository.Save(subpage);
|
||||
|
||||
|
||||
@@ -524,12 +573,12 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void GetContentIsNotDirty()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
|
||||
var content = repository.Get(NodeDto.NodeIdSeed + 3);
|
||||
var content = repository.Get(_subpage2.Id);
|
||||
var dirty = ((Content)content).IsDirty();
|
||||
|
||||
Assert.That(dirty, Is.False);
|
||||
@@ -539,16 +588,16 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void UpdateContent()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
|
||||
var content = repository.Get(NodeDto.NodeIdSeed + 2);
|
||||
var content = repository.Get(_subpage.Id);
|
||||
content.Name = "About 2";
|
||||
repository.Save(content);
|
||||
|
||||
var updatedContent = repository.Get(NodeDto.NodeIdSeed + 2);
|
||||
var updatedContent = repository.Get(_subpage.Id);
|
||||
|
||||
Assert.AreEqual(content.Id, updatedContent.Id);
|
||||
Assert.AreEqual(content.Name, updatedContent.Name);
|
||||
@@ -558,7 +607,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
content.SetValue("title", "toot");
|
||||
repository.Save(content);
|
||||
|
||||
updatedContent = repository.Get(NodeDto.NodeIdSeed + 2);
|
||||
updatedContent = repository.Get(_subpage.Id);
|
||||
|
||||
Assert.AreEqual("toot", updatedContent.GetValue("title"));
|
||||
Assert.AreEqual(content.VersionId, updatedContent.VersionId);
|
||||
@@ -568,16 +617,16 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void UpdateContentWithNullTemplate()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
|
||||
var content = repository.Get(NodeDto.NodeIdSeed + 2);
|
||||
var content = repository.Get(_subpage.Id);
|
||||
content.TemplateId = null;
|
||||
repository.Save(content);
|
||||
|
||||
var updatedContent = repository.Get(NodeDto.NodeIdSeed + 2);
|
||||
var updatedContent = repository.Get(_subpage.Id);
|
||||
|
||||
Assert.False(updatedContent.TemplateId.HasValue);
|
||||
}
|
||||
@@ -587,12 +636,12 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void DeleteContent()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out var contentTypeRepository);
|
||||
var contentType = contentTypeRepository.Get(NodeDto.NodeIdSeed + 1);
|
||||
var content = new Content("Textpage 2 Child Node", NodeDto.NodeIdSeed + 4, contentType);
|
||||
var contentType = contentTypeRepository.Get(_contentType.Id);
|
||||
var content = new Content("Textpage 2 Child Node", _trashed.Id, contentType);
|
||||
content.CreatorId = 0;
|
||||
content.WriterId = 0;
|
||||
|
||||
@@ -611,19 +660,19 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void GetContent()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
var content = repository.Get(NodeDto.NodeIdSeed + 4);
|
||||
var content = repository.Get(_subpage2.Id);
|
||||
|
||||
Assert.AreEqual(NodeDto.NodeIdSeed + 4, content.Id);
|
||||
Assert.AreEqual(_subpage2.Id, content.Id);
|
||||
Assert.That(content.CreateDate, Is.GreaterThan(DateTime.MinValue));
|
||||
Assert.That(content.UpdateDate, Is.GreaterThan(DateTime.MinValue));
|
||||
Assert.AreNotEqual(0, content.ParentId);
|
||||
Assert.AreEqual("Text Page 2", content.Name);
|
||||
Assert.AreNotEqual(0, content.VersionId);
|
||||
Assert.AreEqual(NodeDto.NodeIdSeed + 1, content.ContentTypeId);
|
||||
Assert.AreEqual(_contentType.Id, content.ContentTypeId);
|
||||
Assert.That(content.Path, Is.Not.Empty);
|
||||
Assert.That(content.Properties.Any(), Is.True);
|
||||
}
|
||||
@@ -632,7 +681,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void QueryContent()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
@@ -649,7 +698,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
{
|
||||
IContent[] result;
|
||||
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
@@ -703,16 +752,18 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
{
|
||||
// one invariant content type named "umbInvariantTextPage"
|
||||
//
|
||||
var invariantCt = MockedContentTypes.CreateSimpleContentType("umbInvariantTextpage", "Invariant Textpage");
|
||||
var template = TemplateBuilder.CreateTextPageTemplate();
|
||||
FileService.SaveTemplate(template);
|
||||
var invariantCt = ContentTypeBuilder.CreateSimpleContentType("umbInvariantTextpage", "Invariant Textpage", defaultTemplateId: template.Id);
|
||||
invariantCt.Variations = ContentVariation.Nothing;
|
||||
foreach (var p in invariantCt.PropertyTypes) p.Variations = ContentVariation.Nothing;
|
||||
ServiceContext.FileService.SaveTemplate(invariantCt.DefaultTemplate); // else, FK violation on contentType!
|
||||
ServiceContext.ContentTypeService.Save(invariantCt);
|
||||
ContentTypeService.Save(invariantCt);
|
||||
|
||||
// one variant (by culture) content type named "umbVariantTextPage"
|
||||
// with properties, every 2nd one being variant (by culture), the other being invariant
|
||||
//
|
||||
var variantCt = MockedContentTypes.CreateSimpleContentType("umbVariantTextpage", "Variant Textpage");
|
||||
|
||||
var variantCt = ContentTypeBuilder.CreateSimpleContentType("umbVariantTextpage", "Variant Textpage", defaultTemplateId: template.Id);
|
||||
variantCt.Variations = ContentVariation.Culture;
|
||||
var propTypes = variantCt.PropertyTypes.ToList();
|
||||
for (var i = 0; i < propTypes.Count; i++)
|
||||
@@ -720,16 +771,16 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
var p = propTypes[i];
|
||||
p.Variations = i % 2 == 0 ? ContentVariation.Culture : ContentVariation.Nothing;
|
||||
}
|
||||
ServiceContext.FileService.SaveTemplate(variantCt.DefaultTemplate); // else, FK violation on contentType!
|
||||
ServiceContext.ContentTypeService.Save(variantCt);
|
||||
|
||||
ContentTypeService.Save(variantCt);
|
||||
|
||||
invariantCt.AllowedContentTypes = new[] { new ContentTypeSort(invariantCt.Id, 0), new ContentTypeSort(variantCt.Id, 1) };
|
||||
ServiceContext.ContentTypeService.Save(invariantCt);
|
||||
ContentTypeService.Save(invariantCt);
|
||||
|
||||
//create content
|
||||
|
||||
var root = MockedContent.CreateSimpleContent(invariantCt);
|
||||
ServiceContext.ContentService.Save(root);
|
||||
var root = ContentBuilder.CreateSimpleContent(invariantCt);
|
||||
ContentService.Save(root);
|
||||
|
||||
var children = new List<IContent>();
|
||||
|
||||
@@ -739,7 +790,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
var name = (isInvariant ? "INV" : "VAR") + "_" + Guid.NewGuid();
|
||||
var culture = isInvariant ? null : "en-US";
|
||||
|
||||
var child = MockedContent.CreateSimpleContent(
|
||||
var child = ContentBuilder.CreateSimpleContent(
|
||||
isInvariant ? invariantCt : variantCt,
|
||||
name, root,
|
||||
culture,
|
||||
@@ -753,7 +804,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
child.SetValue("author", "John Doe", culture: culture);
|
||||
}
|
||||
|
||||
ServiceContext.ContentService.Save(child);
|
||||
ContentService.Save(child);
|
||||
children.Add(child);
|
||||
}
|
||||
|
||||
@@ -762,7 +813,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
Assert.IsTrue(child1.Name.StartsWith("VAR"));
|
||||
Assert.IsTrue(child1.GetCultureName("en-US").StartsWith("VAR"));
|
||||
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
@@ -809,7 +860,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void GetPagedResultsByQuery_CustomPropertySort()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
@@ -841,7 +892,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void GetPagedResultsByQuery_FirstPage()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
@@ -870,7 +921,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void GetPagedResultsByQuery_SecondPage()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
@@ -887,7 +938,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void GetPagedResultsByQuery_SinglePage()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
@@ -904,7 +955,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void GetPagedResultsByQuery_DescendingOrder()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
@@ -921,7 +972,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void GetPagedResultsByQuery_FilterMatchingSome()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
@@ -940,7 +991,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void GetPagedResultsByQuery_FilterMatchingAll()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
@@ -959,12 +1010,12 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void GetAllContentByIds()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
|
||||
var contents = repository.GetMany(NodeDto.NodeIdSeed + 2, NodeDto.NodeIdSeed + 3);
|
||||
var contents = repository.GetMany(_subpage.Id, _subpage2.Id);
|
||||
|
||||
|
||||
Assert.That(contents, Is.Not.Null);
|
||||
@@ -976,7 +1027,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void GetAllContent()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
@@ -1002,12 +1053,12 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void ExistContent()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
|
||||
var exists = repository.Exists(NodeDto.NodeIdSeed + 2);
|
||||
var exists = repository.Exists(_subpage.Id);
|
||||
|
||||
Assert.That(exists, Is.True);
|
||||
}
|
||||
@@ -1016,7 +1067,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void CountContent()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
@@ -1031,7 +1082,7 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
[Test]
|
||||
public void QueryContentByUniqueId()
|
||||
{
|
||||
var provider = TestObjects.GetScopeProvider(LoggerFactory);
|
||||
var provider = ScopeProvider;
|
||||
using (var scope = provider.CreateScope())
|
||||
{
|
||||
var repository = CreateRepository((IScopeAccessor)provider, out _);
|
||||
@@ -1040,36 +1091,10 @@ namespace Umbraco.Tests.Persistence.Repositories
|
||||
var content = repository.Get(query).SingleOrDefault();
|
||||
|
||||
Assert.IsNotNull(content);
|
||||
Assert.AreEqual(NodeDto.NodeIdSeed + 2, content.Id);
|
||||
Assert.AreEqual(_textpage.Id, content.Id);
|
||||
}
|
||||
}
|
||||
|
||||
public void CreateTestData()
|
||||
{
|
||||
//Create and Save ContentType "umbTextpage" -> (NodeDto.NodeIdSeed)
|
||||
ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage");
|
||||
contentType.Key = new Guid("1D3A8E6E-2EA9-4CC1-B229-1AEE19821522");
|
||||
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
|
||||
ServiceContext.ContentTypeService.Save(contentType);
|
||||
|
||||
//Create and Save Content "Homepage" based on "umbTextpage" -> (NodeDto.NodeIdSeed + 1)
|
||||
Content textpage = MockedContent.CreateSimpleContent(contentType);
|
||||
textpage.Key = new Guid("B58B3AD4-62C2-4E27-B1BE-837BD7C533E0");
|
||||
ServiceContext.ContentService.Save(textpage, 0);
|
||||
|
||||
//Create and Save Content "Text Page 1" based on "umbTextpage" -> (NodeDto.NodeIdSeed + 2)
|
||||
Content subpage = MockedContent.CreateSimpleContent(contentType, "Text Page 1", textpage.Id);
|
||||
subpage.Key = new Guid("FF11402B-7E53-4654-81A7-462AC2108059");
|
||||
ServiceContext.ContentService.Save(subpage, 0);
|
||||
|
||||
//Create and Save Content "Text Page 1" based on "umbTextpage" -> (NodeDto.NodeIdSeed + 3)
|
||||
Content subpage2 = MockedContent.CreateSimpleContent(contentType, "Text Page 2", textpage.Id);
|
||||
ServiceContext.ContentService.Save(subpage2, 0);
|
||||
|
||||
//Create and Save Content "Text Page Deleted" based on "umbTextpage" -> (NodeDto.NodeIdSeed + 4)
|
||||
Content trashed = MockedContent.CreateSimpleContent(contentType, "Text Page Deleted", -20);
|
||||
trashed.Trashed = true;
|
||||
ServiceContext.ContentService.Save(trashed, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -184,23 +184,7 @@ namespace Umbraco.Tests.TestHelpers.Entities
|
||||
return contentType;
|
||||
}
|
||||
|
||||
public static ContentType CreateSimpleContentType2(string alias, string name, IContentType parent = null, bool randomizeAliases = false, string propertyGroupName = "Content")
|
||||
{
|
||||
var contentType = CreateSimpleContentType(alias, name, parent, randomizeAliases, propertyGroupName);
|
||||
|
||||
var propertyType = new PropertyType(ShortStringHelper, Constants.PropertyEditors.Aliases.TextBox, ValueStorageType.Ntext)
|
||||
{
|
||||
Alias = RandomAlias("gen", randomizeAliases),
|
||||
Name = "Gen",
|
||||
Description = "",
|
||||
Mandatory = false,
|
||||
SortOrder = 1,
|
||||
DataTypeId = -88
|
||||
};
|
||||
contentType.AddPropertyType(propertyType);
|
||||
|
||||
return contentType;
|
||||
}
|
||||
|
||||
public static ContentType CreateSimpleContentType(string alias, string name, IContentType parent = null, bool randomizeAliases = false, string propertyGroupName = "Content")
|
||||
{
|
||||
|
||||
@@ -143,7 +143,6 @@
|
||||
<Compile Include="Models\ImageProcessorImageUrlGeneratorTest.cs" />
|
||||
<Compile Include="Models\VariationTests.cs" />
|
||||
<Compile Include="Persistence\Mappers\MapperTestBase.cs" />
|
||||
<Compile Include="Persistence\Repositories\DocumentRepositoryTest.cs" />
|
||||
<Compile Include="PublishedContent\SolidPublishedSnapshot.cs" />
|
||||
<Compile Include="Published\ConvertersTests.cs" />
|
||||
<Compile Include="Published\ModelTypeTests.cs" />
|
||||
@@ -311,8 +310,6 @@
|
||||
<Compile Include="Persistence\Mappers\RelationTypeMapperTest.cs" />
|
||||
<Compile Include="Persistence\NPocoTests\NPocoSqlTests.cs" />
|
||||
<Compile Include="Persistence\Querying\QueryBuilderTests.cs" />
|
||||
<Compile Include="Persistence\Repositories\ContentTypeRepositoryTest.cs" />
|
||||
<Compile Include="Persistence\Repositories\DataTypeDefinitionRepositoryTest.cs" />
|
||||
<Compile Include="Persistence\Repositories\MediaRepositoryTest.cs" />
|
||||
<Compile Include="Persistence\Repositories\MediaTypeRepositoryTest.cs" />
|
||||
<Compile Include="Persistence\Repositories\RelationRepositoryTest.cs" />
|
||||
|
||||
Reference in New Issue
Block a user