diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RelationTypeRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RelationTypeRepository.cs index bbaebbc9a9..8e40198bc5 100644 --- a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RelationTypeRepository.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RelationTypeRepository.cs @@ -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(sql); diff --git a/src/Umbraco.Tests/Services/RelationServiceTests.cs b/src/Umbraco.Tests.Integration/Services/RelationServiceTests.cs similarity index 71% rename from src/Umbraco.Tests/Services/RelationServiceTests.cs rename to src/Umbraco.Tests.Integration/Services/RelationServiceTests.cs index 06de405cec..0c5b3c8758 100644 --- a/src/Umbraco.Tests/Services/RelationServiceTests.cs +++ b/src/Umbraco.Tests.Integration/Services/RelationServiceTests.cs @@ -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(); + private IContentService ContentService => GetRequiredService(); + private IMediaTypeService MediaTypeService => GetRequiredService(); + private IMediaService MediaService => GetRequiredService(); + private IRelationService RelationService => GetRequiredService(); + [Test] public void Get_Paged_Relations_By_Relation_Type() { //Create content var createdContent = new List(); 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(); 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(); - ServiceContext.ContentTypeService.Save(ct); + ContentTypeService.Save(ct); void createContentWithMediaRefs() { @@ -83,29 +91,29 @@ namespace Umbraco.Tests.Services content.Properties["bodyText"].SetValue(@"

"); - 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 /// private IEnumerable 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(); diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index 87ab7e5fa1..1a0b32b3bd 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -264,7 +264,6 @@ -