Migrated RelationServiceTests.cs
Signed-off-by: Bjarke Berg <mail@bergmania.dk>
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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();
|
||||
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user