Migrated RelationServiceTests.cs

Signed-off-by: Bjarke Berg <mail@bergmania.dk>
This commit is contained in:
Bjarke Berg
2020-10-07 21:01:28 +02:00
parent e7edbfeaa3
commit 3171cdda70
3 changed files with 55 additions and 48 deletions

View File

@@ -50,9 +50,9 @@ namespace Umbraco.Core.Persistence.Repositories.Implement
{
var sql = GetBaseQuery(false);
// should not happen due to the cache policy
if (ids.Any())
throw new NotImplementedException();
// // should not happen due to the cache policy
// if (ids.Any())
// throw new NotImplementedException();
var dtos = Database.Fetch<RelationTypeDto>(sql);

View File

@@ -5,6 +5,9 @@ using System.Threading;
using NUnit.Framework;
using Umbraco.Core;
using Umbraco.Core.Models;
using Umbraco.Core.Services;
using Umbraco.Core.Services.Implement;
using Umbraco.Tests.Integration.Testing;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Tests.Testing;
@@ -14,51 +17,56 @@ namespace Umbraco.Tests.Services
[TestFixture]
[Apartment(ApartmentState.STA)]
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
public class RelationServiceTests : TestWithSomeContentBase
public class RelationServiceTests : UmbracoIntegrationTest
{
private IContentTypeService ContentTypeService => GetRequiredService<IContentTypeService>();
private IContentService ContentService => GetRequiredService<IContentService>();
private IMediaTypeService MediaTypeService => GetRequiredService<IMediaTypeService>();
private IMediaService MediaService => GetRequiredService<IMediaService>();
private IRelationService RelationService => GetRequiredService<IRelationService>();
[Test]
public void Get_Paged_Relations_By_Relation_Type()
{
//Create content
var createdContent = new List<IContent>();
var contentType = MockedContentTypes.CreateBasicContentType("blah");
ServiceContext.ContentTypeService.Save(contentType);
for (int i = 0; i < 10; i++)
ContentTypeService.Save(contentType);
for (int i = 0; i < 3; i++)
{
var c1 = MockedContent.CreateBasicContent(contentType);
ServiceContext.ContentService.Save(c1);
ContentService.Save(c1);
createdContent.Add(c1);
}
//Create media
var createdMedia = new List<IMedia>();
var imageType = MockedContentTypes.CreateImageMediaType("myImage");
ServiceContext.MediaTypeService.Save(imageType);
for (int i = 0; i < 10; i++)
MediaTypeService.Save(imageType);
for (int i = 0; i < 3; i++)
{
var c1 = MockedMedia.CreateMediaImage(imageType, -1);
ServiceContext.MediaService.Save(c1);
MediaService.Save(c1);
createdMedia.Add(c1);
}
var relType = ServiceContext.RelationService.GetRelationTypeByAlias(Constants.Conventions.RelationTypes.RelatedMediaAlias);
var relType = RelationService.GetRelationTypeByAlias(Constants.Conventions.RelationTypes.RelatedMediaAlias);
// Relate content to media
foreach (var content in createdContent)
foreach (var media in createdMedia)
ServiceContext.RelationService.Relate(content.Id, media.Id, relType);
RelationService.Relate(content.Id, media.Id, relType);
var paged = ServiceContext.RelationService.GetPagedByRelationTypeId(relType.Id, 0, 51, out var totalRecs).ToList();
var paged = RelationService.GetPagedByRelationTypeId(relType.Id, 0, 4, out var totalRecs).ToList();
Assert.AreEqual(100, totalRecs);
Assert.AreEqual(51, paged.Count);
Assert.AreEqual(9, totalRecs);
Assert.AreEqual(4, paged.Count);
//next page
paged.AddRange(ServiceContext.RelationService.GetPagedByRelationTypeId(relType.Id, 1, 51, out totalRecs));
paged.AddRange(RelationService.GetPagedByRelationTypeId(relType.Id, 1, 4, out totalRecs));
Assert.AreEqual(100, totalRecs);
Assert.AreEqual(100, paged.Count);
Assert.AreEqual(9, totalRecs);
Assert.AreEqual(8, paged.Count);
Assert.IsTrue(createdContent.Select(x => x.Id).ContainsAll(paged.Select(x => x.ParentId)));
Assert.IsTrue(createdMedia.Select(x => x.Id).ContainsAll(paged.Select(x => x.ChildId)));
@@ -68,13 +76,13 @@ namespace Umbraco.Tests.Services
public void Return_List_Of_Content_Items_Where_Media_Item_Referenced()
{
var mt = MockedContentTypes.CreateSimpleMediaType("testMediaType", "Test Media Type");
ServiceContext.MediaTypeService.Save(mt);
MediaTypeService.Save(mt);
var m1 = MockedMedia.CreateSimpleMedia(mt, "hello 1", -1);
ServiceContext.MediaService.Save(m1);
MediaService.Save(m1);
var ct = MockedContentTypes.CreateTextPageContentType("richTextTest");
ct.AllowedTemplates = Enumerable.Empty<ITemplate>();
ServiceContext.ContentTypeService.Save(ct);
ContentTypeService.Save(ct);
void createContentWithMediaRefs()
{
@@ -83,29 +91,29 @@ namespace Umbraco.Tests.Services
content.Properties["bodyText"].SetValue(@"<p>
<img src='/media/12312.jpg' data-udi='umb://media/" + m1.Key.ToString("N") + @"' />
</p>");
ServiceContext.ContentService.Save(content);
ContentService.Save(content);
}
for (var i = 0; i < 6; i++)
createContentWithMediaRefs(); //create 6 content items referencing the same media
var relations = ServiceContext.RelationService.GetByChildId(m1.Id, Constants.Conventions.RelationTypes.RelatedMediaAlias).ToList();
var relations = RelationService.GetByChildId(m1.Id, Constants.Conventions.RelationTypes.RelatedMediaAlias).ToList();
Assert.AreEqual(6, relations.Count);
var entities = ServiceContext.RelationService.GetParentEntitiesFromRelations(relations).ToList();
var entities = RelationService.GetParentEntitiesFromRelations(relations).ToList();
Assert.AreEqual(6, entities.Count);
}
[Test]
public void Can_Create_RelationType_Without_Name()
{
var rs = ServiceContext.RelationService;
var rs = RelationService;
IRelationType rt = new RelationType("Test", "repeatedEventOccurence", false, Constants.ObjectTypes.Document, Constants.ObjectTypes.Media);
Assert.DoesNotThrow(() => rs.Save(rt));
//re-get
rt = ServiceContext.RelationService.GetRelationTypeById(rt.Id);
rt = RelationService.GetRelationTypeById(rt.Id);
Assert.AreEqual("Test", rt.Name);
Assert.AreEqual("repeatedEventOccurence", rt.Alias);
@@ -117,13 +125,13 @@ namespace Umbraco.Tests.Services
[Test]
public void Create_Relation_Type_Without_Object_Types()
{
var rs = ServiceContext.RelationService;
var rs = RelationService;
IRelationType rt = new RelationType("repeatedEventOccurence", "repeatedEventOccurence", false, null, null);
Assert.DoesNotThrow(() => rs.Save(rt));
//re-get
rt = ServiceContext.RelationService.GetRelationTypeById(rt.Id);
rt = RelationService.GetRelationTypeById(rt.Id);
Assert.IsNull(rt.ChildObjectType);
Assert.IsNull(rt.ParentObjectType);
@@ -144,7 +152,7 @@ namespace Umbraco.Tests.Services
var r = CreateAndSaveRelation("Test", "test");
// re-get
r = ServiceContext.RelationService.GetById(r.Id);
r = RelationService.GetById(r.Id);
Assert.AreEqual(Constants.ObjectTypes.Document, r.ParentObjectType);
Assert.AreEqual(Constants.ObjectTypes.Media, r.ChildObjectType);
@@ -153,13 +161,13 @@ namespace Umbraco.Tests.Services
[Test]
public void Insert_Bulk_Relations()
{
var rs = ServiceContext.RelationService;
var rs = RelationService;
var newRelations = CreateRelations(10);
Assert.IsTrue(newRelations.All(x => !x.HasIdentity));
ServiceContext.RelationService.Save(newRelations);
RelationService.Save(newRelations);
Assert.IsTrue(newRelations.All(x => x.HasIdentity));
}
@@ -167,7 +175,7 @@ namespace Umbraco.Tests.Services
[Test]
public void Update_Bulk_Relations()
{
var rs = ServiceContext.RelationService;
var rs = RelationService;
var date = DateTime.Now.AddDays(-10);
var newRelations = CreateRelations(10);
@@ -175,10 +183,10 @@ namespace Umbraco.Tests.Services
{
r.CreateDate = date;
r.UpdateDate = date;
}
}
//insert
ServiceContext.RelationService.Save(newRelations);
RelationService.Save(newRelations);
Assert.IsTrue(newRelations.All(x => x.UpdateDate == date));
var newDate = DateTime.Now.AddDays(-5);
@@ -186,29 +194,29 @@ namespace Umbraco.Tests.Services
r.UpdateDate = newDate;
//update
ServiceContext.RelationService.Save(newRelations);
RelationService.Save(newRelations);
Assert.IsTrue(newRelations.All(x => x.UpdateDate == newDate));
}
private IRelation CreateAndSaveRelation(string name, string alias)
{
var rs = ServiceContext.RelationService;
var rs = RelationService;
var rt = new RelationType(name, alias, false, null, null);
rs.Save(rt);
var ct = MockedContentTypes.CreateBasicContentType();
ServiceContext.ContentTypeService.Save(ct);
ContentTypeService.Save(ct);
var mt = MockedContentTypes.CreateImageMediaType("img");
ServiceContext.MediaTypeService.Save(mt);
MediaTypeService.Save(mt);
var c1 = MockedContent.CreateBasicContent(ct);
var c2 = MockedMedia.CreateMediaImage(mt, -1);
ServiceContext.ContentService.Save(c1);
ServiceContext.MediaService.Save(c2);
ContentService.Save(c1);
MediaService.Save(c2);
var r = new Relation(c1.Id, c2.Id, rt);
ServiceContext.RelationService.Save(r);
RelationService.Save(r);
return r;
}
@@ -220,23 +228,23 @@ namespace Umbraco.Tests.Services
/// <returns></returns>
private IEnumerable<IRelation> CreateRelations(int count)
{
var rs = ServiceContext.RelationService;
var rs = RelationService;
var rtName = Guid.NewGuid().ToString();
var rt = new RelationType(rtName, rtName, false, null, null);
rs.Save(rt);
var ct = MockedContentTypes.CreateBasicContentType();
ServiceContext.ContentTypeService.Save(ct);
ContentTypeService.Save(ct);
var mt = MockedContentTypes.CreateImageMediaType("img");
ServiceContext.MediaTypeService.Save(mt);
MediaTypeService.Save(mt);
return Enumerable.Range(1, count).Select(index =>
{
var c1 = MockedContent.CreateBasicContent(ct);
var c2 = MockedMedia.CreateMediaImage(mt, -1);
ServiceContext.ContentService.Save(c1);
ServiceContext.MediaService.Save(c2);
ContentService.Save(c1);
MediaService.Save(c2);
return new Relation(c1.Id, c2.Id, rt);
}).ToList();

View File

@@ -264,7 +264,6 @@
<Compile Include="Services\MemberTypeServiceTests.cs" />
<Compile Include="Packaging\PackageInstallationTest.cs" />
<Compile Include="Services\PerformanceTests.cs" />
<Compile Include="Services\RelationServiceTests.cs" />
<Compile Include="Cache\PublishedCache\PublishedMediaCacheTests.cs" />
<Compile Include="Migrations\AlterMigrationTests.cs" />
<Compile Include="Migrations\SqlScripts\SqlResources.Designer.cs">