UnitOfWork RIP, build tests

This commit is contained in:
Stephan
2017-12-15 11:19:03 +01:00
parent 33b4af0340
commit e4b375f72d
43 changed files with 1793 additions and 1865 deletions
@@ -58,7 +58,7 @@ namespace Umbraco.Tests.Cache.PublishedCache
SettingsForTests.ConfigureSettings(settings);
_xml = new XmlDocument();
_xml.LoadXml(GetXml());
var xmlStore = new XmlStore(() => _xml);
var xmlStore = new XmlStore(() => _xml, null, null, null);
var cacheProvider = new StaticCacheProvider();
var domainCache = new DomainCache(ServiceContext.DomainService);
var publishedShapshot = new Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedShapshot(
@@ -56,7 +56,7 @@ namespace Umbraco.Tests.Cache.PublishedCache
var mChild2 = MakeNewMedia("Child2", mType, user, mRoot2.Id);
var ctx = GetUmbracoContext("/test");
var cache = new PublishedMediaCache(new XmlStore((XmlDocument) null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);
var cache = new PublishedMediaCache(new XmlStore((XmlDocument) null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);
var roots = cache.GetAtRoot();
Assert.AreEqual(2, roots.Count());
Assert.IsTrue(roots.Select(x => x.Id).ContainsAll(new[] {mRoot1.Id, mRoot2.Id}));
@@ -73,7 +73,7 @@ namespace Umbraco.Tests.Cache.PublishedCache
//var publishedMedia = PublishedMediaTests.GetNode(mRoot.Id, GetUmbracoContext("/test", 1234));
var umbracoContext = GetUmbracoContext("/test");
var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null), Current.Services.MediaService, Current.Services.UserService, new StaticCacheProvider(), ContentTypesCache);
var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), Current.Services.MediaService, Current.Services.UserService, new StaticCacheProvider(), ContentTypesCache);
var publishedMedia = cache.GetById(mRoot.Id);
Assert.IsNotNull(publishedMedia);
@@ -186,7 +186,7 @@ namespace Umbraco.Tests.Cache.PublishedCache
result.Fields.Add("creatorID", "0");
result.Fields.Add("creatorName", "Shannon");
var store = new PublishedMediaCache(new XmlStore((XmlDocument)null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);
var store = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);
var doc = store.CreateFromCacheValues(store.ConvertFromSearchResult(result));
DoAssert(doc, 1234, key, 0, 0, "/media/test.jpg", "Image", 0, "Shannon", "Shannon", 0, 0, "-1,1234", DateTime.Parse("2012-07-17T10:34:09"), DateTime.Parse("2012-07-16T10:34:09"), 2);
@@ -202,7 +202,7 @@ namespace Umbraco.Tests.Cache.PublishedCache
var xmlDoc = GetMediaXml();
((XmlElement)xmlDoc.DocumentElement.FirstChild).SetAttribute("key", key.ToString());
var navigator = xmlDoc.SelectSingleNode("/root/Image").CreateNavigator();
var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);
var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);
var doc = cache.CreateFromCacheValues(cache.ConvertFromXPathNavigator(navigator, true));
DoAssert(doc, 2000, key, 0, 2, "image1", "Image", 2044, "Shannon", "Shannon", 33, 33, "-1,2000", DateTime.Parse("2012-06-12T14:13:17"), DateTime.Parse("2012-07-20T18:50:43"), 1);
@@ -4,6 +4,7 @@ using Umbraco.Core.Models;
using Umbraco.Core.Models.Rdbms;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.Testing;
@@ -19,7 +20,7 @@ namespace Umbraco.Tests.Persistence.Repositories
var sp = TestObjects.GetScopeProvider(Logger);
using (var scope = sp.CreateScope())
{
var repo = new AuditRepository(sp, CacheHelper, Logger);
var repo = new AuditRepository((IScopeAccessor) sp, CacheHelper, Logger);
repo.Save(new AuditItem(-1, "This is a System audit trail", AuditType.System, 0));
var dtos = scope.Database.Fetch<LogDto>("WHERE id > -1");
@@ -1,9 +1,6 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Threading;
using System.Web;
using Moq;
using NUnit.Framework;
using Umbraco.Core;
@@ -13,8 +10,6 @@ using Umbraco.Core.IO;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Rdbms;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Core.Persistence.DatabaseModelDefinitions;
@@ -45,30 +40,30 @@ namespace Umbraco.Tests.Persistence.Repositories
base.TearDown();
}
private DocumentRepository CreateRepository(IScopeUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository, out DataTypeDefinitionRepository dtdRepository, CacheHelper cacheHelper = null)
private DocumentRepository CreateRepository(IScopeAccessor scopeAccessor, out ContentTypeRepository contentTypeRepository, out DataTypeDefinitionRepository dtdRepository, CacheHelper cacheHelper = null)
{
cacheHelper = cacheHelper ?? CacheHelper;
TemplateRepository tr;
var ctRepository = CreateRepository(unitOfWork, out contentTypeRepository, out tr);
dtdRepository = new DataTypeDefinitionRepository(unitOfWork, cacheHelper, Logger, contentTypeRepository);
var ctRepository = CreateRepository(scopeAccessor, out contentTypeRepository, out tr);
dtdRepository = new DataTypeDefinitionRepository(scopeAccessor, cacheHelper, Logger);
return ctRepository;
}
private DocumentRepository CreateRepository(IScopeUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository, CacheHelper cacheHelper = null)
private DocumentRepository CreateRepository(IScopeAccessor scopeAccessor, out ContentTypeRepository contentTypeRepository, CacheHelper cacheHelper = null)
{
TemplateRepository tr;
return CreateRepository(unitOfWork, out contentTypeRepository, out tr, cacheHelper);
return CreateRepository(scopeAccessor, out contentTypeRepository, out tr, cacheHelper);
}
private DocumentRepository CreateRepository(IScopeUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository, out TemplateRepository templateRepository, CacheHelper cacheHelper = null)
private DocumentRepository CreateRepository(IScopeAccessor scopeAccessor, out ContentTypeRepository contentTypeRepository, out TemplateRepository templateRepository, CacheHelper cacheHelper = null)
{
cacheHelper = cacheHelper ?? CacheHelper;
templateRepository = new TemplateRepository(unitOfWork, cacheHelper, Logger, Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>(), Mock.Of<ITemplatesSection>());
var tagRepository = new TagRepository(unitOfWork, cacheHelper, Logger);
contentTypeRepository = new ContentTypeRepository(unitOfWork, cacheHelper, Logger, templateRepository);
var repository = new DocumentRepository(unitOfWork, cacheHelper, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of<IContentSection>());
templateRepository = new TemplateRepository(scopeAccessor, cacheHelper, Logger, Mock.Of<ITemplatesSection>(), Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>());
var tagRepository = new TagRepository(scopeAccessor, cacheHelper, Logger);
contentTypeRepository = new ContentTypeRepository(scopeAccessor, cacheHelper, Logger, templateRepository);
var repository = new DocumentRepository(scopeAccessor, cacheHelper, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of<IContentSection>());
return repository;
}
@@ -81,12 +76,12 @@ namespace Umbraco.Tests.Persistence.Repositories
new StaticCacheProvider(),
new IsolatedRuntimeCache(t => new ObjectCacheRuntimeCacheProvider()));
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out var contentTypeRepository, cacheHelper: realCache);
var repository = CreateRepository((IScopeAccessor) provider, out var contentTypeRepository, cacheHelper: realCache);
var udb = (UmbracoDatabase) unitOfWork.Database;
var udb = (UmbracoDatabase) scope.Database;
udb.EnableSqlCount = false;
@@ -95,7 +90,6 @@ namespace Umbraco.Tests.Persistence.Repositories
contentTypeRepository.Save(contentType);
var content = MockedContent.CreateSimpleContent(contentType);
repository.Save(content);
unitOfWork.Complete();
udb.EnableSqlCount = true;
@@ -123,10 +117,10 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void CreateVersions()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out var contentTypeRepository, out DataTypeDefinitionRepository _);
var repository = CreateRepository((IScopeAccessor) provider, out var contentTypeRepository, out DataTypeDefinitionRepository _);
var versions = new List<int>();
var hasPropertiesContentType = MockedContentTypes.CreateSimpleContentType("umbTextpage1", "Textpage");
@@ -137,7 +131,7 @@ namespace Umbraco.Tests.Persistence.Repositories
// save = create the initial version
contentTypeRepository.Save(hasPropertiesContentType);
repository.Save(content1);
unitOfWork.Flush();
versions.Add(content1.VersionId); // the first version
// publish = new edit version
@@ -145,7 +139,7 @@ namespace Umbraco.Tests.Persistence.Repositories
((Content) content1).PublishValues();
((Content) content1).PublishedState = PublishedState.Publishing;
repository.Save(content1);
unitOfWork.Flush();
versions.Add(content1.VersionId); // NEW VERSION
// new edit version has been created
@@ -155,14 +149,14 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId);
// misc checks
Assert.AreEqual(true, unitOfWork.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
Assert.AreEqual(true, scope.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
// change something
// save = update the current (draft) version
content1.Name = "name-1";
content1.SetValue("title", "title-1");
repository.Save(content1);
unitOfWork.Flush();
versions.Add(content1.VersionId); // the same version
// no new version has been created
@@ -171,12 +165,12 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId);
// misc checks
Assert.AreEqual(true, unitOfWork.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
Assert.AreEqual(true, scope.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
// unpublish = no impact on versions
((Content) content1).PublishedState = PublishedState.Unpublishing;
repository.Save(content1);
unitOfWork.Flush();
versions.Add(content1.VersionId); // the same version
// no new version has been created
@@ -186,14 +180,14 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId);
// misc checks
Assert.AreEqual(false, unitOfWork.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
Assert.AreEqual(false, scope.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
// change something
// save = update the current (draft) version
content1.Name = "name-2";
content1.SetValue("title", "title-2");
repository.Save(content1);
unitOfWork.Flush();
versions.Add(content1.VersionId); // the same version
// no new version has been created
@@ -201,13 +195,13 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId);
// misc checks
Assert.AreEqual(false, unitOfWork.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
Assert.AreEqual(false, scope.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
// publish = version
((Content) content1).PublishValues();
((Content) content1).PublishedState = PublishedState.Publishing;
repository.Save(content1);
unitOfWork.Flush();
versions.Add(content1.VersionId); // NEW VERSION
// new version has been created
@@ -217,7 +211,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId);
// misc checks
Assert.AreEqual(true, unitOfWork.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
Assert.AreEqual(true, scope.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
// change something
// save = update the current (draft) version
@@ -227,7 +221,7 @@ namespace Umbraco.Tests.Persistence.Repositories
//Thread.Sleep(2000); // force date change
repository.Save(content1);
unitOfWork.Flush();
versions.Add(content1.VersionId); // the same version
// no new version has been created
@@ -235,7 +229,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId);
// misc checks
Assert.AreEqual(true, unitOfWork.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
Assert.AreEqual(true, scope.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
// publish = new version
content1.Name = "name-4";
@@ -243,7 +237,7 @@ namespace Umbraco.Tests.Persistence.Repositories
((Content) content1).PublishValues();
((Content) content1).PublishedState = PublishedState.Publishing;
repository.Save(content1);
unitOfWork.Flush();
versions.Add(content1.VersionId); // NEW VERSION
// a new version has been created
@@ -253,7 +247,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(versions[versions.Count - 1], repository.Get(content1.Id).VersionId);
// misc checks
Assert.AreEqual(true, unitOfWork.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
Assert.AreEqual(true, scope.Database.ExecuteScalar<bool>("SELECT published FROM uDocument WHERE nodeId=@id", new { id = content1.Id }));
// all versions
var allVersions = repository.GetAllVersions(content1.Id).ToArray();
@@ -296,10 +290,10 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void PropertyDataAssignedCorrectly()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out var contentTypeRepository, out DataTypeDefinitionRepository _);
var repository = CreateRepository((IScopeAccessor) provider, out var contentTypeRepository, out DataTypeDefinitionRepository _);
var emptyContentType = MockedContentTypes.CreateBasicContentType();
var hasPropertiesContentType = MockedContentTypes.CreateSimpleContentType("umbTextpage1", "Textpage");
@@ -313,7 +307,7 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.Save(content1);
repository.Save(content2);
repository.Save(content3);
unitOfWork.Flush();
// this will cause the GetPropertyCollection to execute and we need to ensure that
// all of the properties and property types are all correct
@@ -346,14 +340,13 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void PropertyValuesWithSpecialTypes()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out var contentTypeRepository, out DataTypeDefinitionRepository dataTypeDefinitionRepository);
var repository = CreateRepository((IScopeAccessor) provider, out var contentTypeRepository, out DataTypeDefinitionRepository dataTypeDefinitionRepository);
var dtd = new DataTypeDefinition(-1, Constants.PropertyEditors.DecimalAlias) { Name = "test", DatabaseType = DataTypeDatabaseType.Decimal };
dataTypeDefinitionRepository.Save(dtd);
unitOfWork.Complete();
const string decimalPropertyAlias = "decimalProperty";
const string intPropertyAlias = "intProperty";
@@ -369,13 +362,12 @@ namespace Umbraco.Tests.Persistence.Repositories
});
var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage1", "Textpage", propertyTypeCollection);
contentTypeRepository.Save(contentType);
unitOfWork.Complete();
// 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);
unitOfWork.Complete();
scope.Complete();
Assert.That(contentType.HasIdentity, Is.True);
Assert.That(textpage.HasIdentity, Is.True);
@@ -394,17 +386,17 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void SaveContent()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out var contentTypeRepository);
var repository = CreateRepository((IScopeAccessor) provider, out var contentTypeRepository);
var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage2", "Textpage");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
IContent textpage = MockedContent.CreateSimpleContent(contentType);
contentTypeRepository.Save(contentType);
repository.Save(textpage);
unitOfWork.Complete();
scope.Complete();
Assert.That(contentType.HasIdentity, Is.True);
Assert.That(textpage.HasIdentity, Is.True);
@@ -414,14 +406,14 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void SaveContentWithDefaultTemplate()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out var contentTypeRepository, out TemplateRepository templateRepository);
var repository = CreateRepository((IScopeAccessor) provider, out var contentTypeRepository, out TemplateRepository templateRepository);
var template = new Template("hello", "hello");
templateRepository.Save(template);
unitOfWork.Flush();
var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage2", "Textpage");
contentType.AllowedTemplates = Enumerable.Empty<ITemplate>(); // because CreateSimpleContentType assigns one already
@@ -430,14 +422,14 @@ namespace Umbraco.Tests.Persistence.Repositories
contentTypeRepository.Save(contentType);
repository.Save(textpage);
unitOfWork.Flush();
var fetched = repository.Get(textpage.Id);
Assert.NotNull(textpage.Template);
Assert.AreEqual(textpage.Template, contentType.DefaultTemplate);
unitOfWork.Complete();
scope.Complete();
TestHelper.AssertPropertyValuesAreEqual(textpage, fetched, "yyyy-MM-dd HH:mm:ss");
}
@@ -448,21 +440,21 @@ namespace Umbraco.Tests.Persistence.Repositories
public void SaveContentWithAtSignInName()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out var contentTypeRepository);
var repository = CreateRepository((IScopeAccessor) provider, out var contentTypeRepository);
var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage1", "Textpage");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var textpage = MockedContent.CreateSimpleContent(contentType, "test@umbraco.org");
var anotherTextpage = MockedContent.CreateSimpleContent(contentType, "@lightgiants");
repository.Save(textpage);
repository.Save(anotherTextpage);
unitOfWork.Flush();
Assert.That(contentType.HasIdentity, Is.True);
@@ -474,28 +466,28 @@ namespace Umbraco.Tests.Persistence.Repositories
var content2 = repository.Get(anotherTextpage.Id);
Assert.That(content2.Name, Is.EqualTo(anotherTextpage.Name));
unitOfWork.Complete();
scope.Complete();
}
}
[Test]
public void SaveContentMultiple()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out var contentTypeRepository);
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 textpage = MockedContent.CreateSimpleContent(contentType);
contentTypeRepository.Save(contentType);
repository.Save(textpage);
unitOfWork.Flush();
var subpage = MockedContent.CreateSimpleContent(contentType, "Text Page 1", textpage.Id);
repository.Save(subpage);
unitOfWork.Flush();
Assert.That(contentType.HasIdentity, Is.True);
Assert.That(textpage.HasIdentity, Is.True);
@@ -509,10 +501,10 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void GetContentIsNotDirty()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var content = repository.Get(NodeDto.NodeIdSeed + 3);
var dirty = ((Content) content).IsDirty();
@@ -524,15 +516,15 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void UpdateContent()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var content = repository.Get(NodeDto.NodeIdSeed + 2);
content.Name = "About 2";
repository.Save(content);
unitOfWork.Flush();
var updatedContent = repository.Get(NodeDto.NodeIdSeed + 2);
Assert.AreEqual(content.Id, updatedContent.Id);
@@ -542,7 +534,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(content.GetValue("title"), "Welcome to our Home page");
content.SetValue("title", "toot");
repository.Save(content);
unitOfWork.Flush();
updatedContent = repository.Get(NodeDto.NodeIdSeed + 2);
Assert.AreEqual("toot", updatedContent.GetValue("title"));
@@ -553,15 +545,15 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void UpdateContentWithNullTemplate()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var content = repository.Get(NodeDto.NodeIdSeed + 2);
content.Template = null;
repository.Save(content);
unitOfWork.Flush();
var updatedContent = repository.Get(NodeDto.NodeIdSeed + 2);
Assert.IsNull(updatedContent.Template);
@@ -572,21 +564,21 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void DeleteContent()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out var contentTypeRepository);
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);
content.CreatorId = 0;
content.WriterId = 0;
repository.Save(content);
unitOfWork.Flush();
var id = content.Id;
repository.Delete(content);
unitOfWork.Flush();
var content1 = repository.Get(id);
Assert.IsNull(content1);
@@ -596,10 +588,10 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void GetContent()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var content = repository.Get(NodeDto.NodeIdSeed + 4);
Assert.AreEqual(NodeDto.NodeIdSeed + 4, content.Id);
@@ -617,12 +609,12 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void QueryContent()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var query = unitOfWork.SqlContext.Query<IContent>().Where(x => x.Level == 2);
var query = scope.SqlContext.Query<IContent>().Where(x => x.Level == 2);
var result = repository.Get(query);
Assert.GreaterOrEqual(2, result.Count());
@@ -634,10 +626,10 @@ namespace Umbraco.Tests.Persistence.Repositories
{
IContent[] result;
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
result = repository.GetMany().ToArray();
// save them all
@@ -646,7 +638,7 @@ namespace Umbraco.Tests.Persistence.Repositories
content.SetValue("title", content.GetValue<string>("title") + "x");
repository.Save(content);
}
unitOfWork.Flush();
// publish them all
foreach (var content in result)
@@ -654,15 +646,15 @@ namespace Umbraco.Tests.Persistence.Repositories
content.PublishValues();
repository.Save(content);
}
unitOfWork.Flush();
unitOfWork.Complete();
scope.Complete();
}
// get them all again
using (var unitOfWork = provider.CreateUnitOfWork())
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var result2 = repository.GetMany().ToArray();
Assert.AreEqual(result.Length, result2.Length);
@@ -686,17 +678,17 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void GetPagedResultsByQuery_CustomPropertySort()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var query = unitOfWork.SqlContext.Query<IContent>().Where(x => x.Name.Contains("Text"));
var query = scope.SqlContext.Query<IContent>().Where(x => x.Name.Contains("Text"));
try
{
unitOfWork.Database.AsUmbracoDatabase().EnableSqlTrace = true;
unitOfWork.Database.AsUmbracoDatabase().EnableSqlCount = true;
scope.Database.AsUmbracoDatabase().EnableSqlTrace = true;
scope.Database.AsUmbracoDatabase().EnableSqlCount = true;
var result = repository.GetPage(query, 0, 2, out var totalRecords, "title", Direction.Ascending, false);
@@ -709,8 +701,8 @@ namespace Umbraco.Tests.Persistence.Repositories
}
finally
{
unitOfWork.Database.AsUmbracoDatabase().EnableSqlTrace = false;
unitOfWork.Database.AsUmbracoDatabase().EnableSqlCount = false;
scope.Database.AsUmbracoDatabase().EnableSqlTrace = false;
scope.Database.AsUmbracoDatabase().EnableSqlCount = false;
}
}
}
@@ -718,17 +710,17 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void GetPagedResultsByQuery_FirstPage()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var query = unitOfWork.SqlContext.Query<IContent>().Where(x => x.Level == 2);
var query = scope.SqlContext.Query<IContent>().Where(x => x.Level == 2);
try
{
unitOfWork.Database.AsUmbracoDatabase().EnableSqlTrace = true;
unitOfWork.Database.AsUmbracoDatabase().EnableSqlCount = true;
scope.Database.AsUmbracoDatabase().EnableSqlTrace = true;
scope.Database.AsUmbracoDatabase().EnableSqlCount = true;
var result = repository.GetPage(query, 0, 1, out var totalRecords, "Name", Direction.Ascending, true);
@@ -738,8 +730,8 @@ namespace Umbraco.Tests.Persistence.Repositories
}
finally
{
unitOfWork.Database.AsUmbracoDatabase().EnableSqlTrace = false;
unitOfWork.Database.AsUmbracoDatabase().EnableSqlCount = false;
scope.Database.AsUmbracoDatabase().EnableSqlTrace = false;
scope.Database.AsUmbracoDatabase().EnableSqlCount = false;
}
}
}
@@ -747,12 +739,12 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void GetPagedResultsByQuery_SecondPage()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var query = unitOfWork.SqlContext.Query<IContent>().Where(x => x.Level == 2);
var query = scope.SqlContext.Query<IContent>().Where(x => x.Level == 2);
var result = repository.GetPage(query, 1, 1, out var totalRecords, "Name", Direction.Ascending, true);
Assert.That(totalRecords, Is.GreaterThanOrEqualTo(2));
@@ -764,12 +756,12 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void GetPagedResultsByQuery_SinglePage()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var query = unitOfWork.SqlContext.Query<IContent>().Where(x => x.Level == 2);
var query = scope.SqlContext.Query<IContent>().Where(x => x.Level == 2);
var result = repository.GetPage(query, 0, 2, out var totalRecords, "Name", Direction.Ascending, true);
Assert.That(totalRecords, Is.GreaterThanOrEqualTo(2));
@@ -781,12 +773,12 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void GetPagedResultsByQuery_DescendingOrder()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var query = unitOfWork.SqlContext.Query<IContent>().Where(x => x.Level == 2);
var query = scope.SqlContext.Query<IContent>().Where(x => x.Level == 2);
var result = repository.GetPage(query, 0, 1, out var totalRecords, "Name", Direction.Descending, true);
Assert.That(totalRecords, Is.GreaterThanOrEqualTo(2));
@@ -798,14 +790,14 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void GetPagedResultsByQuery_FilterMatchingSome()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var query = unitOfWork.SqlContext.Query<IContent>().Where(x => x.Level == 2);
var query = scope.SqlContext.Query<IContent>().Where(x => x.Level == 2);
var filterQuery = unitOfWork.SqlContext.Query<IContent>().Where(x => x.Name.Contains("Page 2"));
var filterQuery = scope.SqlContext.Query<IContent>().Where(x => x.Name.Contains("Page 2"));
var result = repository.GetPage(query, 0, 1, out var totalRecords, "Name", Direction.Ascending, true, filterQuery);
Assert.That(totalRecords, Is.EqualTo(1));
@@ -817,14 +809,14 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void GetPagedResultsByQuery_FilterMatchingAll()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var query = unitOfWork.SqlContext.Query<IContent>().Where(x => x.Level == 2);
var query = scope.SqlContext.Query<IContent>().Where(x => x.Level == 2);
var filterQuery = unitOfWork.SqlContext.Query<IContent>().Where(x => x.Name.Contains("text"));
var filterQuery = scope.SqlContext.Query<IContent>().Where(x => x.Name.Contains("text"));
var result = repository.GetPage(query, 0, 1, out var totalRecords, "Name", Direction.Ascending, true, filterQuery);
Assert.That(totalRecords, Is.EqualTo(2));
@@ -836,10 +828,10 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void GetAllContentByIds()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var contents = repository.GetMany(NodeDto.NodeIdSeed + 2, NodeDto.NodeIdSeed + 3);
@@ -853,10 +845,10 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void GetAllContent()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var contents = repository.GetMany();
@@ -879,10 +871,10 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void ExistContent()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var exists = repository.Exists(NodeDto.NodeIdSeed + 2);
@@ -893,12 +885,12 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void CountContent()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var query = unitOfWork.SqlContext.Query<IContent>().Where(x => x.Level == 2);
var query = scope.SqlContext.Query<IContent>().Where(x => x.Level == 2);
var result = repository.Count(query);
Assert.That(result, Is.GreaterThanOrEqualTo(2));
@@ -908,12 +900,12 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void QueryContentByUniqueId()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out _);
var repository = CreateRepository((IScopeAccessor) provider, out _);
var query = unitOfWork.SqlContext.Query<IContent>().Where(x => x.Key == new Guid("B58B3AD4-62C2-4E27-B1BE-837BD7C533E0"));
var query = scope.SqlContext.Query<IContent>().Where(x => x.Key == new Guid("B58B3AD4-62C2-4E27-B1BE-837BD7C533E0"));
var content = repository.Get(query).SingleOrDefault();
Assert.IsNotNull(content);
@@ -14,7 +14,7 @@ using Umbraco.Core.Models.Rdbms;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Tests.Testing;
@@ -33,31 +33,31 @@ namespace Umbraco.Tests.Persistence.Repositories
CreateTestData();
}
private DocumentRepository CreateRepository(IScopeUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository)
private DocumentRepository CreateRepository(IScopeAccessor scopeAccessor, out ContentTypeRepository contentTypeRepository)
{
var templateRepository = new TemplateRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>(), Mock.Of<ITemplatesSection>());
var tagRepository = new TagRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger);
contentTypeRepository = new ContentTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, templateRepository);
var repository = new DocumentRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of<IContentSection>());
var templateRepository = new TemplateRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of<ITemplatesSection>(), Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>());
var tagRepository = new TagRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger);
contentTypeRepository = new ContentTypeRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger, templateRepository);
var repository = new DocumentRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of<IContentSection>());
return repository;
}
private ContentTypeRepository CreateRepository(IScopeUnitOfWork unitOfWork)
private ContentTypeRepository CreateRepository(IScopeAccessor scopeAccessor)
{
var templateRepository = new TemplateRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>(), Mock.Of<ITemplatesSection>());
var contentTypeRepository = new ContentTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, templateRepository);
var templateRepository = new TemplateRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of<ITemplatesSection>(), Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>());
var contentTypeRepository = new ContentTypeRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger, templateRepository);
return contentTypeRepository;
}
private MediaTypeRepository CreateMediaTypeRepository(IScopeUnitOfWork unitOfWork)
private MediaTypeRepository CreateMediaTypeRepository(IScopeAccessor scopeAccessor)
{
var contentTypeRepository = new MediaTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger);
var contentTypeRepository = new MediaTypeRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger);
return contentTypeRepository;
}
private EntityContainerRepository CreateContainerRepository(IScopeUnitOfWork unitOfWork, Guid containerEntityType)
private EntityContainerRepository CreateContainerRepository(IScopeAccessor scopeAccessor, Guid containerEntityType)
{
return new EntityContainerRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, containerEntityType);
return new EntityContainerRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger, containerEntityType);
}
//TODO Add test to verify SetDefaultTemplates updates both AllowedTemplates and DefaultTemplate(id).
@@ -67,11 +67,11 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Maps_Templates_Correctly()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var templateRepo = new TemplateRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>(), Mock.Of<ITemplatesSection>());
var repository = CreateRepository(unitOfWork);
var templateRepo = new TemplateRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of<ITemplatesSection>(), Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>());
var repository = CreateRepository((IScopeAccessor) provider);
var templates = new[]
{
new Template("test1", "test1"),
@@ -82,13 +82,13 @@ namespace Umbraco.Tests.Persistence.Repositories
{
templateRepo.Save(template);
}
unitOfWork.Flush();
var contentType = MockedContentTypes.CreateSimpleContentType();
contentType.AllowedTemplates = new[] { templates[0], templates[1] };
contentType.SetDefaultTemplate(templates[0]);
repository.Save(contentType);
unitOfWork.Flush();
//re-get
var result = repository.Get(contentType.Id);
@@ -102,23 +102,23 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Move()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var containerRepository = CreateContainerRepository(unitOfWork, Constants.ObjectTypes.DocumentTypeContainer);
var repository = CreateRepository(unitOfWork);
var containerRepository = CreateContainerRepository((IScopeAccessor) provider, Constants.ObjectTypes.DocumentTypeContainer);
var repository = CreateRepository((IScopeAccessor) provider);
var container1 = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "blah1" };
containerRepository.Save(container1);
unitOfWork.Flush();
var container2 = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "blah2", ParentId = container1.Id };
containerRepository.Save(container2);
unitOfWork.Flush();
var contentType = (IContentType)MockedContentTypes.CreateBasicContentType("asdfasdf");
contentType.ParentId = container2.Id;
repository.Save(contentType);
unitOfWork.Flush();
//create a
var contentType2 = (IContentType)new ContentType(contentType, "hello")
@@ -127,10 +127,10 @@ namespace Umbraco.Tests.Persistence.Repositories
};
contentType.ParentId = contentType.Id;
repository.Save(contentType2);
unitOfWork.Flush();
var result = repository.Move(contentType, container1).ToArray();
unitOfWork.Flush();
Assert.AreEqual(2, result.Count());
@@ -148,13 +148,13 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Create_Container()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var containerRepository = CreateContainerRepository(unitOfWork, Constants.ObjectTypes.DocumentTypeContainer);
var containerRepository = CreateContainerRepository((IScopeAccessor) provider, Constants.ObjectTypes.DocumentTypeContainer);
var container = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "blah" };
containerRepository.Save(container);
unitOfWork.Flush();
Assert.That(container.Id, Is.GreaterThan(0));
var found = containerRepository.Get(container.Id);
@@ -167,10 +167,10 @@ namespace Umbraco.Tests.Persistence.Repositories
{
EntityContainer container1, container2, container3;
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var containerRepository = CreateContainerRepository(unitOfWork, Constants.ObjectTypes.DocumentTypeContainer);
var containerRepository = CreateContainerRepository((IScopeAccessor) provider, Constants.ObjectTypes.DocumentTypeContainer);
container1 = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "container1" };
containerRepository.Save(container1);
@@ -178,7 +178,7 @@ namespace Umbraco.Tests.Persistence.Repositories
containerRepository.Save(container2);
container3 = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "container3" };
containerRepository.Save(container3);
unitOfWork.Flush();
Assert.That(container1.Id, Is.GreaterThan(0));
Assert.That(container2.Id, Is.GreaterThan(0));
Assert.That(container3.Id, Is.GreaterThan(0));
@@ -197,17 +197,17 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Delete_Container()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var containerRepository = CreateContainerRepository(unitOfWork, Constants.ObjectTypes.DocumentTypeContainer);
var containerRepository = CreateContainerRepository((IScopeAccessor) provider, Constants.ObjectTypes.DocumentTypeContainer);
var container = new EntityContainer(Constants.ObjectTypes.DocumentType) { Name = "blah" };
containerRepository.Save(container);
unitOfWork.Flush();
// Act
containerRepository.Delete(container);
unitOfWork.Flush();
var found = containerRepository.Get(container.Id);
Assert.IsNull(found);
@@ -217,19 +217,19 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Create_Container_Containing_Media_Types()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var containerRepository = CreateContainerRepository(unitOfWork, Constants.ObjectTypes.MediaTypeContainer);
var repository = CreateRepository(unitOfWork);
var containerRepository = CreateContainerRepository((IScopeAccessor) provider, Constants.ObjectTypes.MediaTypeContainer);
var repository = CreateRepository((IScopeAccessor) provider);
var container = new EntityContainer(Constants.ObjectTypes.MediaType) { Name = "blah" };
containerRepository.Save(container);
unitOfWork.Flush();
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test", propertyGroupName: "testGroup");
contentType.ParentId = container.Id;
repository.Save(contentType);
unitOfWork.Flush();
Assert.AreEqual(container.Id, contentType.ParentId);
}
@@ -238,23 +238,23 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Delete_Container_Containing_Media_Types()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var containerRepository = CreateContainerRepository(unitOfWork, Constants.ObjectTypes.MediaTypeContainer);
var repository = CreateMediaTypeRepository(unitOfWork);
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);
unitOfWork.Flush();
IMediaType contentType = MockedContentTypes.CreateSimpleMediaType("test", "Test", propertyGroupName: "testGroup");
contentType.ParentId = container.Id;
repository.Save(contentType);
unitOfWork.Flush();
// Act
containerRepository.Delete(container);
unitOfWork.Flush();
var found = containerRepository.Get(container.Id);
Assert.IsNull(found);
@@ -269,14 +269,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_On_ContentTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository((IScopeAccessor) provider);
// Act
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test", propertyGroupName: "testGroup");
repository.Save(contentType);
unitOfWork.Flush();
var fetched = repository.Get(contentType.Id);
@@ -304,10 +304,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_On_ContentTypeRepository_After_Model_Mapping()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository((IScopeAccessor) provider);
// Act
var contentType = (IContentType)MockedContentTypes.CreateSimpleContentType2("test", "Test", propertyGroupName: "testGroup");
@@ -322,7 +322,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(4, mapped.PropertyTypes.Count());
repository.Save(mapped);
unitOfWork.Flush();
Assert.AreEqual(4, mapped.PropertyTypes.Count());
@@ -353,10 +353,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Update_On_ContentTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository((IScopeAccessor) provider);
// Act
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
@@ -370,7 +370,7 @@ namespace Umbraco.Tests.Persistence.Repositories
DataTypeDefinitionId = -88
});
repository.Save(contentType);
unitOfWork.Flush();
var dirty = ((ICanBeDirty)contentType).IsDirty();
@@ -429,10 +429,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Update_On_ContentTypeRepository_After_Model_Mapping()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository((IScopeAccessor) provider);
// Act
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
@@ -468,7 +468,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.IsTrue(mapped.PropertyTypes.Any(x => x.Alias == "subtitle"));
repository.Save(mapped);
unitOfWork.Flush();
var dirty = mapped.IsDirty();
@@ -492,18 +492,18 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Delete_On_ContentTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository((IScopeAccessor) provider);
// Act
var contentType = MockedContentTypes.CreateSimpleContentType();
repository.Save(contentType);
unitOfWork.Flush();
var contentType2 = repository.Get(contentType.Id);
repository.Delete(contentType2);
unitOfWork.Flush();
var exists = repository.Exists(contentType.Id);
@@ -516,10 +516,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Delete_With_Heirarchy_On_ContentTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
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);
@@ -527,13 +527,13 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.Save(ctMain);
repository.Save(ctChild1);
repository.Save(ctChild2);
unitOfWork.Flush();
// Act
var resolvedParent = repository.Get(ctMain.Id);
repository.Delete(resolvedParent);
unitOfWork.Flush();
// Assert
Assert.That(repository.Exists(ctMain.Id), Is.False);
@@ -546,10 +546,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Query_On_ContentTypeRepository_Sort_By_Name()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository((IScopeAccessor) provider);
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
var child1 = MockedContentTypes.CreateSimpleContentType("abc", "abc", contentType, randomizeAliases: true);
repository.Save(child1);
@@ -557,10 +557,10 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.Save(child3);
var child2 = MockedContentTypes.CreateSimpleContentType("a123", "a123", contentType, randomizeAliases: true);
repository.Save(child2);
unitOfWork.Flush();
// Act
var contentTypes = repository.Get(unitOfWork.SqlContext.Query<IContentType>().Where(x => x.ParentId == contentType.Id));
var contentTypes = repository.Get(scope.SqlContext.Query<IContentType>().Where(x => x.ParentId == contentType.Id));
// Assert
Assert.That(contentTypes.Count(), Is.EqualTo(3));
@@ -575,10 +575,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Get_On_ContentTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository((IScopeAccessor) provider);
// Act
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
@@ -593,14 +593,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Get_By_Guid_On_ContentTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository((IScopeAccessor) provider);
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
var childContentType = MockedContentTypes.CreateSimpleContentType("blah", "Blah", contentType, randomizeAliases:true);
repository.Save(childContentType);
unitOfWork.Flush();
// Act
var result = repository.Get(childContentType.Key);
@@ -615,10 +615,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Get_By_Missing_Guid_On_ContentTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository((IScopeAccessor) provider);
// Act
var result = repository.Get(Guid.NewGuid());
@@ -631,15 +631,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_On_ContentTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository((IScopeAccessor) provider);
// Act
var contentTypes = repository.GetMany();
int count =
unitOfWork.Database.ExecuteScalar<int>(
scope.Database.ExecuteScalar<int>(
"SELECT COUNT(*) FROM umbracoNode WHERE nodeObjectType = @NodeObjectType",
new {NodeObjectType = Constants.ObjectTypes.DocumentType});
@@ -653,16 +653,16 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_By_Guid_On_ContentTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository((IScopeAccessor) provider);
var allGuidIds = repository.GetMany().Select(x => x.Key).ToArray();
// Act
var contentTypes = ((IReadRepository<Guid, IContentType>)repository).GetMany(allGuidIds);
int count =
unitOfWork.Database.ExecuteScalar<int>(
scope.Database.ExecuteScalar<int>(
"SELECT COUNT(*) FROM umbracoNode WHERE nodeObjectType = @NodeObjectType",
new { NodeObjectType = Constants.ObjectTypes.DocumentType });
@@ -676,10 +676,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Exists_On_ContentTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository((IScopeAccessor) provider);
// Act
var exists = repository.Exists(NodeDto.NodeIdSeed);
@@ -693,16 +693,16 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Update_ContentType_With_PropertyType_Removed()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository((IScopeAccessor) provider);
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
// Act
contentType.PropertyGroups["Meta"].PropertyTypes.Remove("description");
repository.Save(contentType);
unitOfWork.Flush();
var result = repository.Get(NodeDto.NodeIdSeed + 1);
@@ -717,10 +717,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Verify_PropertyTypes_On_SimpleTextpage()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository((IScopeAccessor) provider);
// Act
var contentType = repository.Get(NodeDto.NodeIdSeed);
@@ -735,10 +735,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Verify_PropertyTypes_On_Textpage()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository((IScopeAccessor) provider);
// Act
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
@@ -753,10 +753,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Verify_PropertyType_With_No_Group()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository((IScopeAccessor) provider);
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
Assert.That(contentType.PropertyGroups.Count, Is.EqualTo(2));
@@ -778,7 +778,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(5));
repository.Save(contentType);
unitOfWork.Flush();
// Assert
var updated = repository.Get(NodeDto.NodeIdSeed + 1);
@@ -794,16 +794,16 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Verify_AllowedChildContentTypes_On_ContentType()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository((IScopeAccessor) provider);
var subpageContentType = MockedContentTypes.CreateSimpleContentType("umbSubpage", "Subpage");
var simpleSubpageContentType = MockedContentTypes.CreateSimpleContentType("umbSimpleSubpage", "Simple Subpage");
repository.Save(subpageContentType);
repository.Save(simpleSubpageContentType);
unitOfWork.Flush();
// Act
var contentType = repository.Get(NodeDto.NodeIdSeed);
@@ -813,7 +813,7 @@ namespace Umbraco.Tests.Persistence.Repositories
new ContentTypeSort(new Lazy<int>(() => simpleSubpageContentType.Id), 1, simpleSubpageContentType.Alias)
};
repository.Save(contentType);
unitOfWork.Flush();
//Assert
var updated = repository.Get(NodeDto.NodeIdSeed);
@@ -828,21 +828,21 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Verify_Removal_Of_Used_PropertyType_From_ContentType()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
ContentTypeRepository repository;
var contentRepository = CreateRepository(unitOfWork, out repository);
var contentRepository = CreateRepository((IScopeAccessor) provider, out repository);
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id);
contentRepository.Save(subpage);
unitOfWork.Flush();
// Act
contentType.RemovePropertyType("keywords");
repository.Save(contentType);
unitOfWork.Flush();
// Assert
Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(3));
@@ -855,22 +855,22 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Verify_Addition_Of_PropertyType_After_ContentType_Is_Used()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
ContentTypeRepository repository;
var contentRepository = CreateRepository(unitOfWork, out repository);
var contentRepository = CreateRepository((IScopeAccessor) provider, out repository);
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id);
contentRepository.Save(subpage);
unitOfWork.Flush();
// Act
var propertyGroup = contentType.PropertyGroups.First(x => x.Name == "Meta");
propertyGroup.PropertyTypes.Add(new PropertyType("test", DataTypeDatabaseType.Ntext, "metaAuthor") { Name = "Meta Author", Description = "", Mandatory = false, SortOrder = 1, DataTypeDefinitionId = -88 });
repository.Save(contentType);
unitOfWork.Flush();
// Assert
Assert.That(contentType.PropertyTypes.Count(), Is.EqualTo(5));
@@ -883,27 +883,27 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Verify_Usage_Of_New_PropertyType_On_Content()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
ContentTypeRepository repository;
var contentRepository = CreateRepository(unitOfWork, out repository);
var contentRepository = CreateRepository((IScopeAccessor) provider, out repository);
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id);
contentRepository.Save(subpage);
unitOfWork.Flush();
var propertyGroup = contentType.PropertyGroups.First(x => x.Name == "Meta");
propertyGroup.PropertyTypes.Add(new PropertyType("test", DataTypeDatabaseType.Ntext, "metaAuthor") { Name = "Meta Author", Description = "", Mandatory = false, SortOrder = 1, DataTypeDefinitionId = -88 });
repository.Save(contentType);
unitOfWork.Flush();
// Act
var content = contentRepository.Get(subpage.Id);
content.SetValue("metaAuthor", "John Doe");
contentRepository.Save(content);
unitOfWork.Flush();
//Assert
var updated = contentRepository.Get(subpage.Id);
@@ -917,16 +917,16 @@ 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.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
ContentTypeRepository repository;
var contentRepository = CreateRepository(unitOfWork, out repository);
var contentRepository = CreateRepository((IScopeAccessor) provider, out repository);
var contentType = repository.Get(NodeDto.NodeIdSeed + 1);
var subpage = MockedContent.CreateTextpageContent(contentType, "Text Page 1", contentType.Id);
contentRepository.Save(subpage);
unitOfWork.Flush();
//Remove PropertyType
contentType.RemovePropertyType("keywords");
@@ -934,13 +934,13 @@ namespace Umbraco.Tests.Persistence.Repositories
var propertyGroup = contentType.PropertyGroups.First(x => x.Name == "Meta");
propertyGroup.PropertyTypes.Add(new PropertyType("test", DataTypeDatabaseType.Ntext, "metaAuthor") { Name = "Meta Author", Description = "", Mandatory = false, SortOrder = 1, DataTypeDefinitionId = -88 });
repository.Save(contentType);
unitOfWork.Flush();
// Act
var content = contentRepository.Get(subpage.Id);
content.SetValue("metaAuthor", "John Doe");
contentRepository.Save(content);
unitOfWork.Flush();
//Assert
var updated = contentRepository.Get(subpage.Id);
@@ -6,12 +6,12 @@ using Umbraco.Core.Cache;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Rdbms;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Tests.TestHelpers;
using Umbraco.Core.Composing;
using Umbraco.Tests.Testing;
using LightInject;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Scoping;
namespace Umbraco.Tests.Persistence.Repositories
{
@@ -57,38 +57,37 @@ namespace Umbraco.Tests.Persistence.Repositories
}
}
private IDataTypeDefinitionRepository CreateRepository(IScopeUnitOfWork unitOfWork)
private IDataTypeDefinitionRepository CreateRepository()
{
return Container.GetInstance<IScopeUnitOfWork, IDataTypeDefinitionRepository>(unitOfWork);
return Container.GetInstance<IDataTypeDefinitionRepository>();
}
private EntityContainerRepository CreateContainerRepository(IScopeUnitOfWork unitOfWork)
private EntityContainerRepository CreateContainerRepository(IScopeAccessor scopeAccessor)
{
return new EntityContainerRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, Constants.ObjectTypes.DataTypeContainer);
return new EntityContainerRepository(scopeAccessor, CacheHelper.CreateDisabledCacheHelper(), Logger, Constants.ObjectTypes.DataTypeContainer);
}
[Test]
public void Can_Move()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var containerRepository = CreateContainerRepository(unitOfWork);
var repository = CreateRepository(unitOfWork);
var containerRepository = CreateContainerRepository(accessor);
var repository = CreateRepository();
var container1 = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah1" };
containerRepository.Save(container1);
unitOfWork.Flush();
var container2 = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah2", ParentId = container1.Id };
containerRepository.Save(container2);
unitOfWork.Flush();
var dataType = (IDataTypeDefinition)new DataTypeDefinition(container2.Id, Constants.PropertyEditors.RadioButtonListAlias)
{
Name = "dt1"
};
repository.Save(dataType);
unitOfWork.Flush();
//create a
var dataType2 = (IDataTypeDefinition)new DataTypeDefinition(dataType.Id, Constants.PropertyEditors.RadioButtonListAlias)
@@ -96,10 +95,8 @@ namespace Umbraco.Tests.Persistence.Repositories
Name = "dt2"
};
repository.Save(dataType2);
unitOfWork.Flush();
var result = repository.Move(dataType, container1).ToArray();
unitOfWork.Flush();
Assert.AreEqual(2, result.Count());
@@ -111,19 +108,20 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreNotEqual(result.Single(x => x.Entity.Id == dataType.Id).OriginalPath, dataType.Path);
Assert.AreNotEqual(result.Single(x => x.Entity.Id == dataType2.Id).OriginalPath, dataType2.Path);
}
}
[Test]
public void Can_Create_Container()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var containerRepository = CreateContainerRepository(unitOfWork);
var containerRepository = CreateContainerRepository(accessor);
var container = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah" };
containerRepository.Save(container);
unitOfWork.Flush();
Assert.That(container.Id, Is.GreaterThan(0));
var found = containerRepository.Get(container.Id);
@@ -134,17 +132,17 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Delete_Container()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var containerRepository = CreateContainerRepository(unitOfWork);
var containerRepository = CreateContainerRepository(accessor);
var container = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah" };
containerRepository.Save(container);
unitOfWork.Flush();
// Act
containerRepository.Delete(container);
unitOfWork.Flush();
var found = containerRepository.Get(container.Id);
Assert.IsNull(found);
@@ -154,18 +152,18 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Create_Container_Containing_Data_Types()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var containerRepository = CreateContainerRepository(unitOfWork);
var repository = CreateRepository(unitOfWork);
var containerRepository = CreateContainerRepository(accessor);
var repository = CreateRepository();
var container = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah" };
containerRepository.Save(container);
unitOfWork.Flush();
var dataTypeDefinition = new DataTypeDefinition(container.Id, Constants.PropertyEditors.RadioButtonListAlias) { Name = "test" };
repository.Save(dataTypeDefinition);
unitOfWork.Flush();
Assert.AreEqual(container.Id, dataTypeDefinition.ParentId);
}
@@ -174,22 +172,21 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Delete_Container_Containing_Data_Types()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var containerRepository = CreateContainerRepository(unitOfWork);
var repository = CreateRepository(unitOfWork);
var containerRepository = CreateContainerRepository(accessor);
var repository = CreateRepository();
var container = new EntityContainer(Constants.ObjectTypes.DataType) { Name = "blah" };
containerRepository.Save(container);
unitOfWork.Flush();
IDataTypeDefinition dataType = new DataTypeDefinition(container.Id, Constants.PropertyEditors.RadioButtonListAlias) { Name = "test" };
repository.Save(dataType);
unitOfWork.Flush();
// Act
containerRepository.Delete(container);
unitOfWork.Flush();
var found = containerRepository.Get(container.Id);
Assert.IsNull(found);
@@ -203,15 +200,16 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Create()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
IDataTypeDefinition dataTypeDefinition = new DataTypeDefinition(-1, Constants.PropertyEditors.RadioButtonListAlias) {Name = "test"};
repository.Save(dataTypeDefinition);
unitOfWork.Flush();
var id = dataTypeDefinition.Id;
Assert.That(id, Is.GreaterThan(0));
@@ -228,11 +226,12 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Perform_Get_On_DataTypeDefinitionRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
// Act
var dataTypeDefinition = repository.Get(-42);
@@ -246,11 +245,12 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Perform_GetAll_On_DataTypeDefinitionRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
// Act
var dataTypeDefinitions = repository.GetMany();
@@ -266,11 +266,12 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Perform_GetAll_With_Params_On_DataTypeDefinitionRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
// Act
var dataTypeDefinitions = repository.GetMany(-40, -41, -42);
@@ -286,14 +287,15 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Perform_GetByQuery_On_DataTypeDefinitionRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
// Act
var query = unitOfWork.SqlContext.Query<IDataTypeDefinition>().Where(x => x.PropertyEditorAlias == Constants.PropertyEditors.RadioButtonListAlias);
var query = scope.SqlContext.Query<IDataTypeDefinition>().Where(x => x.PropertyEditorAlias == Constants.PropertyEditors.RadioButtonListAlias);
var result = repository.Get(query);
// Assert
@@ -306,14 +308,15 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Perform_Count_On_DataTypeDefinitionRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
// Act
var query = unitOfWork.SqlContext.Query<IDataTypeDefinition>().Where(x => x.Name.StartsWith("D"));
var query = scope.SqlContext.Query<IDataTypeDefinition>().Where(x => x.Name.StartsWith("D"));
int count = repository.Count(query);
// Assert
@@ -324,11 +327,12 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Perform_Add_On_DataTypeDefinitionRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
var dataTypeDefinition = new DataTypeDefinition("Test.TestEditor")
{
DatabaseType = DataTypeDatabaseType.Integer,
@@ -338,7 +342,7 @@ namespace Umbraco.Tests.Persistence.Repositories
// Act
repository.Save(dataTypeDefinition);
unitOfWork.Flush();
var exists = repository.Exists(dataTypeDefinition.Id);
var fetched = repository.Get(dataTypeDefinition.Id);
@@ -354,11 +358,12 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Perform_Update_On_DataTypeDefinitionRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
var dataTypeDefinition = new DataTypeDefinition("Test.blah")
{
DatabaseType = DataTypeDatabaseType.Integer,
@@ -366,14 +371,12 @@ namespace Umbraco.Tests.Persistence.Repositories
CreatorId = 0
};
repository.Save(dataTypeDefinition);
unitOfWork.Flush();
// Act
var definition = repository.Get(dataTypeDefinition.Id);
definition.Name = "AgeDataType Updated";
definition.PropertyEditorAlias = "Test.TestEditor"; //change
repository.Save(definition);
unitOfWork.Flush();
var definitionUpdated = repository.Get(dataTypeDefinition.Id);
@@ -387,11 +390,12 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Perform_Delete_On_DataTypeDefinitionRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
var dataTypeDefinition = new DataTypeDefinition("Test.TestEditor")
{
DatabaseType = DataTypeDatabaseType.Integer,
@@ -401,11 +405,10 @@ namespace Umbraco.Tests.Persistence.Repositories
// Act
repository.Save(dataTypeDefinition);
unitOfWork.Flush();
var existsBefore = repository.Exists(dataTypeDefinition.Id);
repository.Delete(dataTypeDefinition);
unitOfWork.Flush();
var existsAfter = repository.Exists(dataTypeDefinition.Id);
@@ -418,11 +421,12 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Perform_Exists_On_DataTypeDefinitionRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
// Act
var exists = repository.Exists(1046); //Content picker
@@ -437,17 +441,19 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_Pre_Value_Collection()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
var dataTypeDefinition = new DataTypeDefinition(-1, Constants.PropertyEditors.RadioButtonListAlias) { Name = "test" };
repository.Save(dataTypeDefinition);
unitOfWork.Flush();
var dtid = dataTypeDefinition.Id;
unitOfWork.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtid, SortOrder = 0, Value = "test1"});
unitOfWork.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtid, SortOrder = 1, Value = "test2" });
scope.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtid, SortOrder = 0, Value = "test1"});
scope.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtid, SortOrder = 1, Value = "test2" });
var collection = repository.GetPreValuesCollectionByDataTypeId(dtid);
Assert.AreEqual(2, collection.PreValuesAsArray.Count());
@@ -457,17 +463,19 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_Pre_Value_As_String()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
var dataTypeDefinition = new DataTypeDefinition(-1, Constants.PropertyEditors.RadioButtonListAlias) { Name = "test" };
repository.Save(dataTypeDefinition);
unitOfWork.Flush();
var dtid = dataTypeDefinition.Id;
var id = unitOfWork.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtid, SortOrder = 0, Value = "test1" });
unitOfWork.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtid, SortOrder = 1, Value = "test2" });
var id = scope.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtid, SortOrder = 0, Value = "test1" });
scope.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtid, SortOrder = 1, Value = "test2" });
var val = repository.GetPreValueAsString(Convert.ToInt32(id));
Assert.AreEqual("test1", val);
@@ -477,17 +485,19 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_Pre_Value_Collection_With_Cache()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
DataTypeDefinition dtd;
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var repository = Container.GetInstance<IScopeUnitOfWork, IDataTypeDefinitionRepository>(unitOfWork);
var repository = Container.GetInstance<IDataTypeDefinitionRepository>();
dtd = new DataTypeDefinition(-1, Constants.PropertyEditors.RadioButtonListAlias) { Name = "test" };
repository.Save(dtd);
unitOfWork.Flush();
unitOfWork.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtd.Id, SortOrder = 0, Value = "test1" });
unitOfWork.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtd.Id, SortOrder = 1, Value = "test2" });
scope.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtd.Id, SortOrder = 0, Value = "test1" });
scope.Database.Insert(new DataTypePreValueDto { DataTypeNodeId = dtd.Id, SortOrder = 1, Value = "test2" });
//this will cache the result
var collection = repository.GetPreValuesCollectionByDataTypeId(dtd.Id);
@@ -507,18 +517,20 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_Pre_Value_As_String_With_Cache()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
DataTypeDefinition dtd;
object id;
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
var accessor = (IScopeAccessor) provider;
using (var scope = provider.CreateScope())
{
var repository = Container.GetInstance<IScopeUnitOfWork, IDataTypeDefinitionRepository>(unitOfWork);
var repository = Container.GetInstance<IDataTypeDefinitionRepository>();
dtd = new DataTypeDefinition(-1, Constants.PropertyEditors.RadioButtonListAlias) { Name = "test" };
repository.Save(dtd);
unitOfWork.Flush();
id = unitOfWork.Database.Insert(new DataTypePreValueDto() { DataTypeNodeId = dtd.Id, SortOrder = 0, Value = "test1" });
unitOfWork.Database.Insert(new DataTypePreValueDto() { DataTypeNodeId = dtd.Id, SortOrder = 1, Value = "test2" });
id = scope.Database.Insert(new DataTypePreValueDto() { DataTypeNodeId = dtd.Id, SortOrder = 0, Value = "test1" });
scope.Database.Insert(new DataTypePreValueDto() { DataTypeNodeId = dtd.Id, SortOrder = 1, Value = "test2" });
//this will cache the result
var val = repository.GetPreValueAsString(Convert.ToInt32(id));
@@ -534,9 +546,9 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(1, cached.Count());
Assert.AreEqual(2, cached.Single().FormatAsDictionary().Count);
using (var unitOfWork = provider.CreateUnitOfWork())
using (var scope = provider.CreateScope())
{
var repository = Container.GetInstance<IScopeUnitOfWork, IDataTypeDefinitionRepository>(unitOfWork);
var repository = Container.GetInstance<IDataTypeDefinitionRepository>();
//ensure it still gets resolved!
var val = repository.GetPreValueAsString(Convert.ToInt32(id));
Assert.AreEqual("test1", val);
@@ -4,10 +4,10 @@ using System.Linq;
using NUnit.Framework;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.Testing;
using LightInject;
using Umbraco.Core.Scoping;
namespace Umbraco.Tests.Persistence.Repositories
{
@@ -22,19 +22,19 @@ namespace Umbraco.Tests.Persistence.Repositories
CreateTestData();
}
private IDictionaryRepository CreateRepository(IScopeUnitOfWork unitOfWork)
private IDictionaryRepository CreateRepository()
{
return Container.GetInstance<IScopeUnitOfWork, IDictionaryRepository>(unitOfWork);
return Container.GetInstance<IDictionaryRepository>();
}
[Test]
public void Can_Perform_Get_By_Key_On_DictionaryRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
var dictionaryItem = (IDictionaryItem)new DictionaryItem("Testing1235")
{
Translations = new List<IDictionaryTranslation>
@@ -44,7 +44,6 @@ namespace Umbraco.Tests.Persistence.Repositories
};
repository.Save(dictionaryItem);
unitOfWork.Flush();
//re-get
dictionaryItem = repository.Get("Testing1235");
@@ -63,10 +62,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Get_By_UniqueId_On_DictionaryRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
var dictionaryItem = (IDictionaryItem)new DictionaryItem("Testing1235")
{
Translations = new List<IDictionaryTranslation>
@@ -76,7 +75,6 @@ namespace Umbraco.Tests.Persistence.Repositories
};
repository.Save(dictionaryItem);
unitOfWork.Flush();
//re-get
dictionaryItem = repository.Get(dictionaryItem.Key);
@@ -88,17 +86,16 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.That(dictionaryItem.Translations.Any(x => x == null), Is.False);
Assert.That(dictionaryItem.Translations.First().Value, Is.EqualTo("Hello world"));
}
}
[Test]
public void Can_Perform_Get_On_DictionaryRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
var dictionaryItem = (IDictionaryItem)new DictionaryItem("Testing1235")
{
Translations = new List<IDictionaryTranslation>
@@ -108,7 +105,6 @@ namespace Umbraco.Tests.Persistence.Repositories
};
repository.Save(dictionaryItem);
unitOfWork.Flush();
//re-get
dictionaryItem = repository.Get(dictionaryItem.Id);
@@ -128,14 +124,13 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Get_On_DictionaryRepository_When_No_Language_Assigned()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
var dictionaryItem = (IDictionaryItem) new DictionaryItem("Testing1235");
repository.Save(dictionaryItem);
unitOfWork.Flush();
//re-get
dictionaryItem = repository.Get(dictionaryItem.Id);
@@ -153,10 +148,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_On_DictionaryRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
// Act
var dictionaryItem = repository.Get(1);
@@ -174,10 +169,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_With_Params_On_DictionaryRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
// Act
var dictionaryItems = repository.GetMany(1, 2);
@@ -194,13 +189,13 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetByQuery_On_DictionaryRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
// Act
var query = unitOfWork.SqlContext.Query<IDictionaryItem>().Where(x => x.ItemKey == "Article");
var query = scope.SqlContext.Query<IDictionaryItem>().Where(x => x.ItemKey == "Article");
var result = repository.Get(query);
// Assert
@@ -214,13 +209,13 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Count_On_DictionaryRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
// Act
var query = unitOfWork.SqlContext.Query<IDictionaryItem>().Where(x => x.ItemKey.StartsWith("Read"));
var query = scope.SqlContext.Query<IDictionaryItem>().Where(x => x.ItemKey.StartsWith("Read"));
var result = repository.Count(query);
// Assert
@@ -232,11 +227,11 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_On_DictionaryRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var languageRepository = Container.GetInstance<IScopeUnitOfWork, ILanguageRepository>(unitOfWork);
var repository = CreateRepository(unitOfWork);
var languageRepository = Container.GetInstance<ILanguageRepository>();
var repository = CreateRepository();
var language = languageRepository.Get(1);
@@ -249,7 +244,6 @@ namespace Umbraco.Tests.Persistence.Repositories
// Act
repository.Save(read);
unitOfWork.Flush();
var exists = repository.Exists(read.Id);
@@ -263,10 +257,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Update_On_DictionaryRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
// Act
var item = repository.Get(1);
@@ -275,7 +269,6 @@ namespace Umbraco.Tests.Persistence.Repositories
item.Translations = translations;
repository.Save(item);
unitOfWork.Flush();
var dictionaryItem = repository.Get(1);
@@ -290,10 +283,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Update_WithNewTranslation_On_DictionaryRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
var languageNo = new Language("nb-NO") { CultureName = "nb-NO" };
ServiceContext.LocalizationService.Save(languageNo);
@@ -305,7 +298,6 @@ namespace Umbraco.Tests.Persistence.Repositories
item.Translations = translations;
repository.Save(item);
unitOfWork.Flush();
var dictionaryItem = (DictionaryItem) repository.Get(1);
@@ -320,15 +312,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Delete_On_DictionaryRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
// Act
var item = repository.Get(1);
repository.Delete(item);
unitOfWork.Flush();
var exists = repository.Exists(1);
@@ -341,10 +332,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Exists_On_DictionaryRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
// Act
var exists = repository.Exists(1);
@@ -359,10 +350,10 @@ namespace Umbraco.Tests.Persistence.Repositories
{
Dictionary<string, Guid> keyMap;
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository();
keyMap = repository.GetDictionaryItemKeyMap();
}
@@ -8,7 +8,7 @@ using Umbraco.Core.IO;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Tests.Testing;
@@ -19,27 +19,28 @@ namespace Umbraco.Tests.Persistence.Repositories
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
public class DomainRepositoryTest : TestWithDatabaseBase
{
private DomainRepository CreateRepository(IScopeUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository, out DocumentRepository documentRepository, out LanguageRepository languageRepository)
private DomainRepository CreateRepository(IScopeProvider provider, out ContentTypeRepository contentTypeRepository, out DocumentRepository documentRepository, out LanguageRepository languageRepository)
{
var templateRepository = new TemplateRepository(unitOfWork, DisabledCache, Logger, Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>(), Mock.Of<ITemplatesSection>());
var tagRepository = new TagRepository(unitOfWork, DisabledCache, Logger);
contentTypeRepository = new ContentTypeRepository(unitOfWork, DisabledCache, Logger, templateRepository);
documentRepository = new DocumentRepository(unitOfWork, DisabledCache, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of<IContentSection>());
languageRepository = new LanguageRepository(unitOfWork, DisabledCache, Logger);
var domainRepository = new DomainRepository(unitOfWork, DisabledCache, Logger);
var accessor = (IScopeAccessor) provider;
var templateRepository = new TemplateRepository(accessor, DisabledCache, Logger, Mock.Of<ITemplatesSection>(), Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>());
var tagRepository = new TagRepository(accessor, DisabledCache, Logger);
contentTypeRepository = new ContentTypeRepository(accessor, DisabledCache, Logger, templateRepository);
documentRepository = new DocumentRepository(accessor, DisabledCache, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of<IContentSection>());
languageRepository = new LanguageRepository(accessor, DisabledCache, Logger);
var domainRepository = new DomainRepository(accessor, DisabledCache, Logger);
return domainRepository;
}
private int CreateTestData(string isoName, out ContentType ct)
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
DocumentRepository documentRepo;
LanguageRepository langRepo;
ContentTypeRepository contentTypeRepo;
var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo);
var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo);
var lang = new Language(isoName);
langRepo.Save(lang);
@@ -48,7 +49,7 @@ namespace Umbraco.Tests.Persistence.Repositories
contentTypeRepo.Save(ct);
var content = new Content("test", -1, ct) { CreatorId = 0, WriterId = 0 };
documentRepo.Save(content);
unitOfWork.Complete();
scope.Complete();
return content.Id;
}
}
@@ -59,21 +60,20 @@ namespace Umbraco.Tests.Persistence.Repositories
ContentType ct;
var contentId = CreateTestData("en-AU", out ct);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
DocumentRepository documentRepo;
LanguageRepository langRepo;
ContentTypeRepository contentTypeRepo;
var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo);
var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo);
var lang = langRepo.GetByIsoCode("en-AU");
var content = documentRepo.Get(contentId);
var domain = (IDomain)new UmbracoDomain("test.com") { RootContentId = content.Id, LanguageId = lang.Id };
repo.Save(domain);
unitOfWork.Flush();
//re-get
domain = repo.Get(domain.Id);
@@ -94,20 +94,19 @@ namespace Umbraco.Tests.Persistence.Repositories
ContentType ct;
var contentId = CreateTestData("en-AU", out ct);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
DocumentRepository documentRepo;
LanguageRepository langRepo;
ContentTypeRepository contentTypeRepo;
var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo);
var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo);
var content = documentRepo.Get(contentId);
var domain = (IDomain)new UmbracoDomain("test.com") { RootContentId = content.Id };
repo.Save(domain);
unitOfWork.Flush();
//re-get
domain = repo.Get(domain.Id);
@@ -127,26 +126,24 @@ namespace Umbraco.Tests.Persistence.Repositories
ContentType ct;
var contentId = CreateTestData("en-AU", out ct);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
DocumentRepository documentRepo;
LanguageRepository langRepo;
ContentTypeRepository contentTypeRepo;
var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo);
var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo);
var lang = langRepo.GetByIsoCode("en-AU");
var content = documentRepo.Get(contentId);
var domain1 = (IDomain)new UmbracoDomain("test.com") { RootContentId = content.Id, LanguageId = lang.Id };
repo.Save(domain1);
unitOfWork.Flush();
var domain2 = (IDomain)new UmbracoDomain("test.com") { RootContentId = content.Id, LanguageId = lang.Id };
repo.Save(domain2);
Assert.Throws<DuplicateNameException>(unitOfWork.Flush);
Assert.Throws<DuplicateNameException>(() => repo.Save(domain2));
}
}
@@ -156,24 +153,22 @@ namespace Umbraco.Tests.Persistence.Repositories
ContentType ct;
var contentId = CreateTestData("en-AU", out ct);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
DocumentRepository documentRepo;
LanguageRepository langRepo;
ContentTypeRepository contentTypeRepo;
var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo);
var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo);
var lang = langRepo.GetByIsoCode("en-AU");
var content = documentRepo.Get(contentId);
var domain = (IDomain)new UmbracoDomain("test.com") { RootContentId = content.Id, LanguageId = lang.Id };
repo.Save(domain);
unitOfWork.Flush();
repo.Delete(domain);
unitOfWork.Flush();
//re-get
domain = repo.Get(domain.Id);
@@ -189,14 +184,14 @@ namespace Umbraco.Tests.Persistence.Repositories
ContentType ct;
var contentId1 = CreateTestData("en-AU", out ct);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
DocumentRepository documentRepo;
LanguageRepository langRepo;
ContentTypeRepository contentTypeRepo;
var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo);
var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo);
var content1 = documentRepo.Get(contentId1);
@@ -206,12 +201,10 @@ namespace Umbraco.Tests.Persistence.Repositories
langRepo.Save(lang2);
var content2 = new Content("test", -1, ct) { CreatorId = 0, WriterId = 0 };
documentRepo.Save(content2);
unitOfWork.Flush();
var domain = (IDomain)new UmbracoDomain("test.com") { RootContentId = content1.Id, LanguageId = lang1.Id };
repo.Save(domain);
unitOfWork.Flush();
//re-get
domain = repo.Get(domain.Id);
@@ -220,7 +213,6 @@ namespace Umbraco.Tests.Persistence.Repositories
domain.RootContentId = content2.Id;
domain.LanguageId = lang2.Id;
repo.Save(domain);
unitOfWork.Flush();
//re-get
domain = repo.Get(domain.Id);
@@ -239,14 +231,14 @@ namespace Umbraco.Tests.Persistence.Repositories
ContentType ct;
var contentId = CreateTestData("en-AU", out ct);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
DocumentRepository documentRepo;
LanguageRepository langRepo;
ContentTypeRepository contentTypeRepo;
var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo);
var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo);
var lang = langRepo.GetByIsoCode("en-AU");
var content = documentRepo.Get(contentId);
@@ -255,7 +247,6 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var domain = (IDomain)new UmbracoDomain("test" + i + ".com") { RootContentId = content.Id, LanguageId = lang.Id };
repo.Save(domain);
unitOfWork.Flush();
}
var found = repo.Exists("test1.com");
@@ -270,14 +261,14 @@ namespace Umbraco.Tests.Persistence.Repositories
ContentType ct;
var contentId = CreateTestData("en-AU", out ct);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
DocumentRepository documentRepo;
LanguageRepository langRepo;
ContentTypeRepository contentTypeRepo;
var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo);
var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo);
var lang = langRepo.GetByIsoCode("en-AU");
var content = documentRepo.Get(contentId);
@@ -286,7 +277,6 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var domain = (IDomain)new UmbracoDomain("test" + i + ".com") { RootContentId = content.Id, LanguageId = lang.Id };
repo.Save(domain);
unitOfWork.Flush();
}
var found = repo.GetByName("test1.com");
@@ -301,14 +291,14 @@ namespace Umbraco.Tests.Persistence.Repositories
ContentType ct;
var contentId = CreateTestData("en-AU", out ct);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
DocumentRepository documentRepo;
LanguageRepository langRepo;
ContentTypeRepository contentTypeRepo;
var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo);
var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo);
var lang = langRepo.GetByIsoCode("en-AU");
var content = documentRepo.Get(contentId);
@@ -317,7 +307,6 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var domain = (IDomain)new UmbracoDomain("test " + i + ".com") { RootContentId = content.Id, LanguageId = lang.Id };
repo.Save(domain);
unitOfWork.Flush();
}
var all = repo.GetMany();
@@ -332,14 +321,14 @@ namespace Umbraco.Tests.Persistence.Repositories
ContentType ct;
var contentId = CreateTestData("en-AU", out ct);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
DocumentRepository documentRepo;
LanguageRepository langRepo;
ContentTypeRepository contentTypeRepo;
var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo);
var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo);
var lang = langRepo.GetByIsoCode("en-AU");
var content = documentRepo.Get(contentId);
@@ -349,7 +338,6 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var domain = (IDomain)new UmbracoDomain("test " + i + ".com") { RootContentId = content.Id, LanguageId = lang.Id };
repo.Save(domain);
unitOfWork.Flush();
ids.Add(domain.Id);
}
@@ -365,14 +353,14 @@ namespace Umbraco.Tests.Persistence.Repositories
ContentType ct;
var contentId = CreateTestData("en-AU", out ct);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
DocumentRepository documentRepo;
LanguageRepository langRepo;
ContentTypeRepository contentTypeRepo;
var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo);
var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo);
var lang = langRepo.GetByIsoCode("en-AU");
var content = documentRepo.Get(contentId);
@@ -385,7 +373,6 @@ namespace Umbraco.Tests.Persistence.Repositories
LanguageId = lang.Id
};
repo.Save(domain);
unitOfWork.Flush();
}
var all = repo.GetAll(false);
@@ -400,14 +387,14 @@ namespace Umbraco.Tests.Persistence.Repositories
ContentType ct;
var contentId = CreateTestData("en-AU", out ct);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
DocumentRepository documentRepo;
LanguageRepository langRepo;
ContentTypeRepository contentTypeRepo;
var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo);
var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo);
var contentItems = new List<IContent>();
@@ -419,7 +406,6 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var c = new Content("test" + i, -1, ct) { CreatorId = 0, WriterId = 0 };
documentRepo.Save(c);
unitOfWork.Flush();
contentItems.Add(c);
}
@@ -431,7 +417,6 @@ namespace Umbraco.Tests.Persistence.Repositories
LanguageId = lang.Id
};
repo.Save(domain);
unitOfWork.Flush();
}
var all1 = repo.GetAssignedDomains(contentItems[0].Id, true);
@@ -451,14 +436,14 @@ namespace Umbraco.Tests.Persistence.Repositories
ContentType ct;
var contentId = CreateTestData("en-AU", out ct);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
DocumentRepository documentRepo;
LanguageRepository langRepo;
ContentTypeRepository contentTypeRepo;
var repo = CreateRepository(unitOfWork, out contentTypeRepo, out documentRepo, out langRepo);
var repo = CreateRepository(provider, out contentTypeRepo, out documentRepo, out langRepo);
var contentItems = new List<IContent>();
@@ -470,7 +455,6 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var c = new Content("test" + i, -1, ct) { CreatorId = 0, WriterId = 0 };
documentRepo.Save(c);
unitOfWork.Flush();
contentItems.Add(c);
}
@@ -482,7 +466,6 @@ namespace Umbraco.Tests.Persistence.Repositories
LanguageId = lang.Id
};
repo.Save(domain);
unitOfWork.Flush();
}
var all1 = repo.GetAssignedDomains(contentItems[0].Id, false);
@@ -11,7 +11,7 @@ using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Querying;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.Testing;
@@ -28,9 +28,9 @@ namespace Umbraco.Tests.Persistence.Repositories
CreateTestData();
}
private LanguageRepository CreateRepository(IScopeUnitOfWork unitOfWork)
private LanguageRepository CreateRepository(IScopeProvider provider)
{
return new LanguageRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
return new LanguageRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
}
@@ -39,11 +39,11 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Get_On_LanguageRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
unitOfWork.Database.AsUmbracoDatabase().EnableSqlTrace = true;
var repository = CreateRepository(unitOfWork);
scope.Database.AsUmbracoDatabase().EnableSqlTrace = true;
var repository = CreateRepository(provider);
// Act
var language = repository.Get(1);
@@ -59,10 +59,10 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Perform_Get_By_Iso_Code_On_LanguageRepository()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var au = CultureInfo.GetCultureInfo("en-AU");
var language = (ILanguage)new Language(au.Name)
@@ -70,7 +70,6 @@ namespace Umbraco.Tests.Persistence.Repositories
CultureName = au.DisplayName
};
repository.Save(language);
unitOfWork.Flush();
//re-get
language = repository.GetByIsoCode(au.Name);
@@ -86,10 +85,10 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Perform_Get_By_Culture_Name_On_LanguageRepository()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var au = CultureInfo.GetCultureInfo("en-AU");
var language = (ILanguage)new Language(au.Name)
@@ -97,7 +96,6 @@ namespace Umbraco.Tests.Persistence.Repositories
CultureName = au.DisplayName
};
repository.Save(language);
unitOfWork.Flush();
//re-get
language = repository.GetByCultureName(au.DisplayName);
@@ -114,10 +112,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Get_WhenIdDoesntExist_ReturnsNull()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var language = repository.Get(0);
@@ -131,10 +129,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_On_LanguageRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var languages = repository.GetMany();
@@ -151,10 +149,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_With_Params_On_LanguageRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var languages = repository.GetMany(1, 2);
@@ -171,13 +169,13 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetByQuery_On_LanguageRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var query = unitOfWork.SqlContext.Query<ILanguage>().Where(x => x.IsoCode == "da-DK");
var query = scope.SqlContext.Query<ILanguage>().Where(x => x.IsoCode == "da-DK");
var result = repository.Get(query);
// Assert
@@ -191,13 +189,13 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Count_On_LanguageRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var query = unitOfWork.SqlContext.Query<ILanguage>().Where(x => x.IsoCode.StartsWith("D"));
var query = scope.SqlContext.Query<ILanguage>().Where(x => x.IsoCode.StartsWith("D"));
int count = repository.Count(query);
// Assert
@@ -209,15 +207,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_On_LanguageRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var languageBR = new Language("pt-BR") {CultureName = "pt-BR"};
repository.Save(languageBR);
unitOfWork.Flush();
// Assert
Assert.That(languageBR.HasIdentity, Is.True);
@@ -229,10 +226,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Update_On_LanguageRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var language = repository.Get(5);
@@ -240,7 +237,6 @@ namespace Umbraco.Tests.Persistence.Repositories
language.CultureName = "pt-BR";
repository.Save(language);
unitOfWork.Flush();
var languageUpdated = repository.Get(5);
@@ -255,15 +251,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Delete_On_LanguageRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var language = repository.Get(3);
repository.Delete(language);
unitOfWork.Flush();
var exists = repository.Exists(3);
@@ -276,10 +271,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Exists_On_LanguageRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var exists = repository.Exists(3);
@@ -11,7 +11,7 @@ using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Querying;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.Testing;
@@ -32,15 +32,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Cannot_Add_Duplicate_Macros()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var macro = new Macro("test1", "Test", "~/usercontrol/blah.ascx", "MyAssembly", "test.xslt", "~/views/macropartials/test.cshtml");
repository.Save(macro);
;
Assert.Throws<SqlCeException>(unitOfWork.Flush);
Assert.Throws<SqlCeException>(() => repository.Save(macro));
}
}
@@ -49,15 +49,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Cannot_Update_To_Duplicate_Macro_Alias()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var macro = repository.Get(1);
macro.Alias = "test2";
repository.Save(macro);
Assert.Throws<SqlCeException>(unitOfWork.Flush);
Assert.Throws<SqlCeException>(() => repository.Save(macro));
}
}
@@ -66,10 +66,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Instantiate_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
// Assert
Assert.That(repository, Is.Not.Null);
@@ -80,10 +80,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Get_On_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
// Act
var macro = repository.Get(1);
@@ -111,10 +111,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_On_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
// Act
var macros = repository.GetMany();
@@ -129,13 +129,13 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetByQuery_On_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
// Act
var query = unitOfWork.SqlContext.Query<IMacro>().Where(x => x.Alias.ToUpper() == "TEST1");
var query = scope.SqlContext.Query<IMacro>().Where(x => x.Alias.ToUpper() == "TEST1");
var result = repository.Get(query);
// Assert
@@ -147,13 +147,13 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Count_On_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
// Act
var query = unitOfWork.SqlContext.Query<IMacro>().Where(x => x.Name.StartsWith("Test"));
var query = scope.SqlContext.Query<IMacro>().Where(x => x.Name.StartsWith("Test"));
int count = repository.Count(query);
// Assert
@@ -165,16 +165,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_On_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
// Act
var macro = new Macro("test", "Test", "~/usercontrol/blah.ascx", "MyAssembly", "test.xslt", "~/views/macropartials/test.cshtml");
macro.Properties.Add(new MacroProperty("test", "Test", 0, "test"));
repository.Save(macro);
unitOfWork.Flush();
// Assert
Assert.That(macro.HasIdentity, Is.True);
@@ -187,10 +186,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Update_On_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
// Act
var macro = repository.Get(2);
@@ -206,7 +205,6 @@ namespace Umbraco.Tests.Persistence.Repositories
macro.XsltPath = "";
repository.Save(macro);
unitOfWork.Flush();
var macroUpdated = repository.Get(2);
@@ -229,16 +227,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Delete_On_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
// Act
var macro = repository.Get(3);
Assert.IsNotNull(macro);
repository.Delete(macro);
unitOfWork.Flush();
var exists = repository.Exists(3);
@@ -251,10 +248,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Exists_On_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
// Act
var exists = repository.Exists(3);
@@ -270,17 +267,16 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Add_Property_For_Macro()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var macro = repository.Get(1);
macro.Properties.Add(new MacroProperty("new1", "New1", 3, "test"));
repository.Save(macro);
unitOfWork.Flush();
// Assert
Assert.Greater(macro.Properties.First().Id, 0); //ensure id is returned
@@ -298,17 +294,16 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Add_New_Macro_With_Property()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var macro = new Macro("newmacro", "A new macro", "~/usercontrol/test1.ascx", "MyAssembly1", "test1.xslt", "~/views/macropartials/test1.cshtml");
macro.Properties.Add(new MacroProperty("blah1", "New1", 4, "test.editor"));
repository.Save(macro);
unitOfWork.Flush();
// Assert
var result = repository.Get(macro.Id);
@@ -324,20 +319,18 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Remove_Macro_Property()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var macro = new Macro("newmacro", "A new macro", "~/usercontrol/test1.ascx", "MyAssembly1", "test1.xslt", "~/views/macropartials/test1.cshtml");
macro.Properties.Add(new MacroProperty("blah1", "New1", 4, "test.editor"));
repository.Save(macro);
unitOfWork.Flush();
var result = repository.Get(macro.Id);
result.Properties.Remove("blah1");
repository.Save(result);
unitOfWork.Flush();
// Assert
result = repository.Get(macro.Id);
@@ -350,10 +343,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Add_Remove_Macro_Properties()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var macro = new Macro("newmacro", "A new macro", "~/usercontrol/test1.ascx", "MyAssembly1", "test1.xslt", "~/views/macropartials/test1.cshtml");
var prop1 = new MacroProperty("blah1", "New1", 4, "test.editor");
@@ -367,7 +360,6 @@ namespace Umbraco.Tests.Persistence.Repositories
macro.Properties.Add(prop2);
repository.Save(macro);
unitOfWork.Flush();
// Assert
var result = repository.Get(macro.Id);
@@ -382,21 +374,19 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Update_Property_For_Macro()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var macro = repository.Get(1);
macro.Properties.Add(new MacroProperty("new1", "New1", 3, "test"));
repository.Save(macro);
unitOfWork.Flush();
//Act
macro = repository.Get(1);
macro.Properties["new1"].Name = "this is a new name";
repository.Save(macro);
unitOfWork.Flush();
// Assert
@@ -411,21 +401,19 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Update_Macro_Property_Alias()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var macro = repository.Get(1);
macro.Properties.Add(new MacroProperty("new1", "New1", 3, "test"));
repository.Save(macro);
unitOfWork.Flush();
//Act
macro = repository.Get(1);
macro.Properties.UpdateProperty("new1", newAlias: "newAlias");
repository.Save(macro);
unitOfWork.Flush();
// Assert
var result = repository.Get(1);
@@ -441,15 +429,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void CreateTestData()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
repository.Save(new Macro("test1", "Test1", "~/usercontrol/test1.ascx", "MyAssembly1", "test1.xslt", "~/views/macropartials/test1.cshtml"));
repository.Save(new Macro("test2", "Test2", "~/usercontrol/test2.ascx", "MyAssembly2", "test2.xslt", "~/views/macropartials/test2.cshtml"));
repository.Save(new Macro("test3", "Tet3", "~/usercontrol/test3.ascx", "MyAssembly3", "test3.xslt", "~/views/macropartials/test3.cshtml"));
unitOfWork.Complete();
scope.Complete();
}
}
@@ -9,11 +9,11 @@ using Umbraco.Core.Models.EntityBase;
using Umbraco.Core.Models.Rdbms;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Core.Persistence.DatabaseModelDefinitions;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Scoping;
using Umbraco.Tests.Testing;
namespace Umbraco.Tests.Persistence.Repositories
@@ -29,13 +29,14 @@ namespace Umbraco.Tests.Persistence.Repositories
CreateTestData();
}
private MediaRepository CreateRepository(IScopeUnitOfWork unitOfWork, out MediaTypeRepository mediaTypeRepository, CacheHelper cacheHelper = null)
private MediaRepository CreateRepository(IScopeProvider provider, out MediaTypeRepository mediaTypeRepository, CacheHelper cacheHelper = null)
{
cacheHelper = cacheHelper ?? CacheHelper;
var scopeAccessor = (IScopeAccessor) provider;
mediaTypeRepository = new MediaTypeRepository(unitOfWork, cacheHelper, Logger);
var tagRepository = new TagRepository(unitOfWork, cacheHelper, Logger);
var repository = new MediaRepository(unitOfWork, cacheHelper, Logger, mediaTypeRepository, tagRepository, Mock.Of<IContentSection>());
mediaTypeRepository = new MediaTypeRepository(scopeAccessor, cacheHelper, Logger);
var tagRepository = new TagRepository(scopeAccessor, cacheHelper, Logger);
var repository = new MediaRepository(scopeAccessor, cacheHelper, Logger, mediaTypeRepository, tagRepository, Mock.Of<IContentSection>());
return repository;
}
@@ -50,12 +51,12 @@ namespace Umbraco.Tests.Persistence.Repositories
new StaticCacheProvider(),
new IsolatedRuntimeCache(t => new ObjectCacheRuntimeCacheProvider()));
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out mediaTypeRepository, cacheHelper: realCache);
var repository = CreateRepository(provider, out mediaTypeRepository, cacheHelper: realCache);
var udb = (UmbracoDatabase)unitOfWork.Database;
var udb = (UmbracoDatabase)scope.Database;
udb.EnableSqlCount = false;
@@ -63,7 +64,6 @@ namespace Umbraco.Tests.Persistence.Repositories
var media = MockedMedia.CreateSimpleMedia(mediaType, "hello", -1);
mediaTypeRepository.Save(mediaType);
repository.Save(media);
unitOfWork.Complete();
udb.EnableSqlCount = true;
@@ -92,11 +92,11 @@ namespace Umbraco.Tests.Persistence.Repositories
public void SaveMedia()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
var repository = CreateRepository(unitOfWork, out mediaTypeRepository);
var repository = CreateRepository(provider, out mediaTypeRepository);
var mediaType = mediaTypeRepository.Get(1032);
var image = MockedMedia.CreateMediaImage(mediaType, -1);
@@ -104,7 +104,6 @@ namespace Umbraco.Tests.Persistence.Repositories
// Act
mediaTypeRepository.Save(mediaType);
repository.Save(image);
unitOfWork.Flush();
var fetched = repository.Get(image.Id);
@@ -120,22 +119,20 @@ namespace Umbraco.Tests.Persistence.Repositories
public void SaveMediaMultiple()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
var repository = CreateRepository(unitOfWork, out mediaTypeRepository);
var repository = CreateRepository(provider, out mediaTypeRepository);
var mediaType = mediaTypeRepository.Get(1032);
var file = MockedMedia.CreateMediaFile(mediaType, -1);
// Act
repository.Save(file);
unitOfWork.Flush();
var image = MockedMedia.CreateMediaImage(mediaType, -1);
repository.Save(image);
unitOfWork.Flush();
// Assert
Assert.That(file.HasIdentity, Is.True);
@@ -151,11 +148,11 @@ namespace Umbraco.Tests.Persistence.Repositories
public void GetMediaIsNotDirty()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
var repository = CreateRepository(unitOfWork, out mediaTypeRepository);
var repository = CreateRepository(provider, out mediaTypeRepository);
// Act
var media = repository.Get(NodeDto.NodeIdSeed + 1);
@@ -170,17 +167,16 @@ namespace Umbraco.Tests.Persistence.Repositories
public void UpdateMedia()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
var repository = CreateRepository(unitOfWork, out mediaTypeRepository);
var repository = CreateRepository(provider, out mediaTypeRepository);
// Act
var content = repository.Get(NodeDto.NodeIdSeed + 2);
content.Name = "Test File Updated";
repository.Save(content);
unitOfWork.Flush();
var updatedContent = repository.Get(NodeDto.NodeIdSeed + 2);
@@ -194,16 +190,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void DeleteMedia()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
var repository = CreateRepository(unitOfWork, out mediaTypeRepository);
var repository = CreateRepository(provider, out mediaTypeRepository);
// Act
var media = repository.Get(NodeDto.NodeIdSeed + 2);
repository.Delete(media);
unitOfWork.Flush();
var deleted = repository.Get(NodeDto.NodeIdSeed + 2);
var exists = repository.Exists(NodeDto.NodeIdSeed + 2);
@@ -218,11 +213,11 @@ namespace Umbraco.Tests.Persistence.Repositories
public void GetMedia()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
var repository = CreateRepository(unitOfWork, out mediaTypeRepository);
var repository = CreateRepository(provider, out mediaTypeRepository);
// Act
var media = repository.Get(NodeDto.NodeIdSeed + 1);
@@ -245,14 +240,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void QueryMedia()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
var repository = CreateRepository(unitOfWork, out mediaTypeRepository);
var repository = CreateRepository(provider, out mediaTypeRepository);
// Act
var query = unitOfWork.SqlContext.Query<IMedia>().Where(x => x.Level == 2);
var query = scope.SqlContext.Query<IMedia>().Where(x => x.Level == 2);
var result = repository.Get(query);
// Assert
@@ -265,10 +260,10 @@ namespace Umbraco.Tests.Persistence.Repositories
{
// Arrange
var folderMediaType = ServiceContext.MediaTypeService.Get(1031);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out MediaTypeRepository mediaTypeRepository);
var repository = CreateRepository(provider, out MediaTypeRepository mediaTypeRepository);
// Act
for (int i = 0; i < 10; i++)
@@ -276,10 +271,10 @@ namespace Umbraco.Tests.Persistence.Repositories
var folder = MockedMedia.CreateMediaFolder(folderMediaType, -1);
repository.Save(folder);
}
unitOfWork.Flush();
var types = new[] { 1031 };
var query = unitOfWork.SqlContext.Query<IMedia>().Where(x => types.Contains(x.ContentTypeId));
var query = scope.SqlContext.Query<IMedia>().Where(x => types.Contains(x.ContentTypeId));
var result = repository.Get(query);
// Assert
@@ -296,10 +291,10 @@ namespace Umbraco.Tests.Persistence.Repositories
// Arrange
var folderMediaType = ServiceContext.MediaTypeService.Get(1031);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out MediaTypeRepository mediaTypeRepository);
var repository = CreateRepository(provider, out MediaTypeRepository mediaTypeRepository);
// Act
for (int i = 0; i < 10; i++)
@@ -307,10 +302,10 @@ namespace Umbraco.Tests.Persistence.Repositories
var folder = MockedMedia.CreateMediaFolder(folderMediaType, -1);
repository.Save(folder);
}
unitOfWork.Flush();
var types = new[] { "Folder" };
var query = unitOfWork.SqlContext.Query<IMedia>().Where(x => types.Contains(x.ContentType.Alias));
var query = scope.SqlContext.Query<IMedia>().Where(x => types.Contains(x.ContentType.Alias));
var result = repository.Get(query);
// Assert
@@ -322,13 +317,13 @@ namespace Umbraco.Tests.Persistence.Repositories
public void GetPagedResultsByQuery_FirstPage()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork, out MediaTypeRepository mediaTypeRepository);
var repository = CreateRepository(provider, out MediaTypeRepository mediaTypeRepository);
// Act
var query = unitOfWork.SqlContext.Query<IMedia>().Where(x => x.Level == 2);
var query = scope.SqlContext.Query<IMedia>().Where(x => x.Level == 2);
long totalRecords;
var result = repository.GetPage(query, 0, 1, out totalRecords, "SortOrder", Direction.Ascending, true);
@@ -343,14 +338,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void GetPagedResultsByQuery_SecondPage()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
var repository = CreateRepository(unitOfWork, out mediaTypeRepository);
var repository = CreateRepository(provider, out mediaTypeRepository);
// Act
var query = unitOfWork.SqlContext.Query<IMedia>().Where(x => x.Level == 2);
var query = scope.SqlContext.Query<IMedia>().Where(x => x.Level == 2);
long totalRecords;
var result = repository.GetPage(query, 1, 1, out totalRecords, "SortOrder", Direction.Ascending, true);
@@ -365,14 +360,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void GetPagedResultsByQuery_SinglePage()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
var repository = CreateRepository(unitOfWork, out mediaTypeRepository);
var repository = CreateRepository(provider, out mediaTypeRepository);
// Act
var query = unitOfWork.SqlContext.Query<IMedia>().Where(x => x.Level == 2);
var query = scope.SqlContext.Query<IMedia>().Where(x => x.Level == 2);
long totalRecords;
var result = repository.GetPage(query, 0, 2, out totalRecords, "SortOrder", Direction.Ascending, true);
@@ -387,14 +382,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void GetPagedResultsByQuery_DescendingOrder()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
var repository = CreateRepository(unitOfWork, out mediaTypeRepository);
var repository = CreateRepository(provider, out mediaTypeRepository);
// Act
var query = unitOfWork.SqlContext.Query<IMedia>().Where(x => x.Level == 2);
var query = scope.SqlContext.Query<IMedia>().Where(x => x.Level == 2);
long totalRecords;
var result = repository.GetPage(query, 0, 1, out totalRecords, "SortOrder", Direction.Descending, true);
@@ -409,14 +404,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void GetPagedResultsByQuery_AlternateOrder()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
var repository = CreateRepository(unitOfWork, out mediaTypeRepository);
var repository = CreateRepository(provider, out mediaTypeRepository);
// Act
var query = unitOfWork.SqlContext.Query<IMedia>().Where(x => x.Level == 2);
var query = scope.SqlContext.Query<IMedia>().Where(x => x.Level == 2);
long totalRecords;
var result = repository.GetPage(query, 0, 1, out totalRecords, "Name", Direction.Ascending, true);
@@ -431,17 +426,17 @@ namespace Umbraco.Tests.Persistence.Repositories
public void GetPagedResultsByQuery_FilterMatchingSome()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
var repository = CreateRepository(unitOfWork, out mediaTypeRepository);
var repository = CreateRepository(provider, out mediaTypeRepository);
// Act
var query = unitOfWork.SqlContext.Query<IMedia>().Where(x => x.Level == 2);
var query = scope.SqlContext.Query<IMedia>().Where(x => x.Level == 2);
long totalRecords;
var filter = unitOfWork.SqlContext.Query<IMedia>().Where(x => x.Name.Contains("File"));
var filter = scope.SqlContext.Query<IMedia>().Where(x => x.Name.Contains("File"));
var result = repository.GetPage(query, 0, 1, out totalRecords, "SortOrder", Direction.Ascending, true, filter);
// Assert
@@ -455,17 +450,17 @@ namespace Umbraco.Tests.Persistence.Repositories
public void GetPagedResultsByQuery_FilterMatchingAll()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
var repository = CreateRepository(unitOfWork, out mediaTypeRepository);
var repository = CreateRepository(provider, out mediaTypeRepository);
// Act
var query = unitOfWork.SqlContext.Query<IMedia>().Where(x => x.Level == 2);
var query = scope.SqlContext.Query<IMedia>().Where(x => x.Level == 2);
long totalRecords;
var filter = unitOfWork.SqlContext.Query<IMedia>().Where(x => x.Name.Contains("Test"));
var filter = scope.SqlContext.Query<IMedia>().Where(x => x.Name.Contains("Test"));
var result = repository.GetPage(query, 0, 1, out totalRecords, "SortOrder", Direction.Ascending, true, filter);
// Assert
@@ -479,11 +474,11 @@ namespace Umbraco.Tests.Persistence.Repositories
public void GetAllMediaByIds()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
var repository = CreateRepository(unitOfWork, out mediaTypeRepository);
var repository = CreateRepository(provider, out mediaTypeRepository);
// Act
var medias = repository.GetMany(NodeDto.NodeIdSeed + 1, NodeDto.NodeIdSeed + 2);
@@ -499,11 +494,11 @@ namespace Umbraco.Tests.Persistence.Repositories
public void GetAllMedia()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
var repository = CreateRepository(unitOfWork, out mediaTypeRepository);
var repository = CreateRepository(provider, out mediaTypeRepository);
// Act
var medias = repository.GetMany();
@@ -529,11 +524,11 @@ namespace Umbraco.Tests.Persistence.Repositories
public void ExistMedia()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
var repository = CreateRepository(unitOfWork, out mediaTypeRepository);
var repository = CreateRepository(provider, out mediaTypeRepository);
// Act
var exists = repository.Exists(NodeDto.NodeIdSeed + 1);
@@ -551,15 +546,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void CountMedia()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
var repository = CreateRepository(unitOfWork, out mediaTypeRepository);
var repository = CreateRepository(provider, out mediaTypeRepository);
// Act
int level = 2;
var query = unitOfWork.SqlContext.Query<IMedia>().Where(x => x.Level == level);
var query = scope.SqlContext.Query<IMedia>().Where(x => x.Level == level);
var result = repository.Count(query);
// Assert
@@ -7,7 +7,7 @@ using Umbraco.Core.Models.Rdbms;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Tests.Testing;
@@ -18,38 +18,38 @@ namespace Umbraco.Tests.Persistence.Repositories
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
public class MediaTypeRepositoryTest : TestWithDatabaseBase
{
private MediaTypeRepository CreateRepository(IScopeUnitOfWork unitOfWork)
private MediaTypeRepository CreateRepository(IScopeProvider provider)
{
return new MediaTypeRepository(unitOfWork, DisabledCache, Logger);
return new MediaTypeRepository((IScopeAccessor) provider, DisabledCache, Logger);
}
private EntityContainerRepository CreateContainerRepository(IScopeUnitOfWork unitOfWork)
private EntityContainerRepository CreateContainerRepository(IScopeProvider provider)
{
return new EntityContainerRepository(unitOfWork, DisabledCache, Logger, Constants.ObjectTypes.MediaTypeContainer);
return new EntityContainerRepository((IScopeAccessor) provider, DisabledCache, Logger, Constants.ObjectTypes.MediaTypeContainer);
}
[Test]
public void Can_Move()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var containerRepository = CreateContainerRepository(unitOfWork);
var repository = CreateRepository(unitOfWork);
var containerRepository = CreateContainerRepository(provider);
var repository = CreateRepository(provider);
var container1 = new EntityContainer(Constants.ObjectTypes.MediaType) { Name = "blah1" };
containerRepository.Save(container1);
unitOfWork.Flush();
var container2 = new EntityContainer(Constants.ObjectTypes.MediaType) { Name = "blah2", ParentId = container1.Id };
containerRepository.Save(container2);
unitOfWork.Flush();
var contentType = (IMediaType)MockedContentTypes.CreateVideoMediaType();
contentType.ParentId = container2.Id;
repository.Save(contentType);
unitOfWork.Flush();
//create a
var contentType2 = (IMediaType)new MediaType(contentType, "hello")
@@ -58,10 +58,10 @@ namespace Umbraco.Tests.Persistence.Repositories
};
contentType.ParentId = contentType.Id;
repository.Save(contentType2);
unitOfWork.Flush();
var result = repository.Move(contentType, container1).ToArray();
unitOfWork.Flush();
Assert.AreEqual(2, result.Length);
@@ -79,14 +79,14 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Create_Container()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var containerRepository = CreateContainerRepository(unitOfWork);
var containerRepository = CreateContainerRepository(provider);
var container = new EntityContainer(Constants.ObjectTypes.MediaType) { Name = "blah" };
containerRepository.Save(container);
unitOfWork.Flush();
Assert.That(container.Id, Is.GreaterThan(0));
var found = containerRepository.Get(container.Id);
@@ -97,19 +97,19 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Delete_Container()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var containerRepository = CreateContainerRepository(unitOfWork);
var containerRepository = CreateContainerRepository(provider);
var container = new EntityContainer(Constants.ObjectTypes.MediaType) { Name = "blah" };
containerRepository.Save(container);
unitOfWork.Flush();
Assert.That(container.Id, Is.GreaterThan(0));
// Act
containerRepository.Delete(container);
unitOfWork.Flush();
var found = containerRepository.Get(container.Id);
Assert.IsNull(found);
@@ -119,20 +119,20 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Create_Container_Containing_Media_Types()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var containerRepository = CreateContainerRepository(unitOfWork);
var repository = CreateRepository(unitOfWork);
var containerRepository = CreateContainerRepository(provider);
var repository = CreateRepository(provider);
var container = new EntityContainer(Constants.ObjectTypes.MediaType) { Name = "blah" };
containerRepository.Save(container);
unitOfWork.Flush();
var contentType = MockedContentTypes.CreateVideoMediaType();
contentType.ParentId = container.Id;
repository.Save(contentType);
unitOfWork.Flush();
Assert.AreEqual(container.Id, contentType.ParentId);
}
@@ -141,24 +141,24 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Delete_Container_Containing_Media_Types()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var containerRepository = CreateContainerRepository(unitOfWork);
var repository = CreateRepository(unitOfWork);
var containerRepository = CreateContainerRepository(provider);
var repository = CreateRepository(provider);
var container = new EntityContainer(Constants.ObjectTypes.MediaType) { Name = "blah" };
containerRepository.Save(container);
unitOfWork.Flush();
IMediaType contentType = MockedContentTypes.CreateVideoMediaType();
contentType.ParentId = container.Id;
repository.Save(contentType);
unitOfWork.Flush();
// Act
containerRepository.Delete(container);
unitOfWork.Flush();
var found = containerRepository.Get(container.Id);
Assert.IsNull(found);
@@ -173,15 +173,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_On_MediaTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var contentType = MockedContentTypes.CreateVideoMediaType();
repository.Save(contentType);
unitOfWork.Flush();
var fetched = repository.Get(contentType.Id);
@@ -201,14 +201,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Update_On_MediaTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var videoMediaType = MockedContentTypes.CreateVideoMediaType();
repository.Save(videoMediaType);
unitOfWork.Flush();
// Act
var mediaType = repository.Get(NodeDto.NodeIdSeed);
@@ -223,7 +223,7 @@ namespace Umbraco.Tests.Persistence.Repositories
DataTypeDefinitionId = -88
});
repository.Save(mediaType);
unitOfWork.Flush();
var dirty = ((MediaType) mediaType).IsDirty();
@@ -239,19 +239,19 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Delete_On_MediaTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var mediaType = MockedContentTypes.CreateVideoMediaType();
repository.Save(mediaType);
unitOfWork.Flush();
var contentType2 = repository.Get(mediaType.Id);
repository.Delete(contentType2);
unitOfWork.Flush();
var exists = repository.Exists(mediaType.Id);
@@ -264,10 +264,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Get_On_MediaTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var mediaType = repository.Get(1033); //File
@@ -283,10 +283,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Get_By_Guid_On_MediaTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var mediaType = repository.Get(1033); //File
@@ -304,15 +304,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_On_MediaTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var mediaTypes = repository.GetMany();
int count =
unitOfWork.Database.ExecuteScalar<int>(
scope.Database.ExecuteScalar<int>(
"SELECT COUNT(*) FROM umbracoNode WHERE nodeObjectType = @NodeObjectType",
new { NodeObjectType = Constants.ObjectTypes.MediaType });
@@ -326,10 +326,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_By_Guid_On_MediaTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var allGuidIds = repository.GetMany().Select(x => x.Key).ToArray();
@@ -338,7 +338,7 @@ namespace Umbraco.Tests.Persistence.Repositories
var mediaTypes = ((IReadRepository<Guid, IMediaType>)repository).GetMany(allGuidIds);
int count =
unitOfWork.Database.ExecuteScalar<int>(
scope.Database.ExecuteScalar<int>(
"SELECT COUNT(*) FROM umbracoNode WHERE nodeObjectType = @NodeObjectType",
new { NodeObjectType = Constants.ObjectTypes.MediaType });
@@ -352,10 +352,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Exists_On_MediaTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var exists = repository.Exists(1032); //Image
@@ -369,20 +369,20 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Update_MediaType_With_PropertyType_Removed()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var mediaType = MockedContentTypes.CreateVideoMediaType();
repository.Save(mediaType);
unitOfWork.Flush();
// Act
var mediaTypeV2 = repository.Get(NodeDto.NodeIdSeed);
mediaTypeV2.PropertyGroups["Media"].PropertyTypes.Remove("title");
repository.Save(mediaTypeV2);
unitOfWork.Flush();
var mediaTypeV3 = repository.Get(NodeDto.NodeIdSeed);
@@ -397,14 +397,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Verify_PropertyTypes_On_Video_MediaType()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var mediaType = MockedContentTypes.CreateVideoMediaType();
repository.Save(mediaType);
unitOfWork.Flush();
// Act
var contentType = repository.Get(NodeDto.NodeIdSeed);
@@ -419,10 +419,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Verify_PropertyTypes_On_File_MediaType()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var contentType = repository.Get(1033); //File
@@ -15,7 +15,7 @@ using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Querying;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Tests.Testing;
@@ -26,24 +26,25 @@ namespace Umbraco.Tests.Persistence.Repositories
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
public class MemberRepositoryTest : TestWithDatabaseBase
{
private MemberRepository CreateRepository(IScopeUnitOfWork unitOfWork, out MemberTypeRepository memberTypeRepository, out MemberGroupRepository memberGroupRepository)
private MemberRepository CreateRepository(IScopeProvider provider, out MemberTypeRepository memberTypeRepository, out MemberGroupRepository memberGroupRepository)
{
memberTypeRepository = new MemberTypeRepository(unitOfWork, DisabledCache, Logger);
memberGroupRepository = new MemberGroupRepository(unitOfWork, DisabledCache, Logger);
var tagRepo = new TagRepository(unitOfWork, DisabledCache, Logger);
var repository = new MemberRepository(unitOfWork, DisabledCache, Logger, memberTypeRepository, memberGroupRepository, tagRepo);
var accessor = (IScopeAccessor) provider;
memberTypeRepository = new MemberTypeRepository(accessor, DisabledCache, Logger);
memberGroupRepository = new MemberGroupRepository(accessor, DisabledCache, Logger);
var tagRepo = new TagRepository(accessor, DisabledCache, Logger);
var repository = new MemberRepository(accessor, DisabledCache, Logger, memberTypeRepository, memberGroupRepository, tagRepo);
return repository;
}
[Test]
public void GetMember()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MemberTypeRepository memberTypeRepository;
MemberGroupRepository memberGroupRepository;
var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository);
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
var member = CreateTestMember();
@@ -57,12 +58,12 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void GetMembers()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MemberTypeRepository memberTypeRepository;
MemberGroupRepository memberGroupRepository;
var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository);
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
var type = CreateTestMemberType();
var m1 = CreateTestMember(type, "Test 1", "test1@test.com", "pass1", "test1");
@@ -80,12 +81,12 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void GetAllMembers()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MemberTypeRepository memberTypeRepository;
MemberGroupRepository memberGroupRepository;
var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository);
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
var type = CreateTestMemberType();
for (var i = 0; i < 5; i++)
@@ -106,18 +107,18 @@ namespace Umbraco.Tests.Persistence.Repositories
public void QueryMember()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MemberTypeRepository memberTypeRepository;
MemberGroupRepository memberGroupRepository;
var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository);
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
var key = Guid.NewGuid();
var member = CreateTestMember(key: key);
// Act
var query = unitOfWork.SqlContext.Query<IMember>().Where(x => x.Key == key);
var query = scope.SqlContext.Query<IMember>().Where(x => x.Key == key);
var result = repository.Get(query);
// Assert
@@ -129,12 +130,12 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void SaveMember()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MemberTypeRepository memberTypeRepository;
MemberGroupRepository memberGroupRepository;
var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository);
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
var member = CreateTestMember();
@@ -154,20 +155,20 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void MemberHasBuiltinProperties()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MemberTypeRepository memberTypeRepository;
MemberGroupRepository memberGroupRepository;
var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository);
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
var memberType = MockedContentTypes.CreateSimpleMemberType();
memberTypeRepository.Save(memberType);
unitOfWork.Flush();
var member = MockedMember.CreateSimpleMember(memberType, "Johnny Hefty", "johnny@example.com", "123", "hefty");
repository.Save(member);
unitOfWork.Flush();
var sut = repository.Get(member.Id);
@@ -188,26 +189,26 @@ namespace Umbraco.Tests.Persistence.Repositories
public void SavingPreservesPassword()
{
IMember sut;
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MemberTypeRepository memberTypeRepository;
MemberGroupRepository memberGroupRepository;
var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository);
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
var memberType = MockedContentTypes.CreateSimpleMemberType();
memberTypeRepository.Save(memberType);
unitOfWork.Flush();
var member = MockedMember.CreateSimpleMember(memberType, "Johnny Hefty", "johnny@example.com", "123", "hefty");
repository.Save(member);
unitOfWork.Flush();
sut = repository.Get(member.Id);
//when the password is null it will not overwrite what is already there.
sut.RawPasswordValue = null;
repository.Save(sut);
unitOfWork.Flush();
sut = repository.Get(member.Id);
Assert.That(sut.RawPasswordValue, Is.EqualTo("123"));
@@ -218,26 +219,26 @@ namespace Umbraco.Tests.Persistence.Repositories
public void SavingUpdatesNameAndEmail()
{
IMember sut;
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MemberTypeRepository memberTypeRepository;
MemberGroupRepository memberGroupRepository;
var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository);
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
var memberType = MockedContentTypes.CreateSimpleMemberType();
memberTypeRepository.Save(memberType);
unitOfWork.Flush();
var member = MockedMember.CreateSimpleMember(memberType, "Johnny Hefty", "johnny@example.com", "123", "hefty");
repository.Save(member);
unitOfWork.Flush();
sut = repository.Get(member.Id);
sut.Username = "This is new";
sut.Email = "thisisnew@hello.com";
repository.Save(sut);
unitOfWork.Flush();
sut = repository.Get(member.Id);
Assert.That(sut.Email, Is.EqualTo("thisisnew@hello.com"));
@@ -248,7 +249,7 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void QueryMember_WithSubQuery()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
var provider = TestObjects.GetScopeProvider(Logger);
var query = provider.SqlContext.Query<IMember>().Where(x =>
((Member) x).LongStringPropertyValue.Contains("1095") &&
@@ -268,23 +269,23 @@ namespace Umbraco.Tests.Persistence.Repositories
private IMember CreateTestMember(IMemberType memberType = null, string name = null, string email = null, string password = null, string username = null, Guid? key = null)
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MemberTypeRepository memberTypeRepository;
MemberGroupRepository memberGroupRepository;
var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository);
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
if (memberType == null)
{
memberType = MockedContentTypes.CreateSimpleMemberType();
memberTypeRepository.Save(memberType);
unitOfWork.Flush();
}
var member = MockedMember.CreateSimpleMember(memberType, name ?? "Johnny Hefty", email ?? "johnny@example.com", password ?? "123", username ?? "hefty", key);
repository.Save(member);
unitOfWork.Complete();
scope.Complete();
return member;
}
@@ -292,23 +293,23 @@ namespace Umbraco.Tests.Persistence.Repositories
private IMemberType CreateTestMemberType(string alias = null)
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
MemberTypeRepository memberTypeRepository;
MemberGroupRepository memberGroupRepository;
var repository = CreateRepository(unitOfWork, out memberTypeRepository, out memberGroupRepository);
var repository = CreateRepository(provider, out memberTypeRepository, out memberGroupRepository);
var memberType = MockedContentTypes.CreateSimpleMemberType(alias);
memberTypeRepository.Save(memberType);
unitOfWork.Complete();
scope.Complete();
return memberType;
}
}
private Sql<ISqlContext> GetBaseQuery(bool isCount)
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
var provider = TestObjects.GetScopeProvider(Logger);
if (isCount)
{
var sqlCount = provider.SqlContext.Sql()
@@ -348,7 +349,7 @@ namespace Umbraco.Tests.Persistence.Repositories
private Sql<ISqlContext> GetSubquery()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
var provider = TestObjects.GetScopeProvider(Logger);
var sql = provider.SqlContext.Sql();
sql.Select("umbracoNode.id")
.From<NodeDto>()
@@ -9,7 +9,7 @@ using Umbraco.Core.Models;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Tests.Testing;
@@ -20,22 +20,22 @@ namespace Umbraco.Tests.Persistence.Repositories
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
public class MemberTypeRepositoryTest : TestWithDatabaseBase
{
private MemberTypeRepository CreateRepository(IScopeUnitOfWork unitOfWork)
private MemberTypeRepository CreateRepository(IScopeProvider provider)
{
return new MemberTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
return new MemberTypeRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
}
[Test]
public void Can_Persist_Member_Type()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var memberType = (IMemberType) MockedContentTypes.CreateSimpleMemberType();
repository.Save(memberType);
unitOfWork.Flush();
var sut = repository.Get(memberType.Id);
@@ -55,15 +55,15 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Persist_Member_Type_Same_Property_Keys()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var memberType = (IMemberType)MockedContentTypes.CreateSimpleMemberType();
repository.Save(memberType);
unitOfWork.Complete();
scope.Complete();
var propertyKeys = memberType.PropertyTypes.Select(x => x.Key).OrderBy(x => x).ToArray();
var groupKeys = memberType.PropertyGroups.Select(x => x.Key).OrderBy(x => x).ToArray();
@@ -81,36 +81,36 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Cannot_Persist_Member_Type_Without_Alias()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var memberType = MockedContentTypes.CreateSimpleMemberType();
memberType.Alias = null;
repository.Save(memberType);
Assert.Throws<InvalidOperationException>(unitOfWork.Flush);
Assert.Throws<InvalidOperationException>(() => repository.Save(memberType));
}
}
[Test]
public void Can_Get_All_Member_Types()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var memberType1 = MockedContentTypes.CreateSimpleMemberType();
repository.Save(memberType1);
unitOfWork.Flush();
var memberType2 = MockedContentTypes.CreateSimpleMemberType();
memberType2.Name = "AnotherType";
memberType2.Alias = "anotherType";
repository.Save(memberType2);
unitOfWork.Flush();
var result = repository.GetMany();
@@ -122,20 +122,20 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_All_Member_Types_By_Guid_Ids()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var memberType1 = MockedContentTypes.CreateSimpleMemberType();
repository.Save(memberType1);
unitOfWork.Flush();
var memberType2 = MockedContentTypes.CreateSimpleMemberType();
memberType2.Name = "AnotherType";
memberType2.Alias = "anotherType";
repository.Save(memberType2);
unitOfWork.Flush();
var result = ((IReadRepository<Guid, IMemberType>)repository).GetMany(memberType1.Key, memberType2.Key);
@@ -147,20 +147,20 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_Member_Types_By_Guid_Id()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var memberType1 = MockedContentTypes.CreateSimpleMemberType();
repository.Save(memberType1);
unitOfWork.Flush();
var memberType2 = MockedContentTypes.CreateSimpleMemberType();
memberType2.Name = "AnotherType";
memberType2.Alias = "anotherType";
repository.Save(memberType2);
unitOfWork.Flush();
var result = repository.Get(memberType1.Key);
@@ -175,22 +175,22 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_All_Members_When_No_Properties_Assigned()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var memberType1 = MockedContentTypes.CreateSimpleMemberType();
memberType1.PropertyTypeCollection.Clear();
repository.Save(memberType1);
unitOfWork.Flush();
var memberType2 = MockedContentTypes.CreateSimpleMemberType();
memberType2.PropertyTypeCollection.Clear();
memberType2.Name = "AnotherType";
memberType2.Alias = "anotherType";
repository.Save(memberType2);
unitOfWork.Flush();
var result = repository.GetMany();
@@ -203,14 +203,14 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_Member_Type_By_Id()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
IMemberType memberType = MockedContentTypes.CreateSimpleMemberType();
repository.Save(memberType);
unitOfWork.Flush();
memberType = repository.Get(memberType.Id);
Assert.That(memberType, Is.Not.Null);
}
@@ -219,14 +219,14 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_Member_Type_By_Guid_Id()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
IMemberType memberType = MockedContentTypes.CreateSimpleMemberType();
repository.Save(memberType);
unitOfWork.Flush();
memberType = repository.Get(memberType.Key);
Assert.That(memberType, Is.Not.Null);
}
@@ -235,14 +235,14 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Built_In_Member_Type_Properties_Are_Automatically_Added_When_Creating()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
IMemberType memberType = MockedContentTypes.CreateSimpleMemberType();
repository.Save(memberType);
unitOfWork.Flush();
memberType = repository.Get(memberType.Id);
@@ -256,16 +256,16 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Built_In_Member_Type_Properties_Are_Not_Reused_For_Different_Member_Types()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
IMemberType memberType1 = MockedContentTypes.CreateSimpleMemberType();
IMemberType memberType2 = MockedContentTypes.CreateSimpleMemberType("test2");
repository.Save(memberType1);
repository.Save(memberType2);
unitOfWork.Flush();
var m1Ids = memberType1.PropertyTypes.Select(x => x.Id).ToArray();
var m2Ids = memberType2.PropertyTypes.Select(x => x.Id).ToArray();
@@ -278,19 +278,19 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Delete_MemberType()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
IMemberType memberType = MockedContentTypes.CreateSimpleMemberType();
repository.Save(memberType);
unitOfWork.Flush();
var contentType2 = repository.Get(memberType.Id);
repository.Delete(contentType2);
unitOfWork.Flush();
var exists = repository.Exists(memberType.Id);
@@ -9,7 +9,7 @@ using Umbraco.Core.Models.Membership;
using Umbraco.Core.Models.Rdbms;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.Testing;
@@ -22,13 +22,13 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void CreateNotification()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repo = new NotificationsRepository(unitOfWork);
var repo = new NotificationsRepository((IScopeAccessor) provider);
var node = new NodeDto { CreateDate = DateTime.Now, Level = 1, NodeObjectType = Constants.ObjectTypes.ContentItem, ParentId = -1, Path = "-1,123", SortOrder = 1, Text = "hello", Trashed = false, UniqueId = Guid.NewGuid(), UserId = 0 };
var result = unitOfWork.Database.Insert(node);
var result = scope.Database.Insert(node);
var entity = Mock.Of<IEntity>(e => e.Id == node.NodeId);
var user = Mock.Of<IUser>(e => e.Id == node.UserId);
@@ -44,14 +44,14 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void GetUserNotifications()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repo = new NotificationsRepository(unitOfWork);
var repo = new NotificationsRepository((IScopeAccessor) provider);
var userDto = new UserDto { Email = "test", Login = "test", Password = "test", UserName = "test", UserLanguage = "en", CreateDate = DateTime.Now, UpdateDate = DateTime.Now };
unitOfWork.Database.Insert(userDto);
scope.Database.Insert(userDto);
var userNew = Mock.Of<IUser>(e => e.Id == userDto.Id);
var userAdmin = Mock.Of<IUser>(e => e.Id == 0);
@@ -59,7 +59,7 @@ namespace Umbraco.Tests.Persistence.Repositories
for (var i = 0; i < 10; i++)
{
var node = new NodeDto { CreateDate = DateTime.Now, Level = 1, NodeObjectType = Constants.ObjectTypes.ContentItem, ParentId = -1, Path = "-1," + i, SortOrder = 1, Text = "hello" + i, Trashed = false, UniqueId = Guid.NewGuid(), UserId = 0 };
var result = unitOfWork.Database.Insert(node);
var result = scope.Database.Insert(node);
var entity = Mock.Of<IEntity>(e => e.Id == node.NodeId);
var notification = repo.CreateNotification((i%2 == 0) ? userAdmin : userNew, entity, i.ToString(CultureInfo.InvariantCulture));
}
@@ -73,23 +73,23 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void GetEntityNotifications()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repo = new NotificationsRepository(unitOfWork);
var repo = new NotificationsRepository((IScopeAccessor) provider);
var node1 = new NodeDto { CreateDate = DateTime.Now, Level = 1, NodeObjectType = Constants.ObjectTypes.ContentItem, ParentId = -1, Path = "-1,1", SortOrder = 1, Text = "hello1", Trashed = false, UniqueId = Guid.NewGuid(), UserId = 0 };
unitOfWork.Database.Insert(node1);
scope.Database.Insert(node1);
var entity1 = Mock.Of<IEntity>(e => e.Id == node1.NodeId);
var node2 = new NodeDto { CreateDate = DateTime.Now, Level = 1, NodeObjectType = Constants.ObjectTypes.ContentItem, ParentId = -1, Path = "-1,2", SortOrder = 1, Text = "hello2", Trashed = false, UniqueId = Guid.NewGuid(), UserId = 0 };
unitOfWork.Database.Insert(node2);
scope.Database.Insert(node2);
var entity2 = Mock.Of<IEntity>(e => e.Id == node2.NodeId);
for (var i = 0; i < 10; i++)
{
var userDto = new UserDto { Email = "test" + i, Login = "test" + i, Password = "test", UserName = "test" + i, UserLanguage = "en", CreateDate = DateTime.Now, UpdateDate = DateTime.Now };
unitOfWork.Database.Insert(userDto);
scope.Database.Insert(userDto);
var userNew = Mock.Of<IUser>(e => e.Id == userDto.Id);
var notification = repo.CreateNotification(userNew, (i%2 == 0) ? entity1 : entity2, i.ToString(CultureInfo.InvariantCulture));
}
@@ -103,23 +103,23 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Delete_By_Entity()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repo = new NotificationsRepository(unitOfWork);
var repo = new NotificationsRepository((IScopeAccessor) provider);
var node1 = new NodeDto { CreateDate = DateTime.Now, Level = 1, NodeObjectType = Constants.ObjectTypes.ContentItem, ParentId = -1, Path = "-1,1", SortOrder = 1, Text = "hello1", Trashed = false, UniqueId = Guid.NewGuid(), UserId = 0 };
unitOfWork.Database.Insert(node1);
scope.Database.Insert(node1);
var entity1 = Mock.Of<IEntity>(e => e.Id == node1.NodeId);
var node2 = new NodeDto { CreateDate = DateTime.Now, Level = 1, NodeObjectType = Constants.ObjectTypes.ContentItem, ParentId = -1, Path = "-1,2", SortOrder = 1, Text = "hello2", Trashed = false, UniqueId = Guid.NewGuid(), UserId = 0 };
unitOfWork.Database.Insert(node2);
scope.Database.Insert(node2);
var entity2 = Mock.Of<IEntity>(e => e.Id == node2.NodeId);
for (var i = 0; i < 10; i++)
{
var userDto = new UserDto { Email = "test" + i, Login = "test" + i, Password = "test", UserName = "test" + i, UserLanguage = "en", CreateDate = DateTime.Now, UpdateDate = DateTime.Now };
unitOfWork.Database.Insert(userDto);
scope.Database.Insert(userDto);
var userNew = Mock.Of<IUser>(e => e.Id == userDto.Id);
var notification = repo.CreateNotification(userNew, (i%2 == 0) ? entity1 : entity2, i.ToString(CultureInfo.InvariantCulture));
}
@@ -133,14 +133,14 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Delete_By_User()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repo = new NotificationsRepository(unitOfWork);
var repo = new NotificationsRepository((IScopeAccessor) provider);
var userDto = new UserDto { Email = "test", Login = "test", Password = "test", UserName = "test", UserLanguage = "en", CreateDate = DateTime.Now, UpdateDate = DateTime.Now };
unitOfWork.Database.Insert(userDto);
scope.Database.Insert(userDto);
var userNew = Mock.Of<IUser>(e => e.Id == userDto.Id);
var userAdmin = Mock.Of<IUser>(e => e.Id == 0);
@@ -148,7 +148,7 @@ namespace Umbraco.Tests.Persistence.Repositories
for (var i = 0; i < 10; i++)
{
var node = new NodeDto { CreateDate = DateTime.Now, Level = 1, NodeObjectType = Constants.ObjectTypes.ContentItem, ParentId = -1, Path = "-1," + i, SortOrder = 1, Text = "hello" + i, Trashed = false, UniqueId = Guid.NewGuid(), UserId = 0 };
var result = unitOfWork.Database.Insert(node);
var result = scope.Database.Insert(node);
var entity = Mock.Of<IEntity>(e => e.Id == node.NodeId);
var notification = repo.CreateNotification((i%2 == 0) ? userAdmin : userNew, entity, i.ToString(CultureInfo.InvariantCulture));
}
@@ -3,10 +3,10 @@ using NUnit.Framework;
using Umbraco.Core.IO;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.PropertyEditors;
using Umbraco.Core.Composing;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.Testing;
@@ -37,21 +37,19 @@ namespace Umbraco.Tests.Persistence.Repositories
{
// unless noted otherwise, no changes / 7.2.8
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new PartialViewRepository(unitOfWork, _fileSystem);
var repository = new PartialViewRepository(_fileSystem);
var partialView = new PartialView(PartialViewType.PartialView, "test-path-1.cshtml") { Content = "// partialView" };
repository.Save(partialView);
unitOfWork.Flush();
Assert.IsTrue(_fileSystem.FileExists("test-path-1.cshtml"));
Assert.AreEqual("test-path-1.cshtml", partialView.Path);
Assert.AreEqual("/Views/Partials/test-path-1.cshtml", partialView.VirtualPath);
partialView = new PartialView(PartialViewType.PartialView, "path-2/test-path-2.cshtml") { Content = "// partialView" };
repository.Save(partialView);
unitOfWork.Flush();
Assert.IsTrue(_fileSystem.FileExists("path-2/test-path-2.cshtml"));
Assert.AreEqual("path-2\\test-path-2.cshtml", partialView.Path); // fixed in 7.3 - 7.2.8 does not update the path
Assert.AreEqual("/Views/Partials/path-2/test-path-2.cshtml", partialView.VirtualPath);
@@ -63,7 +61,6 @@ namespace Umbraco.Tests.Persistence.Repositories
partialView = new PartialView(PartialViewType.PartialView, "path-2\\test-path-3.cshtml") { Content = "// partialView" };
repository.Save(partialView);
unitOfWork.Flush();
Assert.IsTrue(_fileSystem.FileExists("path-2/test-path-3.cshtml"));
Assert.AreEqual("path-2\\test-path-3.cshtml", partialView.Path);
Assert.AreEqual("/Views/Partials/path-2/test-path-3.cshtml", partialView.VirtualPath);
@@ -9,7 +9,7 @@ using Umbraco.Core.Models;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Tests.Testing;
@@ -26,10 +26,10 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var content = CreateTestData(3).ToArray();
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repo = new PublicAccessRepository(unitOfWork, CacheHelper, Logger);
var repo = new PublicAccessRepository((IScopeAccessor) provider, CacheHelper, Logger);
var entry = new PublicAccessEntry(content[0], content[1], content[2], new[]
{
@@ -40,10 +40,10 @@ namespace Umbraco.Tests.Persistence.Repositories
},
});
repo.Save(entry);
unitOfWork.Flush();
repo.Delete(entry);
unitOfWork.Flush();
entry = repo.Get(entry.Key);
Assert.IsNull(entry);
@@ -55,11 +55,11 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var content = CreateTestData(3).ToArray();
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
unitOfWork.Database.AsUmbracoDatabase().EnableSqlTrace = true;
var repo = new PublicAccessRepository(unitOfWork, CacheHelper, Logger);
scope.Database.AsUmbracoDatabase().EnableSqlTrace = true;
var repo = new PublicAccessRepository((IScopeAccessor) provider, CacheHelper, Logger);
var entry = new PublicAccessEntry(content[0], content[1], content[2], new[]
{
@@ -70,7 +70,7 @@ namespace Umbraco.Tests.Persistence.Repositories
},
});
repo.Save(entry);
unitOfWork.Flush();
var found = repo.GetMany().ToArray();
@@ -95,11 +95,11 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var content = CreateTestData(3).ToArray();
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
unitOfWork.Database.AsUmbracoDatabase().EnableSqlTrace = true;
var repo = new PublicAccessRepository(unitOfWork, CacheHelper, Logger);
scope.Database.AsUmbracoDatabase().EnableSqlTrace = true;
var repo = new PublicAccessRepository((IScopeAccessor) provider, CacheHelper, Logger);
var entry = new PublicAccessEntry(content[0], content[1], content[2], new[]
{
@@ -115,7 +115,7 @@ namespace Umbraco.Tests.Persistence.Repositories
},
});
repo.Save(entry);
unitOfWork.Flush();
var found = repo.GetMany().ToArray();
@@ -141,10 +141,10 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var content = CreateTestData(3).ToArray();
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repo = new PublicAccessRepository(unitOfWork, CacheHelper, Logger);
var repo = new PublicAccessRepository((IScopeAccessor) provider, CacheHelper, Logger);
var entry = new PublicAccessEntry(content[0], content[1], content[2], new[]
{
@@ -155,7 +155,7 @@ namespace Umbraco.Tests.Persistence.Repositories
},
});
repo.Save(entry);
unitOfWork.Flush();
//re-get
entry = repo.Get(entry.Key);
@@ -164,7 +164,7 @@ namespace Umbraco.Tests.Persistence.Repositories
entry.Rules.First().RuleType = "asdf";
repo.Save(entry);
unitOfWork.Flush();
//re-get
entry = repo.Get(entry.Key);
@@ -179,10 +179,10 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var content = CreateTestData(3).ToArray();
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repo = new PublicAccessRepository(unitOfWork, CacheHelper, Logger);
var repo = new PublicAccessRepository((IScopeAccessor) provider, CacheHelper, Logger);
var entry = new PublicAccessEntry(content[0], content[1], content[2], new[]
{
@@ -193,7 +193,7 @@ namespace Umbraco.Tests.Persistence.Repositories
},
});
repo.Save(entry);
unitOfWork.Flush();
//re-get
entry = repo.Get(entry.Key);
@@ -207,10 +207,10 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var content = CreateTestData(30).ToArray();
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repo = new PublicAccessRepository(unitOfWork, CacheHelper, Logger);
var repo = new PublicAccessRepository((IScopeAccessor) provider, CacheHelper, Logger);
var allEntries = new List<PublicAccessEntry>();
for (int i = 0; i < 10; i++)
@@ -226,7 +226,7 @@ namespace Umbraco.Tests.Persistence.Repositories
}
var entry1 = new PublicAccessEntry(content[i], content[i + 1], content[i + 2], rules);
repo.Save(entry1);
unitOfWork.Flush();
allEntries.Add(entry1);
}
@@ -249,7 +249,7 @@ namespace Umbraco.Tests.Persistence.Repositories
}
allEntries[i].AddRule("newrule" + i, "newrule" + i);
repo.Save(allEntries[i]);
unitOfWork.Flush();
}
}
@@ -271,10 +271,10 @@ namespace Umbraco.Tests.Persistence.Repositories
{
var content = CreateTestData(3).ToArray();
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repo = new PublicAccessRepository(unitOfWork, CacheHelper, Logger);
var repo = new PublicAccessRepository((IScopeAccessor) provider, CacheHelper, Logger);
var entry1 = new PublicAccessEntry(content[0], content[1], content[2], new[]
{
@@ -296,7 +296,7 @@ namespace Umbraco.Tests.Persistence.Repositories
});
repo.Save(entry2);
unitOfWork.Flush();
var found = repo.GetMany(entry1.Key).ToArray();
Assert.AreEqual(1, found.Count());
@@ -304,26 +304,27 @@ namespace Umbraco.Tests.Persistence.Repositories
}
private DocumentRepository CreateRepository(IScopeUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository)
private DocumentRepository CreateRepository(IScopeProvider provider, out ContentTypeRepository contentTypeRepository)
{
var templateRepository = new TemplateRepository(unitOfWork, CacheHelper, Logger, Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>(), Mock.Of<ITemplatesSection>());
var tagRepository = new TagRepository(unitOfWork, CacheHelper, Logger);
contentTypeRepository = new ContentTypeRepository(unitOfWork, CacheHelper, Logger, templateRepository);
var repository = new DocumentRepository(unitOfWork, CacheHelper, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of<IContentSection>());
var accessor = (IScopeAccessor) provider;
var templateRepository = new TemplateRepository(accessor, CacheHelper, Logger, Mock.Of<ITemplatesSection>(), Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>());
var tagRepository = new TagRepository(accessor, CacheHelper, Logger);
contentTypeRepository = new ContentTypeRepository(accessor, CacheHelper, Logger, templateRepository);
var repository = new DocumentRepository(accessor, CacheHelper, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of<IContentSection>());
return repository;
}
private IEnumerable<IContent> CreateTestData(int count)
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
ContentTypeRepository ctRepo;
var repo = CreateRepository(unitOfWork, out ctRepo);
var repo = CreateRepository(provider, out ctRepo);
var ct = MockedContentTypes.CreateBasicContentType("testing");
ctRepo.Save(ct);
unitOfWork.Flush();
var result = new List<IContent>();
for (int i = 0; i < count; i++)
{
@@ -331,7 +332,7 @@ namespace Umbraco.Tests.Persistence.Repositories
repo.Save(c);
result.Add(c);
}
unitOfWork.Complete();
scope.Complete();
return result;
}
@@ -5,7 +5,7 @@ using Umbraco.Core;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Tests.Testing;
@@ -26,11 +26,11 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void CanSaveAndGet()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
var provider = TestObjects.GetScopeProvider(Logger);
using (var uow = provider.CreateUnitOfWork())
using (var scope = provider.CreateScope())
{
var repo = CreateRepository(uow);
var repo = CreateRepository(provider);
var rurl = new RedirectUrl
{
ContentKey = _textpage.Key,
@@ -42,9 +42,9 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreNotEqual(0, rurl.Id);
}
using (var uow = provider.CreateUnitOfWork())
using (var scope = provider.CreateScope())
{
var repo = CreateRepository(uow);
var repo = CreateRepository(provider);
var rurl = repo.GetMostRecentUrl("blah");
scope.Complete();
@@ -56,13 +56,13 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void CanSaveAndGetMostRecent()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
var provider = TestObjects.GetScopeProvider(Logger);
Assert.AreNotEqual(_textpage.Id, _otherpage.Id);
using (var uow = provider.CreateUnitOfWork())
using (var scope = provider.CreateScope())
{
var repo = CreateRepository(uow);
var repo = CreateRepository(provider);
var rurl = new RedirectUrl
{
ContentKey = _textpage.Key,
@@ -90,9 +90,9 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreNotEqual(0, rurl.Id);
}
using (var uow = provider.CreateUnitOfWork())
using (var scope = provider.CreateScope())
{
var repo = CreateRepository(uow);
var repo = CreateRepository(provider);
var rurl = repo.GetMostRecentUrl("blah");
scope.Complete();
@@ -104,11 +104,11 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void CanSaveAndGetByContent()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
var provider = TestObjects.GetScopeProvider(Logger);
using (var uow = provider.CreateUnitOfWork())
using (var scope = provider.CreateScope())
{
var repo = CreateRepository(uow);
var repo = CreateRepository(provider);
var rurl = new RedirectUrl
{
ContentKey = _textpage.Key,
@@ -133,9 +133,9 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreNotEqual(0, rurl.Id);
}
using (var uow = provider.CreateUnitOfWork())
using (var scope = provider.CreateScope())
{
var repo = CreateRepository(uow);
var repo = CreateRepository(provider);
var rurls = repo.GetContentUrls(_textpage.Key).ToArray();
scope.Complete();
@@ -148,11 +148,11 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void CanSaveAndDelete()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
var provider = TestObjects.GetScopeProvider(Logger);
using (var uow = provider.CreateUnitOfWork())
using (var scope = provider.CreateScope())
{
var repo = CreateRepository(uow);
var repo = CreateRepository(provider);
var rurl = new RedirectUrl
{
ContentKey = _textpage.Key,
@@ -174,9 +174,9 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreNotEqual(0, rurl.Id);
}
using (var uow = provider.CreateUnitOfWork())
using (var scope = provider.CreateScope())
{
var repo = CreateRepository(uow);
var repo = CreateRepository(provider);
repo.DeleteContentUrls(_textpage.Key);
scope.Complete();
@@ -186,9 +186,9 @@ namespace Umbraco.Tests.Persistence.Repositories
}
}
private IRedirectUrlRepository CreateRepository(IScopeUnitOfWork uow)
private IRedirectUrlRepository CreateRepository(IScopeProvider provider)
{
return new RedirectUrlRepository(uow, CacheHelper, Logger);
return new RedirectUrlRepository((IScopeAccessor) provider, CacheHelper, Logger);
}
private IContent _textpage, _subpage, _otherpage, _trashed;
@@ -9,7 +9,7 @@ using Umbraco.Core.Models;
using Umbraco.Core.Models.Rdbms;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Tests.Testing;
@@ -27,10 +27,11 @@ namespace Umbraco.Tests.Persistence.Repositories
CreateTestData();
}
private RelationRepository CreateRepository(IScopeUnitOfWork unitOfWork, out RelationTypeRepository relationTypeRepository)
private RelationRepository CreateRepository(IScopeProvider provider, out RelationTypeRepository relationTypeRepository)
{
relationTypeRepository = new RelationTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new RelationRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), relationTypeRepository);
var accessor = (IScopeAccessor) provider;
relationTypeRepository = new RelationTypeRepository(accessor, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new RelationRepository(accessor, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), relationTypeRepository);
return repository;
}
@@ -38,17 +39,17 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_On_RelationRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
RelationTypeRepository repositoryType;
var repository = CreateRepository(unitOfWork, out repositoryType);
var repository = CreateRepository(provider, out repositoryType);
// Act
var relationType = repositoryType.Get(1);
var relation = new Relation(NodeDto.NodeIdSeed + 2, NodeDto.NodeIdSeed + 3, relationType);
repository.Save(relation);
unitOfWork.Flush();
// Assert
Assert.That(relation, Is.Not.Null);
@@ -60,17 +61,17 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Update_On_RelationRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
RelationTypeRepository repositoryType;
var repository = CreateRepository(unitOfWork, out repositoryType);
var repository = CreateRepository(provider, out repositoryType);
// Act
var relation = repository.Get(1);
relation.Comment = "This relation has been updated";
repository.Save(relation);
unitOfWork.Flush();
var relationUpdated = repository.Get(1);
@@ -85,16 +86,16 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Delete_On_RelationRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
RelationTypeRepository repositoryType;
var repository = CreateRepository(unitOfWork, out repositoryType);
var repository = CreateRepository(provider, out repositoryType);
// Act
var relation = repository.Get(2);
repository.Delete(relation);
unitOfWork.Flush();
var exists = repository.Exists(2);
@@ -107,11 +108,11 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Get_On_RelationRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
RelationTypeRepository repositoryType;
var repository = CreateRepository(unitOfWork, out repositoryType);
var repository = CreateRepository(provider, out repositoryType);
// Act
var relation = repository.Get(1);
@@ -129,11 +130,11 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_On_RelationRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
RelationTypeRepository repositoryType;
var repository = CreateRepository(unitOfWork, out repositoryType);
var repository = CreateRepository(provider, out repositoryType);
// Act
var relations = repository.GetMany();
@@ -150,11 +151,11 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_With_Params_On_RelationRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
RelationTypeRepository repositoryType;
var repository = CreateRepository(unitOfWork, out repositoryType);
var repository = CreateRepository(provider, out repositoryType);
// Act
var relations = repository.GetMany(1, 2);
@@ -171,11 +172,11 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Exists_On_RelationRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
RelationTypeRepository repositoryType;
var repository = CreateRepository(unitOfWork, out repositoryType);
var repository = CreateRepository(provider, out repositoryType);
// Act
var exists = repository.Exists(2);
@@ -191,14 +192,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Count_On_RelationRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
RelationTypeRepository repositoryType;
var repository = CreateRepository(unitOfWork, out repositoryType);
var repository = CreateRepository(provider, out repositoryType);
// Act
var query = unitOfWork.SqlContext.Query<IRelation>().Where(x => x.ParentId == NodeDto.NodeIdSeed + 2);
var query = scope.SqlContext.Query<IRelation>().Where(x => x.ParentId == NodeDto.NodeIdSeed + 2);
int count = repository.Count(query);
// Assert
@@ -210,14 +211,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetByQuery_On_RelationRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
RelationTypeRepository repositoryType;
var repository = CreateRepository(unitOfWork, out repositoryType);
var repository = CreateRepository(provider, out repositoryType);
// Act
var query = unitOfWork.SqlContext.Query<IRelation>().Where(x => x.RelationTypeId == RelationTypeDto.NodeIdSeed);
var query = scope.SqlContext.Query<IRelation>().Where(x => x.RelationTypeId == RelationTypeDto.NodeIdSeed);
var relations = repository.Get(query);
// Assert
@@ -232,11 +233,11 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Delete_Content_And_Verify_Relation_Is_Removed()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
RelationTypeRepository repositoryType;
var repository = CreateRepository(unitOfWork, out repositoryType);
var repository = CreateRepository(provider, out repositoryType);
var content = ServiceContext.ContentService.GetById(NodeDto.NodeIdSeed + 3);
ServiceContext.ContentService.Delete(content, 0);
@@ -262,15 +263,15 @@ namespace Umbraco.Tests.Persistence.Repositories
var relateContent = new RelationType(Constants.ObjectTypes.Document, new Guid("C66BA18E-EAF3-4CFF-8A22-41B16D66A972"), "relateContentOnCopy") { IsBidirectional = true, Name = "Relate Content on Copy" };
var relateContentType = new RelationType(Constants.ObjectTypes.DocumentType, new Guid("A2CB7800-F571-4787-9638-BC48539A0EFB"), "relateContentTypeOnCopy") { IsBidirectional = true, Name = "Relate ContentType on Copy" };
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var relationTypeRepository = new RelationTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var relationRepository = new RelationRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), relationTypeRepository);
var relationTypeRepository = new RelationTypeRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var relationRepository = new RelationRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), relationTypeRepository);
relationTypeRepository.Save(relateContent);
relationTypeRepository.Save(relateContentType);
unitOfWork.Flush();
//Create and Save ContentType "umbTextpage" -> (NodeDto.NodeIdSeed)
ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage");
@@ -293,7 +294,7 @@ namespace Umbraco.Tests.Persistence.Repositories
var relation2 = new Relation(textpage.Id, subpage2.Id, relateContent) { Comment = string.Empty };
relationRepository.Save(relation);
relationRepository.Save(relation2);
unitOfWork.Complete();
scope.Complete();
}
}
}
@@ -9,7 +9,7 @@ using Umbraco.Core.Models;
using Umbraco.Core.Models.Rdbms;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.Testing;
@@ -26,9 +26,9 @@ namespace Umbraco.Tests.Persistence.Repositories
CreateTestData();
}
private RelationTypeRepository CreateRepository(IScopeUnitOfWork unitOfWork)
private RelationTypeRepository CreateRepository(IScopeProvider provider)
{
return new RelationTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
return new RelationTypeRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
}
@@ -36,10 +36,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_On_RelationTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var relateMemberToContent = new RelationType(Constants.ObjectTypes.Member,
@@ -47,7 +47,6 @@ namespace Umbraco.Tests.Persistence.Repositories
"relateMemberToContent") { IsBidirectional = true, Name = "Relate Member to Content" };
repository.Save(relateMemberToContent);
unitOfWork.Flush();
// Assert
Assert.That(relateMemberToContent.HasIdentity, Is.True);
@@ -59,17 +58,16 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Update_On_RelationTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var relationType = repository.Get(3);
relationType.Alias = relationType.Alias + "Updated";
relationType.Name = relationType.Name + " Updated";
repository.Save(relationType);
unitOfWork.Flush();
var relationTypeUpdated = repository.Get(3);
@@ -85,15 +83,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Delete_On_RelationTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var relationType = repository.Get(3);
repository.Delete(relationType);
unitOfWork.Flush();
var exists = repository.Exists(3);
@@ -106,10 +103,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Get_On_RelationTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var relationType = repository.Get(RelationTypeDto.NodeIdSeed);
@@ -126,10 +123,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_On_RelationTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var relationTypes = repository.GetMany();
@@ -146,10 +143,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_With_Params_On_RelationTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var relationTypes = repository.GetMany(2, 3);
@@ -166,10 +163,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Exists_On_RelationTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var exists = repository.Exists(3);
@@ -185,13 +182,13 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Count_On_RelationTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var query = unitOfWork.SqlContext.Query<IRelationType>().Where(x => x.Alias.StartsWith("relate"));
var query = scope.SqlContext.Query<IRelationType>().Where(x => x.Alias.StartsWith("relate"));
int count = repository.Count(query);
// Assert
@@ -203,14 +200,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetByQuery_On_RelationTypeRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var childObjType = Constants.ObjectTypes.DocumentType;
var query = unitOfWork.SqlContext.Query<IRelationType>().Where(x => x.ChildObjectType == childObjType);
var query = scope.SqlContext.Query<IRelationType>().Where(x => x.ChildObjectType == childObjType);
var result = repository.Get(query);
// Assert
@@ -232,14 +229,14 @@ namespace Umbraco.Tests.Persistence.Repositories
var relateContent = new RelationType(Constants.ObjectTypes.Document, new Guid("C66BA18E-EAF3-4CFF-8A22-41B16D66A972"), "relateContentOnCopy") { IsBidirectional = true, Name = "Relate Content on Copy" };
var relateContentType = new RelationType(Constants.ObjectTypes.DocumentType, new Guid("A2CB7800-F571-4787-9638-BC48539A0EFB"), "relateContentTypeOnCopy") { IsBidirectional = true, Name = "Relate ContentType on Copy" };
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new RelationTypeRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new RelationTypeRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
repository.Save(relateContent);//Id 2
repository.Save(relateContentType);//Id 3
unitOfWork.Complete();
scope.Complete();
}
}
}
@@ -9,8 +9,8 @@ using Umbraco.Core.IO;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.PropertyEditors;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.Testing;
@@ -44,12 +44,12 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Instantiate_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
// Act
var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of<IContentSection>());
var repository = new ScriptRepository(_fileSystem, Mock.Of<IContentSection>());
// Assert
Assert.That(repository, Is.Not.Null);
@@ -60,15 +60,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_On_ScriptRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of<IContentSection>());
var repository = new ScriptRepository(_fileSystem, Mock.Of<IContentSection>());
// Act
var script = new Script("test-add-script.js") { Content = "/// <reference name=\"MicrosoftAjax.js\"/>" };
repository.Save(script);
unitOfWork.Flush();
//Assert
Assert.That(_fileSystem.FileExists("test-add-script.js"), Is.True);
@@ -79,19 +79,19 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Update_On_ScriptRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of<IContentSection>());
var repository = new ScriptRepository(_fileSystem, Mock.Of<IContentSection>());
// Act
var script = new Script("test-updated-script.js") { Content = "/// <reference name=\"MicrosoftAjax.js\"/>" };
repository.Save(script);
unitOfWork.Flush();
script.Content = "/// <reference name=\"MicrosoftAjax-Updated.js\"/>";
repository.Save(script);
unitOfWork.Flush();
var scriptUpdated = repository.Get("test-updated-script.js");
@@ -105,15 +105,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Delete_On_ScriptRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of<IContentSection>());
var repository = new ScriptRepository(_fileSystem, Mock.Of<IContentSection>());
// Act
var script = repository.Get("test-script.js");
repository.Delete(script);
unitOfWork.Flush();
// Assert
@@ -125,10 +125,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Get_On_ScriptRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of<IContentSection>());
var repository = new ScriptRepository(_fileSystem, Mock.Of<IContentSection>());
// Act
var exists = repository.Get("test-script.js");
@@ -144,10 +144,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_On_ScriptRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of<IContentSection>());
var repository = new ScriptRepository(_fileSystem, Mock.Of<IContentSection>());
var script = new Script("test-script1.js") { Content = "/// <reference name=\"MicrosoftAjax.js\"/>" };
repository.Save(script);
@@ -155,7 +155,7 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.Save(script2);
var script3 = new Script("test-script3.js") { Content = "/// <reference name=\"MicrosoftAjax.js\"/>" };
repository.Save(script3);
unitOfWork.Flush();
// Act
var scripts = repository.GetMany();
@@ -172,10 +172,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_With_Params_On_ScriptRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of<IContentSection>());
var repository = new ScriptRepository(_fileSystem, Mock.Of<IContentSection>());
var script = new Script("test-script1.js") { Content = "/// <reference name=\"MicrosoftAjax.js\"/>" };
repository.Save(script);
@@ -183,7 +183,7 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.Save(script2);
var script3 = new Script("test-script3.js") { Content = "/// <reference name=\"MicrosoftAjax.js\"/>" };
repository.Save(script3);
unitOfWork.Flush();
// Act
var scripts = repository.GetMany("test-script1.js", "test-script2.js");
@@ -200,10 +200,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Exists_On_ScriptRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of<IContentSection>());
var repository = new ScriptRepository(_fileSystem, Mock.Of<IContentSection>());
// Act
var exists = repository.Exists("test-script.js");
@@ -219,20 +219,20 @@ namespace Umbraco.Tests.Persistence.Repositories
const string content = "/// <reference name=\"MicrosoftAjax.js\"/>";
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of<IContentSection>());
var repository = new ScriptRepository(_fileSystem, Mock.Of<IContentSection>());
var script = new Script("test-move-script.js") { Content = content };
repository.Save(script);
unitOfWork.Flush();
// Act
script = repository.Get("test-move-script.js");
script.Path = "moved/test-move-script.js";
repository.Save(script);
unitOfWork.Flush();
var existsOld = repository.Exists("test-move-script.js");
var existsNew = repository.Exists("moved/test-move-script.js");
@@ -252,14 +252,14 @@ namespace Umbraco.Tests.Persistence.Repositories
{
// unless noted otherwise, no changes / 7.2.8
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new ScriptRepository(unitOfWork, _fileSystem, Mock.Of<IContentSection>());
var repository = new ScriptRepository(_fileSystem, Mock.Of<IContentSection>());
var script = new Script("test-path-1.js") { Content = "// script" };
repository.Save(script);
unitOfWork.Flush();
Assert.IsTrue(_fileSystem.FileExists("test-path-1.js"));
Assert.AreEqual("test-path-1.js", script.Path);
Assert.AreEqual("/scripts/test-path-1.js", script.VirtualPath);
@@ -267,14 +267,14 @@ namespace Umbraco.Tests.Persistence.Repositories
//ensure you can prefix the same path as the root path name
script = new Script("scripts/path-2/test-path-2.js") { Content = "// script" };
repository.Save(script);
unitOfWork.Flush();
Assert.IsTrue(_fileSystem.FileExists("scripts/path-2/test-path-2.js"));
Assert.AreEqual("scripts\\path-2\\test-path-2.js", script.Path);
Assert.AreEqual("/scripts/scripts/path-2/test-path-2.js", script.VirtualPath);
script = new Script("path-2/test-path-2.js") { Content = "// script" };
repository.Save(script);
unitOfWork.Flush();
Assert.IsTrue(_fileSystem.FileExists("path-2/test-path-2.js"));
Assert.AreEqual("path-2\\test-path-2.js", script.Path); // fixed in 7.3 - 7.2.8 does not update the path
Assert.AreEqual("/scripts/path-2/test-path-2.js", script.VirtualPath);
@@ -286,7 +286,7 @@ namespace Umbraco.Tests.Persistence.Repositories
script = new Script("path-2\\test-path-3.js") { Content = "// script" };
repository.Save(script);
unitOfWork.Flush();
Assert.IsTrue(_fileSystem.FileExists("path-2/test-path-3.js"));
Assert.AreEqual("path-2\\test-path-3.js", script.Path);
Assert.AreEqual("/scripts/path-2/test-path-3.js", script.VirtualPath);
@@ -6,7 +6,7 @@ using Umbraco.Core.Cache;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.Testing;
@@ -26,24 +26,23 @@ namespace Umbraco.Tests.Persistence.Repositories
CreateTestData();
}
private ServerRegistrationRepository CreateRepository(IScopeUnitOfWork unitOfWork)
private ServerRegistrationRepository CreateRepository(IScopeProvider provider)
{
return new ServerRegistrationRepository(unitOfWork, Logger);
return new ServerRegistrationRepository((IScopeAccessor) provider, Logger);
}
[Test]
public void Cannot_Add_Duplicate_Server_Identities()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var server = new ServerRegistration("http://shazwazza.com", "COMPUTER1", DateTime.Now);
repository.Save(server);
Assert.Throws<SqlCeException>(unitOfWork.Flush);
Assert.Throws<SqlCeException>(() => repository.Save(server));
}
}
@@ -52,15 +51,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Cannot_Update_To_Duplicate_Server_Identities()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var server = repository.Get(1);
server.ServerIdentity = "COMPUTER2";
repository.Save(server);
Assert.Throws<SqlCeException>(unitOfWork.Flush);
Assert.Throws<SqlCeException>(() => repository.Save(server));
}
}
@@ -69,10 +68,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Instantiate_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Assert
Assert.That(repository, Is.Not.Null);
@@ -83,10 +82,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Get_On_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var server = repository.Get(1);
@@ -104,10 +103,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_On_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var servers = repository.GetMany();
@@ -124,9 +123,9 @@ namespace Umbraco.Tests.Persistence.Repositories
//public void Can_Perform_GetByQuery_On_Repository()
//{
// // Arrange
// var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
// var provider = TestObjects.GetScopeProvider(Logger);
// using (var unitOfWork = provider.GetUnitOfWork())
// using (var repository = CreateRepository(unitOfWork))
// using (var repository = CreateRepository(provider))
// {
// // Act
// var query = Query<IServerRegistration>.Builder.Where(x => x.ServerIdentity.ToUpper() == "COMPUTER3");
@@ -141,9 +140,9 @@ namespace Umbraco.Tests.Persistence.Repositories
//public void Can_Perform_Count_On_Repository()
//{
// // Arrange
// var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
// var provider = TestObjects.GetScopeProvider(Logger);
// using (var unitOfWork = provider.GetUnitOfWork())
// using (var repository = CreateRepository(unitOfWork))
// using (var repository = CreateRepository(provider))
// {
// // Act
// var query = Query<IServerRegistration>.Builder.Where(x => x.ServerAddress.StartsWith("http://"));
@@ -158,15 +157,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_On_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var server = new ServerRegistration("http://shazwazza.com", "COMPUTER4", DateTime.Now);
repository.Save(server);
unitOfWork.Flush();
// Assert
Assert.That(server.HasIdentity, Is.True);
@@ -178,10 +176,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Update_On_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var server = repository.Get(2);
@@ -189,7 +187,6 @@ namespace Umbraco.Tests.Persistence.Repositories
server.IsActive = true;
repository.Save(server);
unitOfWork.Flush();
var serverUpdated = repository.Get(2);
@@ -204,16 +201,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Delete_On_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var server = repository.Get(3);
Assert.IsNotNull(server);
repository.Delete(server);
unitOfWork.Flush();
var exists = repository.Exists(3);
@@ -226,10 +222,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Exists_On_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var exists = repository.Exists(3);
@@ -249,15 +245,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void CreateTestData()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.Save(new ServerRegistration("http://localhost", "COMPUTER1", DateTime.Now) { IsActive = true });
repository.Save(new ServerRegistration("http://www.mydomain.com", "COMPUTER2", DateTime.Now));
repository.Save(new ServerRegistration("https://www.another.domain.com", "Computer3", DateTime.Now));
unitOfWork.Complete();
scope.Complete();
}
}
@@ -11,7 +11,6 @@ using Umbraco.Core.Models;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.Testing;
@@ -37,11 +36,11 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Instantiate_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
// Act
var repository = new StylesheetRepository(unitOfWork, _fileSystem);
var repository = new StylesheetRepository(_fileSystem);
// Assert
@@ -53,15 +52,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new StylesheetRepository(unitOfWork, _fileSystem);
var repository = new StylesheetRepository(_fileSystem);
// Act
var stylesheet = new Stylesheet("test-add.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" };
repository.Save(stylesheet);
unitOfWork.Flush();
//Assert
Assert.That(_fileSystem.FileExists("test-add.css"), Is.True);
@@ -72,20 +71,20 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Update()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new StylesheetRepository(unitOfWork, _fileSystem);
var repository = new StylesheetRepository(_fileSystem);
// Act
var stylesheet = new Stylesheet("test-update.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" };
repository.Save(stylesheet);
unitOfWork.Flush();
var stylesheetUpdate = repository.Get("test-update.css");
stylesheetUpdate.Content = "body { color:#000; }";
repository.Save(stylesheetUpdate);
unitOfWork.Flush();
var stylesheetUpdated = repository.Get("test-update.css");
@@ -100,20 +99,20 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Update_With_Property()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new StylesheetRepository(unitOfWork, _fileSystem);
var repository = new StylesheetRepository(_fileSystem);
// Act
var stylesheet = new Stylesheet("test-update.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" };
repository.Save(stylesheet);
unitOfWork.Flush();
stylesheet.AddProperty(new StylesheetProperty("Test", "p", "font-size:2em;"));
repository.Save(stylesheet);
unitOfWork.Flush();
//re-get
stylesheet = repository.Get(stylesheet.Name);
@@ -131,15 +130,15 @@ p{font-size:2em;}"));
public void Throws_When_Adding_Duplicate_Properties()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new StylesheetRepository(unitOfWork, _fileSystem);
var repository = new StylesheetRepository(_fileSystem);
// Act
var stylesheet = new Stylesheet("test-update.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" };
repository.Save(stylesheet);
unitOfWork.Flush();
stylesheet.AddProperty(new StylesheetProperty("Test", "p", "font-size:2em;"));
@@ -151,18 +150,18 @@ p{font-size:2em;}"));
public void Can_Perform_Delete()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new StylesheetRepository(unitOfWork, _fileSystem);
var repository = new StylesheetRepository(_fileSystem);
// Act
var stylesheet = new Stylesheet("test-delete.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" };
repository.Save(stylesheet);
unitOfWork.Flush();
repository.Delete(stylesheet);
unitOfWork.Flush();
//Assert
Assert.That(_fileSystem.FileExists("test-delete.css"), Is.False);
@@ -173,10 +172,10 @@ p{font-size:2em;}"));
public void Can_Perform_Get()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new StylesheetRepository(unitOfWork, _fileSystem);
var repository = new StylesheetRepository(_fileSystem);
// Act
var stylesheet = repository.Get("styles.css");
@@ -193,14 +192,14 @@ p{font-size:2em;}"));
public void Can_Perform_GetAll()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new StylesheetRepository(unitOfWork, _fileSystem);
var repository = new StylesheetRepository(_fileSystem);
var stylesheet = new Stylesheet("styles-v2.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" };
repository.Save(stylesheet);
unitOfWork.Flush();
// Act
var stylesheets = repository.GetMany();
@@ -217,14 +216,14 @@ p{font-size:2em;}"));
public void Can_Perform_GetAll_With_Params()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new StylesheetRepository(unitOfWork, _fileSystem);
var repository = new StylesheetRepository(_fileSystem);
var stylesheet = new Stylesheet("styles-v2.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" };
repository.Save(stylesheet);
unitOfWork.Flush();
// Act
var stylesheets = repository.GetMany("styles-v2.css", "styles.css");
@@ -241,10 +240,10 @@ p{font-size:2em;}"));
public void Can_Perform_Exists()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new StylesheetRepository(unitOfWork, _fileSystem);
var repository = new StylesheetRepository(_fileSystem);
// Act
var exists = repository.Exists("styles.css");
@@ -259,21 +258,21 @@ p{font-size:2em;}"));
{
// unless noted otherwise, no changes / 7.2.8
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = new StylesheetRepository(unitOfWork, _fileSystem);
var repository = new StylesheetRepository(_fileSystem);
var stylesheet = new Stylesheet("test-path-1.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" };
repository.Save(stylesheet);
unitOfWork.Flush();
Assert.IsTrue(_fileSystem.FileExists("test-path-1.css"));
Assert.AreEqual("test-path-1.css", stylesheet.Path);
Assert.AreEqual("/css/test-path-1.css", stylesheet.VirtualPath);
stylesheet = new Stylesheet("path-2/test-path-2.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" };
repository.Save(stylesheet);
unitOfWork.Flush();
Assert.IsTrue(_fileSystem.FileExists("path-2/test-path-2.css"));
Assert.AreEqual("path-2\\test-path-2.css", stylesheet.Path); // fixed in 7.3 - 7.2.8 does not update the path
Assert.AreEqual("/css/path-2/test-path-2.css", stylesheet.VirtualPath);
@@ -285,7 +284,7 @@ p{font-size:2em;}"));
stylesheet = new Stylesheet("path-2\\test-path-3.css") { Content = "body { color:#000; } .bold {font-weight:bold;}" };
repository.Save(stylesheet);
unitOfWork.Flush();
Assert.IsTrue(_fileSystem.FileExists("path-2/test-path-3.css"));
Assert.AreEqual("path-2\\test-path-3.css", stylesheet.Path);
Assert.AreEqual("/css/path-2/test-path-3.css", stylesheet.VirtualPath);
@@ -6,7 +6,7 @@ using Umbraco.Core.IO;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Tests.Testing;
@@ -17,9 +17,9 @@ namespace Umbraco.Tests.Persistence.Repositories
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
public class TagRepositoryTest : TestWithDatabaseBase
{
private TagRepository CreateRepository(IScopeUnitOfWork unitOfWork)
private TagRepository CreateRepository(IScopeProvider provider)
{
var tagRepository = new TagRepository(unitOfWork, DisabledCache, Logger);
var tagRepository = new TagRepository((IScopeAccessor) provider, DisabledCache, Logger);
return tagRepository;
}
@@ -27,10 +27,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_On_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var tag = new Tag()
{
@@ -40,7 +40,7 @@ namespace Umbraco.Tests.Persistence.Repositories
// Act
repository.Save(tag);
unitOfWork.Flush();
// Assert
Assert.That(tag.HasIdentity, Is.True);
@@ -51,10 +51,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Multiple_Adds_On_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var tag = new Tag()
{
@@ -64,7 +64,7 @@ namespace Umbraco.Tests.Persistence.Repositories
// Act
repository.Save(tag);
unitOfWork.Flush();
var tag2 = new Tag()
{
@@ -72,7 +72,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Text = "Test2"
};
repository.Save(tag2);
unitOfWork.Flush();
// Assert
Assert.That(tag.HasIdentity, Is.True);
@@ -85,22 +85,22 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Create_Tag_Relations()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content.Id,
contentType.PropertyTypes.First().Id,
@@ -117,22 +117,22 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Append_Tag_Relations()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content.Id,
contentType.PropertyTypes.First().Id,
@@ -158,22 +158,22 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Replace_Tag_Relations()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content.Id,
contentType.PropertyTypes.First().Id,
@@ -202,22 +202,22 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Merge_Tag_Relations()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content.Id,
contentType.PropertyTypes.First().Id,
@@ -244,22 +244,22 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Clear_Tag_Relations()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content.Id,
contentType.PropertyTypes.First().Id,
@@ -282,22 +282,22 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Remove_Specific_Tags_From_Property()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content.Id,
contentType.PropertyTypes.First().Id,
@@ -328,24 +328,24 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_Tags_For_Content_By_Id()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content1 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content1);
var content2 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content2);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content1.Id,
contentType.PropertyTypes.First().Id,
@@ -374,24 +374,24 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_Tags_For_Content_By_Key()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content1 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content1);
var content2 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content2);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content1.Id,
contentType.PropertyTypes.First().Id,
@@ -421,24 +421,24 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_All()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content1 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content1);
var content2 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content2);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content1.Id,
contentType.PropertyTypes.First().Id,
@@ -458,24 +458,24 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_All_With_Ids()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content1 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content1);
var content2 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content2);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var tags = new[]
{
new Tag {Text = "tag1", Group = "test"},
@@ -500,24 +500,24 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_Tags_For_Content_For_Group()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content1 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content1);
var content2 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content2);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content1.Id,
contentType.PropertyTypes.First().Id,
@@ -546,22 +546,22 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_Tags_For_Property_By_Id()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content1 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content1);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content1.Id,
contentType.PropertyTypes.First().Id,
@@ -593,22 +593,22 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_Tags_For_Property_By_Key()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content1 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content1);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content1.Id,
contentType.PropertyTypes.First().Id,
@@ -639,22 +639,22 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_Tags_For_Property_For_Group()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content1 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content1);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content1.Id,
contentType.PropertyTypes.First().Id,
@@ -686,30 +686,30 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_Tags_For_Entity_Type()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var mediaRepository = CreateMediaRepository(unitOfWork, out mediaTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
var mediaRepository = CreateMediaRepository(provider, out mediaTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content1 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content1);
unitOfWork.Flush();
var mediaType = MockedContentTypes.CreateImageMediaType("image2");
mediaTypeRepository.Save(mediaType);
unitOfWork.Flush();
var media1 = MockedMedia.CreateMediaImage(mediaType, -1);
mediaRepository.Save(media1);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content1.Id,
contentType.PropertyTypes.First().Id,
@@ -746,30 +746,30 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_Tags_For_Entity_Type_For_Group()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var mediaRepository = CreateMediaRepository(unitOfWork, out mediaTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
var mediaRepository = CreateMediaRepository(provider, out mediaTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content1 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content1);
unitOfWork.Flush();
var mediaType = MockedContentTypes.CreateImageMediaType("image2");
mediaTypeRepository.Save(mediaType);
unitOfWork.Flush();
var media1 = MockedMedia.CreateMediaImage(mediaType, -1);
mediaRepository.Save(media1);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content1.Id,
contentType.PropertyTypes.First().Id,
@@ -801,22 +801,22 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Cascade_Deletes_Tag_Relations()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content1 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content1);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content1.Id,
contentType.PropertyTypes.First().Id,
@@ -830,9 +830,9 @@ namespace Umbraco.Tests.Persistence.Repositories
contentRepository.Delete(content1);
unitOfWork.Flush();
Assert.AreEqual(0, unitOfWork.Database.ExecuteScalar<int>(
Assert.AreEqual(0, scope.Database.ExecuteScalar<int>(
"SELECT COUNT(*) FROM cmsTagRelationship WHERE nodeId=@nodeId AND propertyTypeId=@propTypeId",
new { nodeId = content1.Id, propTypeId = contentType.PropertyTypes.First().Id }));
}
@@ -841,36 +841,36 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_Tagged_Entities_For_Tag_Group()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var mediaRepository = CreateMediaRepository(unitOfWork, out mediaTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
var mediaRepository = CreateMediaRepository(provider, out mediaTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content1 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content1);
unitOfWork.Flush();
var content2 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content2);
unitOfWork.Flush();
var mediaType = MockedContentTypes.CreateImageMediaType("image2");
mediaTypeRepository.Save(mediaType);
unitOfWork.Flush();
var media1 = MockedMedia.CreateMediaImage(mediaType, -1);
mediaRepository.Save(media1);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content1.Id,
contentType.PropertyTypes.First().Id,
@@ -927,36 +927,36 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Get_Tagged_Entities_For_Tag()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
MediaTypeRepository mediaTypeRepository;
ContentTypeRepository contentTypeRepository;
var contentRepository = CreateContentRepository(unitOfWork, out contentTypeRepository);
var mediaRepository = CreateMediaRepository(unitOfWork, out mediaTypeRepository);
var contentRepository = CreateContentRepository(provider, out contentTypeRepository);
var mediaRepository = CreateMediaRepository(provider, out mediaTypeRepository);
//create data to relate to
var contentType = MockedContentTypes.CreateSimpleContentType("test", "Test");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
unitOfWork.Flush();
var content1 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content1);
unitOfWork.Flush();
var content2 = MockedContent.CreateSimpleContent(contentType);
contentRepository.Save(content2);
unitOfWork.Flush();
var mediaType = MockedContentTypes.CreateImageMediaType("image2");
mediaTypeRepository.Save(mediaType);
unitOfWork.Flush();
var media1 = MockedMedia.CreateMediaImage(mediaType, -1);
mediaRepository.Save(media1);
unitOfWork.Flush();
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
repository.AssignTagsToProperty(
content1.Id,
contentType.PropertyTypes.First().Id,
@@ -1006,20 +1006,22 @@ namespace Umbraco.Tests.Persistence.Repositories
}
}
private DocumentRepository CreateContentRepository(IScopeUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository)
private DocumentRepository CreateContentRepository(IScopeProvider provider, out ContentTypeRepository contentTypeRepository)
{
var templateRepository = new TemplateRepository(unitOfWork, DisabledCache, Logger, Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>(), Mock.Of<ITemplatesSection>());
var tagRepository = new TagRepository(unitOfWork, DisabledCache, Logger);
contentTypeRepository = new ContentTypeRepository(unitOfWork, DisabledCache, Logger, templateRepository);
var repository = new DocumentRepository(unitOfWork, DisabledCache, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of<IContentSection>());
var accessor = (IScopeAccessor) provider;
var templateRepository = new TemplateRepository(accessor, DisabledCache, Logger, Mock.Of<ITemplatesSection>(), Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>());
var tagRepository = new TagRepository(accessor, DisabledCache, Logger);
contentTypeRepository = new ContentTypeRepository(accessor, DisabledCache, Logger, templateRepository);
var repository = new DocumentRepository(accessor, DisabledCache, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of<IContentSection>());
return repository;
}
private MediaRepository CreateMediaRepository(IScopeUnitOfWork unitOfWork, out MediaTypeRepository mediaTypeRepository)
private MediaRepository CreateMediaRepository(IScopeProvider provider, out MediaTypeRepository mediaTypeRepository)
{
var tagRepository = new TagRepository(unitOfWork, DisabledCache, Logger);
mediaTypeRepository = new MediaTypeRepository(unitOfWork, DisabledCache, Logger);
var repository = new MediaRepository(unitOfWork, DisabledCache, Logger, mediaTypeRepository, tagRepository, Mock.Of<IContentSection>());
var accessor = (IScopeAccessor) provider;
var tagRepository = new TagRepository(accessor, DisabledCache, Logger);
mediaTypeRepository = new MediaTypeRepository(accessor, DisabledCache, Logger);
var repository = new MediaRepository(accessor, DisabledCache, Logger, mediaTypeRepository, tagRepository, Mock.Of<IContentSection>());
return repository;
}
}
@@ -5,7 +5,7 @@ using Umbraco.Core;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.Testing;
@@ -18,10 +18,10 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Delete()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repo = new TaskRepository(unitOfWork, CacheHelper, Logger);
var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger);
var created = DateTime.Now;
var task = new Task(new TaskType("asdfasdf"))
@@ -33,10 +33,10 @@ namespace Umbraco.Tests.Persistence.Repositories
OwnerUserId = 0
};
repo.Save(task);
unitOfWork.Flush();
repo.Delete(task);
unitOfWork.Flush();
task = repo.Get(task.Id);
Assert.IsNull(task);
@@ -46,10 +46,10 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Add()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repo = new TaskRepository(unitOfWork, CacheHelper, Logger);
var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger);
var created = DateTime.Now;
repo.Save(new Task(new TaskType("asdfasdf"))
@@ -60,7 +60,7 @@ namespace Umbraco.Tests.Persistence.Repositories
EntityId = -1,
OwnerUserId = 0
});
unitOfWork.Flush();
var found = repo.GetMany().ToArray();
@@ -79,10 +79,10 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Update()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repo = new TaskRepository(unitOfWork, CacheHelper, Logger);
var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger);
var task = new Task(new TaskType("asdfasdf"))
{
@@ -94,7 +94,7 @@ namespace Umbraco.Tests.Persistence.Repositories
};
repo.Save(task);
unitOfWork.Flush();
//re-get
task = repo.Get(task.Id);
@@ -103,7 +103,7 @@ namespace Umbraco.Tests.Persistence.Repositories
task.Closed = true;
repo.Save(task);
unitOfWork.Flush();
//re-get
task = repo.Get(task.Id);
@@ -116,10 +116,10 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Get_By_Id()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repo = new TaskRepository(unitOfWork, CacheHelper, Logger);
var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger);
var task = new Task(new TaskType("asdfasdf"))
{
@@ -131,7 +131,7 @@ namespace Umbraco.Tests.Persistence.Repositories
};
repo.Save(task);
unitOfWork.Flush();
//re-get
task = repo.Get(task.Id);
@@ -145,10 +145,10 @@ namespace Umbraco.Tests.Persistence.Repositories
{
CreateTestData(false, 20);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repo = new TaskRepository(unitOfWork, CacheHelper, Logger);
var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger);
var found = repo.GetMany().ToArray();
Assert.AreEqual(20, found.Count());
@@ -161,10 +161,10 @@ namespace Umbraco.Tests.Persistence.Repositories
CreateTestData(false, 10);
CreateTestData(true, 5);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repo = new TaskRepository(unitOfWork, CacheHelper, Logger);
var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger);
var found = repo.GetTasks(includeClosed: true).ToArray();
Assert.AreEqual(15, found.Count());
@@ -177,10 +177,10 @@ namespace Umbraco.Tests.Persistence.Repositories
CreateTestData(false, 10, -20);
CreateTestData(false, 5, -21);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repo = new TaskRepository(unitOfWork, CacheHelper, Logger);
var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger);
var found = repo.GetTasks(itemId:-20).ToArray();
Assert.AreEqual(10, found.Count());
@@ -193,10 +193,10 @@ namespace Umbraco.Tests.Persistence.Repositories
CreateTestData(false, 10);
CreateTestData(true, 5);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repo = new TaskRepository(unitOfWork, CacheHelper, Logger);
var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger);
var found = repo.GetTasks(includeClosed: false);
Assert.AreEqual(10, found.Count());
@@ -205,10 +205,10 @@ namespace Umbraco.Tests.Persistence.Repositories
private void CreateTestData(bool closed, int count, int entityId = -1)
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repo = new TaskRepository(unitOfWork, CacheHelper, Logger);
var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger);
for (int i = 0; i < count; i++)
{
@@ -222,7 +222,7 @@ namespace Umbraco.Tests.Persistence.Repositories
});
}
unitOfWork.Complete();
scope.Complete();
}
}
}
@@ -4,7 +4,7 @@ using NUnit.Framework;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.Testing;
@@ -17,12 +17,12 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Delete()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var taskType = new TaskType("asdfasdf");
var repo = new TaskRepository(unitOfWork, CacheHelper, Logger);
var taskTypeRepo = new TaskTypeRepository(unitOfWork, CacheHelper, Logger);
var repo = new TaskRepository((IScopeAccessor) provider, CacheHelper, Logger);
var taskTypeRepo = new TaskTypeRepository((IScopeAccessor) provider, CacheHelper, Logger);
var created = DateTime.Now;
var task = new Task(taskType)
@@ -34,12 +34,10 @@ namespace Umbraco.Tests.Persistence.Repositories
OwnerUserId = 0
};
repo.Save(task);
unitOfWork.Flush();
var alltasktypes = taskTypeRepo.GetMany();
taskTypeRepo.Delete(taskType);
unitOfWork.Flush();
Assert.AreEqual(alltasktypes.Count() - 1, taskTypeRepo.GetMany().Count());
Assert.AreEqual(0, repo.GetMany().Count());
@@ -11,7 +11,7 @@ using Umbraco.Core.IO;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Tests.Testing;
@@ -25,10 +25,11 @@ namespace Umbraco.Tests.Persistence.Repositories
private IFileSystem _masterPageFileSystem;
private IFileSystem _viewsFileSystem;
private ITemplateRepository CreateRepository(IScopeUnitOfWork unitOfWork, ITemplatesSection templatesSection = null)
private ITemplateRepository CreateRepository(IScopeProvider provider, ITemplatesSection templatesSection = null)
{
return new TemplateRepository(unitOfWork, DisabledCache, Logger, _masterPageFileSystem, _viewsFileSystem,
templatesSection ?? Mock.Of<ITemplatesSection>(t => t.DefaultRenderingEngine == RenderingEngine.Mvc));
return new TemplateRepository((IScopeAccessor) provider, DisabledCache, Logger,
templatesSection ?? Mock.Of<ITemplatesSection>(t => t.DefaultRenderingEngine == RenderingEngine.Mvc),
_masterPageFileSystem, _viewsFileSystem);
}
public override void SetUp()
@@ -43,10 +44,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Instantiate_Repository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Assert
Assert.That(repository, Is.Not.Null);
@@ -58,10 +59,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_MasterPage_Detect_Content()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var template = new Template("test", "test")
@@ -69,7 +70,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Content = @"<%@ Master Language=""C#"" %>"
};
repository.Save(template);
unitOfWork.Flush();
//Assert
Assert.That(repository.Get("test"), Is.Not.Null);
@@ -82,15 +83,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_MasterPage_With_Default_Content()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork, Mock.Of<ITemplatesSection>(x => x.DefaultRenderingEngine == RenderingEngine.WebForms));
var repository = CreateRepository(provider, Mock.Of<ITemplatesSection>(x => x.DefaultRenderingEngine == RenderingEngine.WebForms));
// Act
var template = new Template("test", "test");
repository.Save(template);
unitOfWork.Flush();
//Assert
Assert.That(repository.Get("test"), Is.Not.Null);
@@ -109,21 +110,21 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_MasterPage_With_Default_Content_With_Parent()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork, Mock.Of<ITemplatesSection>(x => x.DefaultRenderingEngine == RenderingEngine.WebForms));
var repository = CreateRepository(provider, Mock.Of<ITemplatesSection>(x => x.DefaultRenderingEngine == RenderingEngine.WebForms));
//NOTE: This has to be persisted first
var template = new Template("test", "test");
repository.Save(template);
unitOfWork.Flush();
// Act
var template2 = new Template("test2", "test2");
template2.SetMasterTemplate(template);
repository.Save(template2);
unitOfWork.Flush();
//Assert
Assert.That(repository.Get("test2"), Is.Not.Null);
@@ -139,15 +140,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_View()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var template = new Template("test", "test");
repository.Save(template);
unitOfWork.Flush();
//Assert
Assert.That(repository.Get("test"), Is.Not.Null);
@@ -160,10 +161,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_View_With_Default_Content()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var template = new Template("test", "test")
@@ -171,7 +172,7 @@ namespace Umbraco.Tests.Persistence.Repositories
Content = ViewHelper.GetDefaultFileContent()
};
repository.Save(template);
unitOfWork.Flush();
//Assert
Assert.That(repository.Get("test"), Is.Not.Null);
@@ -187,21 +188,21 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_View_With_Default_Content_With_Parent()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
//NOTE: This has to be persisted first
var template = new Template("test", "test");
repository.Save(template);
unitOfWork.Flush();
// Act
var template2 = new Template("test2", "test2");
template2.SetMasterTemplate(template);
repository.Save(template2);
unitOfWork.Flush();
//Assert
Assert.That(repository.Get("test2"), Is.Not.Null);
@@ -216,10 +217,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Add_Unique_Alias()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var template = new Template("test", "test")
@@ -227,14 +228,14 @@ namespace Umbraco.Tests.Persistence.Repositories
Content = ViewHelper.GetDefaultFileContent()
};
repository.Save(template);
unitOfWork.Flush();
var template2 = new Template("test", "test")
{
Content = ViewHelper.GetDefaultFileContent()
};
repository.Save(template2);
unitOfWork.Flush();
//Assert
Assert.AreEqual("test1", template2.Alias);
@@ -246,10 +247,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Update_Unique_Alias()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var template = new Template("test", "test")
@@ -257,18 +258,18 @@ namespace Umbraco.Tests.Persistence.Repositories
Content = ViewHelper.GetDefaultFileContent()
};
repository.Save(template);
unitOfWork.Flush();
var template2 = new Template("test1", "test1")
{
Content = ViewHelper.GetDefaultFileContent()
};
repository.Save(template2);
unitOfWork.Flush();
template.Alias = "test1";
repository.Save(template);
unitOfWork.Flush();
//Assert
Assert.AreEqual("test11", template.Alias);
@@ -282,10 +283,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Update_MasterPage()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var template = new Template("test", "test")
@@ -293,11 +294,11 @@ namespace Umbraco.Tests.Persistence.Repositories
Content = @"<%@ Master Language=""C#"" %>"
};
repository.Save(template);
unitOfWork.Flush();
template.Content = @"<%@ Master Language=""VB"" %>";
repository.Save(template);
unitOfWork.Flush();
var updated = repository.Get("test");
@@ -313,10 +314,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Update_View()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
// Act
var template = new Template("test", "test")
@@ -324,11 +325,11 @@ namespace Umbraco.Tests.Persistence.Repositories
Content = ViewHelper.GetDefaultFileContent()
};
repository.Save(template);
unitOfWork.Flush();
template.Content += "<html></html>";
repository.Save(template);
unitOfWork.Flush();
var updated = repository.Get("test");
@@ -342,23 +343,23 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Delete_MasterPage()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var template = new Template("test", "test")
{
Content = @"<%@ Master Language=""C#"" %>"
};
repository.Save(template);
unitOfWork.Flush();
// Act
var templates = repository.Get("test");
Assert.That(_masterPageFileSystem.FileExists("test.master"), Is.True);
repository.Delete(templates);
unitOfWork.Flush();
// Assert
Assert.IsNull(repository.Get("test"));
@@ -370,23 +371,23 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Delete_View()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var template = new Template("test", "test")
{
Content = ViewHelper.GetDefaultFileContent()
};
repository.Save(template);
unitOfWork.Flush();
// Act
var templates = repository.Get("test");
Assert.That(_viewsFileSystem.FileExists("test.cshtml"), Is.True);
repository.Delete(templates);
unitOfWork.Flush();
// Assert
Assert.IsNull(repository.Get("test"));
@@ -398,21 +399,21 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Delete_When_Assigned_To_Doc()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var templateRepository = CreateRepository(unitOfWork);
var templateRepository = CreateRepository(provider);
var tagRepository = new TagRepository(unitOfWork, DisabledCache, Logger);
var contentTypeRepository = new ContentTypeRepository(unitOfWork, DisabledCache, Logger, templateRepository);
var contentRepo = new DocumentRepository(unitOfWork, DisabledCache, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of<IContentSection>());
var tagRepository = new TagRepository((IScopeAccessor) provider, DisabledCache, Logger);
var contentTypeRepository = new ContentTypeRepository((IScopeAccessor) provider, DisabledCache, Logger, templateRepository);
var contentRepo = new DocumentRepository((IScopeAccessor) provider, DisabledCache, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of<IContentSection>());
var contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage2", "Textpage");
ServiceContext.FileService.SaveTemplate(contentType.DefaultTemplate); // else, FK violation on contentType!
contentTypeRepository.Save(contentType);
var textpage = MockedContent.CreateSimpleContent(contentType);
contentRepo.Save(textpage);
unitOfWork.Flush();
var template = new Template("test", "test")
@@ -420,16 +421,16 @@ namespace Umbraco.Tests.Persistence.Repositories
Content = @"<%@ Master Language=""C#"" %>"
};
templateRepository.Save(template);
unitOfWork.Flush();
textpage.Template = template;
contentRepo.Save(textpage);
unitOfWork.Flush();
// Act
var templates = templateRepository.Get("test");
templateRepository.Delete(templates);
unitOfWork.Flush();
// Assert
Assert.IsNull(templateRepository.Get("test"));
@@ -440,10 +441,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Delete_On_Nested_Templates()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var parent = new Template("parent", "parent")
{
@@ -464,12 +465,12 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.Save(parent);
repository.Save(child);
repository.Save(baby);
unitOfWork.Flush();
// Act
var templates = repository.Get("parent");
repository.Delete(templates);
unitOfWork.Flush();
// Assert
Assert.IsNull(repository.Get("test"));
@@ -480,12 +481,12 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Get_Template_Tree()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
CreateHierarchy(repository, unitOfWork);
CreateHierarchy(repository);
// Act
var rootNode = repository.GetTemplateNode("parent");
@@ -507,12 +508,12 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Get_All()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var created = CreateHierarchy(repository, unitOfWork).ToArray();
var created = CreateHierarchy(repository).ToArray();
// Act
var all = repository.GetAll();
@@ -535,12 +536,12 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Get_Children()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var created = CreateHierarchy(repository, unitOfWork).ToArray();
var created = CreateHierarchy(repository).ToArray();
// Act
var childrenById = repository.GetChildren(created[1].Id);
@@ -559,12 +560,12 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Get_Children_At_Root()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
CreateHierarchy(repository, unitOfWork).ToArray();
CreateHierarchy(repository).ToArray();
// Act
var children = repository.GetChildren(-1);
@@ -580,12 +581,12 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Get_Descendants()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var created = CreateHierarchy(repository, unitOfWork).ToArray();
var created = CreateHierarchy(repository).ToArray();
// Act
var descendantsById = repository.GetDescendants(created[1].Id);
@@ -605,10 +606,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Path_Is_Set_Correctly_On_Creation()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var parent = new Template("parent", "parent");
var child1 = new Template("child1", "child1");
@@ -648,7 +649,7 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.Save(toddler4);
repository.Save(baby1);
repository.Save(baby2);
unitOfWork.Flush();
// Assert
Assert.AreEqual(string.Format("-1,{0}", parent.Id), parent.Path);
@@ -668,10 +669,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Path_Is_Set_Correctly_On_Update()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var parent = new Template("parent", "parent");
var child1 = new Template("child1", "child1");
@@ -693,12 +694,12 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.Save(child2);
repository.Save(toddler1);
repository.Save(toddler2);
unitOfWork.Flush();
//Act
toddler2.SetMasterTemplate(child2);
repository.Save(toddler2);
unitOfWork.Flush();
//Assert
Assert.AreEqual($"-1,{parent.Id},{child2.Id},{toddler2.Id}", toddler2.Path);
@@ -709,10 +710,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Path_Is_Set_Correctly_On_Update_With_Master_Template_Removal()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var parent = new Template("parent", "parent");
var child1 = new Template("child1", "child1");
@@ -722,12 +723,12 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.Save(parent);
repository.Save(child1);
unitOfWork.Flush();
//Act
child1.SetMasterTemplate(null);
repository.Save(child1);
unitOfWork.Flush();
//Assert
Assert.AreEqual($"-1,{child1.Id}", child1.Path);
@@ -767,7 +768,7 @@ namespace Umbraco.Tests.Persistence.Repositories
return stream;
}
private IEnumerable<ITemplate> CreateHierarchy(ITemplateRepository repository, IScopeUnitOfWork unitOfWork)
private IEnumerable<ITemplate> CreateHierarchy(ITemplateRepository repository)
{
var parent = new Template("parent", "parent")
{
@@ -839,7 +840,7 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.Save(toddler4);
repository.Save(baby1);
repository.Save(baby2);
unitOfWork.Flush();
return new[] {parent, child1, child2, toddler1, toddler2, toddler3, toddler4, baby1, baby2};
}
@@ -6,7 +6,7 @@ using Umbraco.Core.Logging;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Tests.Testing;
@@ -17,25 +17,25 @@ namespace Umbraco.Tests.Persistence.Repositories
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
public class UserGroupRepositoryTest : TestWithDatabaseBase
{
private UserGroupRepository CreateRepository(IScopeUnitOfWork unitOfWork)
private UserGroupRepository CreateRepository(IScopeProvider provider)
{
return new UserGroupRepository(unitOfWork, Core.Cache.CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
return new UserGroupRepository((IScopeAccessor) provider, Core.Cache.CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
}
[Test]
public void Can_Perform_Add_On_UserGroupRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var userGroup = MockedUserGroup.CreateUserGroup();
// Act
repository.Save(userGroup);
unitOfWork.Complete();
scope.Complete();
// Assert
Assert.That(userGroup.HasIdentity, Is.True);
@@ -46,19 +46,19 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Multiple_Adds_On_UserGroupRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var userGroup1 = MockedUserGroup.CreateUserGroup("1");
var userGroup2 = MockedUserGroup.CreateUserGroup("2");
// Act
repository.Save(userGroup1);
unitOfWork.Flush();
repository.Save(userGroup2);
unitOfWork.Complete();
scope.Complete();
// Assert
Assert.That(userGroup1.HasIdentity, Is.True);
@@ -70,14 +70,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Verify_Fresh_Entity_Is_Not_Dirty()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var userGroup = MockedUserGroup.CreateUserGroup();
repository.Save(userGroup);
unitOfWork.Complete();
scope.Complete();
// Act
var resolved = repository.Get(userGroup.Id);
@@ -92,21 +92,21 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Update_On_UserGroupRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var userGroup = MockedUserGroup.CreateUserGroup();
repository.Save(userGroup);
unitOfWork.Flush();
// Act
var resolved = repository.Get(userGroup.Id);
resolved.Name = "New Name";
resolved.Permissions = new[] { "Z", "Y", "X" };
repository.Save(resolved);
unitOfWork.Complete();
scope.Complete();
var updatedItem = repository.Get(userGroup.Id);
// Assert
@@ -119,21 +119,21 @@ namespace Umbraco.Tests.Persistence.Repositories
[Test]
public void Can_Perform_Delete_On_UserGroupRepository()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var userGroup = MockedUserGroup.CreateUserGroup();
// Act
repository.Save(userGroup);
unitOfWork.Flush();
var id = userGroup.Id;
var repository2 = new UserGroupRepository(unitOfWork, Core.Cache.CacheHelper.CreateDisabledCacheHelper(), Logger);
var repository2 = new UserGroupRepository((IScopeAccessor) provider, Core.Cache.CacheHelper.CreateDisabledCacheHelper(), Logger);
repository2.Delete(userGroup);
unitOfWork.Complete();
scope.Complete();
var resolved = repository2.Get(id);
@@ -146,14 +146,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Get_On_UserGroupRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var userGroup = MockedUserGroup.CreateUserGroup();
repository.Save(userGroup);
unitOfWork.Complete();
scope.Complete();
// Act
var resolved = repository.Get(userGroup.Id);
@@ -172,15 +172,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetByQuery_On_UserGroupRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
CreateAndCommitMultipleUserGroups(repository, unitOfWork);
CreateAndCommitMultipleUserGroups(repository);
// Act
var query = unitOfWork.SqlContext.Query<IUserGroup>().Where(x => x.Alias == "testUserGroup1");
var query = scope.SqlContext.Query<IUserGroup>().Where(x => x.Alias == "testUserGroup1");
var result = repository.Get(query);
// Assert
@@ -192,12 +192,12 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_By_Param_Ids_On_UserGroupRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var userGroups = CreateAndCommitMultipleUserGroups(repository, unitOfWork);
var userGroups = CreateAndCommitMultipleUserGroups(repository);
// Act
var result = repository.GetMany(userGroups[0].Id, userGroups[1].Id);
@@ -213,12 +213,12 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_On_UserGroupRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
CreateAndCommitMultipleUserGroups(repository, unitOfWork);
CreateAndCommitMultipleUserGroups(repository);
// Act
var result = repository.GetMany();
@@ -234,12 +234,12 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Exists_On_UserGroupRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var userGroups = CreateAndCommitMultipleUserGroups(repository, unitOfWork);
var userGroups = CreateAndCommitMultipleUserGroups(repository);
// Act
var exists = repository.Exists(userGroups[0].Id);
@@ -253,15 +253,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Count_On_UserGroupRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var userGroups = CreateAndCommitMultipleUserGroups(repository, unitOfWork);
var userGroups = CreateAndCommitMultipleUserGroups(repository);
// Act
var query = unitOfWork.SqlContext.Query<IUserGroup>().Where(x => x.Alias == "testUserGroup1" || x.Alias == "testUserGroup2");
var query = scope.SqlContext.Query<IUserGroup>().Where(x => x.Alias == "testUserGroup1" || x.Alias == "testUserGroup2");
var result = repository.Count(query);
// Assert
@@ -273,12 +273,12 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Remove_Section_For_Group()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var groups = CreateAndCommitMultipleUserGroups(repository, unitOfWork);
var groups = CreateAndCommitMultipleUserGroups(repository);
// Act
@@ -293,7 +293,7 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.Save(groups[0]);
repository.Save(groups[1]);
unitOfWork.Complete();
scope.Complete();
// Assert
var result = repository.GetMany((int)groups[0].Id, (int)groups[1].Id).ToArray();
@@ -308,12 +308,12 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Add_Section_ForGroup()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var groups = CreateAndCommitMultipleUserGroups(repository, unitOfWork);
var groups = CreateAndCommitMultipleUserGroups(repository);
// Act
@@ -336,7 +336,7 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.Save(groups[0]);
repository.Save(groups[1]);
repository.Save(groups[2]);
unitOfWork.Complete();
scope.Complete();
for (var i = 0; i < 3; i++)
Assert.IsNotNull(repository.Get(groups[i].Id));
@@ -359,12 +359,12 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Update_Section_For_Group()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var groups = CreateAndCommitMultipleUserGroups(repository, unitOfWork);
var groups = CreateAndCommitMultipleUserGroups(repository);
// Act
@@ -372,7 +372,7 @@ namespace Umbraco.Tests.Persistence.Repositories
groups[0].AddAllowedSection("settings");
repository.Save(groups[0]);
unitOfWork.Complete();
scope.Complete();
// Assert
var result = repository.Get(groups[0].Id);
@@ -387,10 +387,10 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Get_Groups_Assigned_To_Section()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = ScopeProvider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var user1 = MockedUserGroup.CreateUserGroup("1", allowedSections: new[] { "test1" });
var user2 = MockedUserGroup.CreateUserGroup("2", allowedSections: new[] { "test2" });
@@ -398,7 +398,7 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.Save(user1);
repository.Save(user2);
repository.Save(user3);
unitOfWork.Complete();
scope.Complete();
// Act
var groups = repository.GetGroupsAssignedToSection("test1");
@@ -412,7 +412,7 @@ namespace Umbraco.Tests.Persistence.Repositories
}
}
private IUserGroup[] CreateAndCommitMultipleUserGroups(IUserGroupRepository repository, IUnitOfWork unitOfWork)
private IUserGroup[] CreateAndCommitMultipleUserGroups(IUserGroupRepository repository)
{
var userGroup1 = MockedUserGroup.CreateUserGroup("1");
var userGroup2 = MockedUserGroup.CreateUserGroup("2");
@@ -420,7 +420,7 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.Save(userGroup1);
repository.Save(userGroup2);
repository.Save(userGroup3);
unitOfWork.Complete();
return new IUserGroup[] { userGroup1, userGroup2, userGroup3 };
}
}
@@ -10,7 +10,7 @@ using Umbraco.Core.Models.Membership;
using Umbraco.Core.Persistence.Mappers;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Tests.Testing;
@@ -21,54 +21,58 @@ namespace Umbraco.Tests.Persistence.Repositories
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
public class UserRepositoryTest : TestWithDatabaseBase
{
private MediaRepository CreateMediaRepository(IScopeUnitOfWork unitOfWork, out IMediaTypeRepository mediaTypeRepository)
private MediaRepository CreateMediaRepository(IScopeProvider provider, out IMediaTypeRepository mediaTypeRepository)
{
mediaTypeRepository = new MediaTypeRepository(unitOfWork, CacheHelper, Mock.Of<ILogger>());
var tagRepository = new TagRepository(unitOfWork, CacheHelper, Mock.Of<ILogger>());
var repository = new MediaRepository(unitOfWork, CacheHelper, Mock.Of<ILogger>(), mediaTypeRepository, tagRepository, Mock.Of<IContentSection>());
var accessor = (IScopeAccessor) provider;
mediaTypeRepository = new MediaTypeRepository(accessor, CacheHelper, Mock.Of<ILogger>());
var tagRepository = new TagRepository(accessor, CacheHelper, Mock.Of<ILogger>());
var repository = new MediaRepository(accessor, CacheHelper, Mock.Of<ILogger>(), mediaTypeRepository, tagRepository, Mock.Of<IContentSection>());
return repository;
}
private DocumentRepository CreateContentRepository(IScopeUnitOfWork unitOfWork, out IContentTypeRepository contentTypeRepository)
private DocumentRepository CreateContentRepository(IScopeProvider provider, out IContentTypeRepository contentTypeRepository)
{
ITemplateRepository tr;
return CreateContentRepository(unitOfWork, out contentTypeRepository, out tr);
return CreateContentRepository(provider, out contentTypeRepository, out tr);
}
private DocumentRepository CreateContentRepository(IScopeUnitOfWork unitOfWork, out IContentTypeRepository contentTypeRepository, out ITemplateRepository templateRepository)
private DocumentRepository CreateContentRepository(IScopeProvider provider, out IContentTypeRepository contentTypeRepository, out ITemplateRepository templateRepository)
{
templateRepository = new TemplateRepository(unitOfWork, CacheHelper, Logger, Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>(), Mock.Of<ITemplatesSection>());
var tagRepository = new TagRepository(unitOfWork, CacheHelper, Logger);
contentTypeRepository = new ContentTypeRepository(unitOfWork, CacheHelper, Logger, templateRepository);
var repository = new DocumentRepository(unitOfWork, CacheHelper, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of<IContentSection>());
var accessor = (IScopeAccessor) provider;
templateRepository = new TemplateRepository(accessor, CacheHelper, Logger, Mock.Of<ITemplatesSection>(), Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>());
var tagRepository = new TagRepository(accessor, CacheHelper, Logger);
contentTypeRepository = new ContentTypeRepository(accessor, CacheHelper, Logger, templateRepository);
var repository = new DocumentRepository(accessor, CacheHelper, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of<IContentSection>());
return repository;
}
private UserRepository CreateRepository(IScopeUnitOfWork unitOfWork)
private UserRepository CreateRepository(IScopeProvider provider)
{
var repository = new UserRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), Mock.Of<IMapperCollection>());
var accessor = (IScopeAccessor) provider;
var repository = new UserRepository(accessor, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>(), Mock.Of<IMapperCollection>());
return repository;
}
private UserGroupRepository CreateUserGroupRepository(IScopeUnitOfWork unitOfWork)
private UserGroupRepository CreateUserGroupRepository(IScopeProvider provider)
{
return new UserGroupRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var accessor = (IScopeAccessor) provider;
return new UserGroupRepository(accessor, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
}
[Test]
public void Can_Perform_Add_On_UserRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var user = MockedUser.CreateUser();
// Act
repository.Save(user);
unitOfWork.Flush();
// Assert
Assert.That(user.HasIdentity, Is.True);
@@ -79,19 +83,19 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Multiple_Adds_On_UserRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var user1 = MockedUser.CreateUser("1");
var use2 = MockedUser.CreateUser("2");
// Act
repository.Save(user1);
unitOfWork.Flush();
repository.Save(use2);
unitOfWork.Flush();
// Assert
Assert.That(user1.HasIdentity, Is.True);
@@ -103,14 +107,14 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Verify_Fresh_Entity_Is_Not_Dirty()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var user = MockedUser.CreateUser();
repository.Save(user);
unitOfWork.Flush();
// Act
var resolved = repository.Get((int)user.Id);
@@ -130,23 +134,23 @@ namespace Umbraco.Tests.Persistence.Repositories
var media = MockedMedia.CreateSimpleMedia(mt, "asdf", -1);
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var userRepository = CreateRepository(unitOfWork);
var contentRepository = CreateContentRepository(unitOfWork, out var contentTypeRepo);
var mediaRepository = CreateMediaRepository(unitOfWork, out var mediaTypeRepo);
var userGroupRepository = CreateUserGroupRepository(unitOfWork);
var userRepository = CreateRepository(provider);
var contentRepository = CreateContentRepository(provider, out var contentTypeRepo);
var mediaRepository = CreateMediaRepository(provider, out var mediaTypeRepo);
var userGroupRepository = CreateUserGroupRepository(provider);
contentTypeRepo.Save(ct);
mediaTypeRepo.Save(mt);
unitOfWork.Flush();
contentRepository.Save(content);
mediaRepository.Save(media);
unitOfWork.Flush();
var user = CreateAndCommitUserWithGroup(userRepository, userGroupRepository, unitOfWork);
var user = CreateAndCommitUserWithGroup(userRepository, userGroupRepository);
// Act
var resolved = (User) userRepository.Get(user.Id);
@@ -164,7 +168,7 @@ namespace Umbraco.Tests.Persistence.Repositories
resolved.Username = "newName";
userRepository.Save(resolved);
unitOfWork.Flush();
var updatedItem = (User) userRepository.Get(user.Id);
// Assert
@@ -188,22 +192,22 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Delete_On_UserRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var user = MockedUser.CreateUser();
// Act
repository.Save(user);
unitOfWork.Flush();
var id = user.Id;
var repository2 = new UserRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of<IMapperCollection>());
var repository2 = new UserRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Logger, Mock.Of<IMapperCollection>());
repository2.Delete(user);
unitOfWork.Flush();
var resolved = repository2.Get((int) id);
@@ -217,13 +221,13 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Get_On_UserRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var userGroupRepository = CreateUserGroupRepository(unitOfWork);
var repository = CreateRepository(provider);
var userGroupRepository = CreateUserGroupRepository(provider);
var user = CreateAndCommitUserWithGroup(repository, userGroupRepository, unitOfWork);
var user = CreateAndCommitUserWithGroup(repository, userGroupRepository);
// Act
var updatedItem = repository.Get(user.Id);
@@ -241,15 +245,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetByQuery_On_UserRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
CreateAndCommitMultipleUsers(repository, unitOfWork);
CreateAndCommitMultipleUsers(repository);
// Act
var query = unitOfWork.SqlContext.Query<IUser>().Where(x => x.Username == "TestUser1");
var query = scope.SqlContext.Query<IUser>().Where(x => x.Username == "TestUser1");
var result = repository.Get(query);
// Assert
@@ -261,12 +265,12 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_By_Param_Ids_On_UserRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var users = CreateAndCommitMultipleUsers(repository, unitOfWork);
var users = CreateAndCommitMultipleUsers(repository);
// Act
var result = repository.GetMany((int) users[0].Id, (int) users[1].Id);
@@ -282,12 +286,12 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_GetAll_On_UserRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
CreateAndCommitMultipleUsers(repository, unitOfWork);
CreateAndCommitMultipleUsers(repository);
// Act
var result = repository.GetMany();
@@ -303,12 +307,12 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Exists_On_UserRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var users = CreateAndCommitMultipleUsers(repository, unitOfWork);
var users = CreateAndCommitMultipleUsers(repository);
// Act
var exists = repository.Exists(users[0].Id);
@@ -322,15 +326,15 @@ namespace Umbraco.Tests.Persistence.Repositories
public void Can_Perform_Count_On_UserRepository()
{
// Arrange
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = CreateRepository(unitOfWork);
var repository = CreateRepository(provider);
var users = CreateAndCommitMultipleUsers(repository, unitOfWork);
var users = CreateAndCommitMultipleUsers(repository);
// Act
var query = unitOfWork.SqlContext.Query<IUser>().Where(x => x.Username == "TestUser1" || x.Username == "TestUser2");
var query = scope.SqlContext.Query<IUser>().Where(x => x.Username == "TestUser1" || x.Username == "TestUser2");
var result = repository.Count(query);
// Assert
@@ -355,20 +359,20 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.IsTrue(updatedItem.AllowedSections.Contains(allowedSection));
}
private static User CreateAndCommitUserWithGroup(IUserRepository repository, IUserGroupRepository userGroupRepository, IScopeUnitOfWork unitOfWork)
private static User CreateAndCommitUserWithGroup(IUserRepository repository, IUserGroupRepository userGroupRepository)
{
var user = MockedUser.CreateUser();
repository.Save(user);
unitOfWork.Flush();
var group = MockedUserGroup.CreateUserGroup();
userGroupRepository.AddOrUpdateGroupWithUsers(@group, new[] { user.Id });
unitOfWork.Flush();
return user;
}
private IUser[] CreateAndCommitMultipleUsers(IUserRepository repository, IUnitOfWork unitOfWork)
private IUser[] CreateAndCommitMultipleUsers(IUserRepository repository)
{
var user1 = MockedUser.CreateUser("1");
var user2 = MockedUser.CreateUser("2");
@@ -376,7 +380,6 @@ namespace Umbraco.Tests.Persistence.Repositories
repository.Save(user1);
repository.Save(user2);
repository.Save(user3);
unitOfWork.Complete();
return new IUser[] { user1, user2, user3 };
}
}
@@ -13,10 +13,10 @@ namespace Umbraco.Tests.Persistence
[Test]
public void ReadLockNonExisting()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
var provider = TestObjects.GetScopeProvider(Logger);
Assert.Throws<Exception>(() =>
{
using (var uow = provider.CreateUnitOfWork())
using (var scope = provider.CreateScope())
{
scope.ReadLock(-666);
scope.Complete();
@@ -27,8 +27,8 @@ namespace Umbraco.Tests.Persistence
[Test]
public void ReadLockExisting()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var uow = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
scope.ReadLock(Constants.Locks.Servers);
scope.Complete();
@@ -38,10 +38,10 @@ namespace Umbraco.Tests.Persistence
[Test]
public void WriteLockNonExisting()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
var provider = TestObjects.GetScopeProvider(Logger);
Assert.Throws<Exception>(() =>
{
using (var uow = provider.CreateUnitOfWork())
using (var scope = provider.CreateScope())
{
scope.WriteLock(-666);
scope.Complete();
@@ -52,8 +52,8 @@ namespace Umbraco.Tests.Persistence
[Test]
public void WriteLockExisting()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var uow = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
scope.WriteLock(Constants.Locks.Servers);
scope.Complete();
@@ -64,7 +64,7 @@ namespace Umbraco.Tests.PublishedContent
/// <returns></returns>
internal IPublishedContent GetNode(int id, UmbracoContext umbracoContext)
{
var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null), Current.Services.MediaService, Current.Services.UserService, new StaticCacheProvider(), ContentTypesCache);
var cache = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), Current.Services.MediaService, Current.Services.UserService, new StaticCacheProvider(), ContentTypesCache);
var doc = cache.GetById(id);
Assert.IsNotNull(doc);
return doc;
@@ -458,7 +458,7 @@ namespace Umbraco.Tests.PublishedContent
</Image>");
var node = xml.DescendantsAndSelf("Image").Single(x => (int)x.Attribute("id") == nodeId);
var publishedMedia = new PublishedMediaCache(new XmlStore((XmlDocument)null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);
var publishedMedia = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);
var nav = node.CreateNavigator();
@@ -478,7 +478,7 @@ namespace Umbraco.Tests.PublishedContent
var errorXml = new XElement("error", string.Format("No media is maching '{0}'", 1234));
var nav = errorXml.CreateNavigator();
var publishedMedia = new PublishedMediaCache(new XmlStore((XmlDocument)null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);
var publishedMedia = new PublishedMediaCache(new XmlStore((XmlDocument)null, null, null, null), ServiceContext.MediaService, ServiceContext.UserService, new StaticCacheProvider(), ContentTypesCache);
var converted = publishedMedia.ConvertFromXPathNodeIterator(nav.Select("/"), 1234);
Assert.IsNull(converted);
@@ -79,10 +79,10 @@ namespace Umbraco.Tests.Scoping
runtimeStateMock.Object,
ServiceContext,
contentTypeFactory,
UowProvider,
publishedSnapshotAccessor,
Logger,
ScopeProvider);
ScopeProvider,
null, null, null);
}
protected UmbracoContext GetUmbracoContextNu(string url, int templateId = 1234, RouteData routeData = null, bool setSingleton = false, IUmbracoSettingsSection umbracoSettings = null, IEnumerable<IUrlProvider> urlProviders = null)
@@ -12,6 +12,7 @@ using Umbraco.Core.Models;
using Umbraco.Core.Models.Rdbms;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Tests.TestHelpers.Stubs;
@@ -157,13 +158,13 @@ namespace Umbraco.Tests.Services
var pages = MockedContent.CreateTextpageContent(contentType, -1, 100);
ServiceContext.ContentService.Save(pages, 0);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var tRepository = new TemplateRepository(unitOfWork, DisabledCache, Logger, Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>(), Mock.Of<ITemplatesSection>());
var tagRepo = new TagRepository(unitOfWork, DisabledCache, Logger);
var ctRepository = new ContentTypeRepository(unitOfWork, DisabledCache, Logger, tRepository);
var repository = new DocumentRepository(unitOfWork, DisabledCache, Logger, ctRepository, tRepository, tagRepo, Mock.Of<IContentSection>());
var tRepository = new TemplateRepository((IScopeAccessor) provider, DisabledCache, Logger, Mock.Of<ITemplatesSection>(), Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>());
var tagRepo = new TagRepository((IScopeAccessor) provider, DisabledCache, Logger);
var ctRepository = new ContentTypeRepository((IScopeAccessor) provider, DisabledCache, Logger, tRepository);
var repository = new DocumentRepository((IScopeAccessor) provider, DisabledCache, Logger, ctRepository, tRepository, tagRepo, Mock.Of<IContentSection>());
// Act
Stopwatch watch = Stopwatch.StartNew();
@@ -189,13 +190,13 @@ namespace Umbraco.Tests.Services
var pages = MockedContent.CreateTextpageContent(contentType, -1, 1000);
ServiceContext.ContentService.Save(pages, 0);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var tRepository = new TemplateRepository(unitOfWork, DisabledCache, Logger, Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>(), Mock.Of<ITemplatesSection>());
var tagRepo = new TagRepository(unitOfWork, DisabledCache, Logger);
var ctRepository = new ContentTypeRepository(unitOfWork, DisabledCache, Logger, tRepository);
var repository = new DocumentRepository(unitOfWork, DisabledCache, Logger, ctRepository, tRepository, tagRepo, Mock.Of<IContentSection>());
var tRepository = new TemplateRepository((IScopeAccessor) provider, DisabledCache, Logger, Mock.Of<ITemplatesSection>(), Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>());
var tagRepo = new TagRepository((IScopeAccessor) provider, DisabledCache, Logger);
var ctRepository = new ContentTypeRepository((IScopeAccessor) provider, DisabledCache, Logger, tRepository);
var repository = new DocumentRepository((IScopeAccessor) provider, DisabledCache, Logger, ctRepository, tRepository, tagRepo, Mock.Of<IContentSection>());
// Act
Stopwatch watch = Stopwatch.StartNew();
@@ -219,13 +220,13 @@ namespace Umbraco.Tests.Services
var pages = MockedContent.CreateTextpageContent(contentType, -1, 100);
ServiceContext.ContentService.Save(pages, 0);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var tRepository = new TemplateRepository(unitOfWork, DisabledCache, Logger, Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>(), Mock.Of<ITemplatesSection>());
var tagRepo = new TagRepository(unitOfWork, DisabledCache, Logger);
var ctRepository = new ContentTypeRepository(unitOfWork, DisabledCache, Logger, tRepository);
var repository = new DocumentRepository(unitOfWork, DisabledCache, Logger, ctRepository, tRepository, tagRepo, Mock.Of<IContentSection>());
var tRepository = new TemplateRepository((IScopeAccessor) provider, DisabledCache, Logger, Mock.Of<ITemplatesSection>(), Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>());
var tagRepo = new TagRepository((IScopeAccessor) provider, DisabledCache, Logger);
var ctRepository = new ContentTypeRepository((IScopeAccessor) provider, DisabledCache, Logger, tRepository);
var repository = new DocumentRepository((IScopeAccessor) provider, DisabledCache, Logger, ctRepository, tRepository, tagRepo, Mock.Of<IContentSection>());
// Act
var contents = repository.GetMany();
@@ -252,13 +253,13 @@ namespace Umbraco.Tests.Services
var pages = MockedContent.CreateTextpageContent(contentType, -1, 1000);
ServiceContext.ContentService.Save(pages, 0);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var tRepository = new TemplateRepository(unitOfWork, DisabledCache, Logger, Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>(), Mock.Of<ITemplatesSection>());
var tagRepo = new TagRepository(unitOfWork, DisabledCache, Logger);
var ctRepository = new ContentTypeRepository(unitOfWork, DisabledCache, Logger, tRepository);
var repository = new DocumentRepository(unitOfWork, DisabledCache, Logger, ctRepository, tRepository, tagRepo, Mock.Of<IContentSection>());
var tRepository = new TemplateRepository((IScopeAccessor) provider, DisabledCache, Logger, Mock.Of<ITemplatesSection>(), Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>());
var tagRepo = new TagRepository((IScopeAccessor) provider, DisabledCache, Logger);
var ctRepository = new ContentTypeRepository((IScopeAccessor) provider, DisabledCache, Logger, tRepository);
var repository = new DocumentRepository((IScopeAccessor) provider, DisabledCache, Logger, ctRepository, tRepository, tagRepo, Mock.Of<IContentSection>());
// Act
var contents = repository.GetMany();
@@ -14,12 +14,12 @@ using Umbraco.Core.Models.Membership;
using Umbraco.Core.Models.Rdbms;
using LightInject;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Services;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Core.Events;
using Umbraco.Core.Logging;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Scoping;
using Umbraco.Tests.Testing;
namespace Umbraco.Tests.Services
@@ -1202,10 +1202,9 @@ namespace Umbraco.Tests.Services
content.PublishValues();
var published = contentService.SaveAndPublish(content, 0);
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var uow = provider.CreateUnitOfWork())
using (var scope = ScopeProvider.CreateScope())
{
Assert.IsTrue(uow.Database.Exists<ContentXmlDto>(content.Id));
Assert.IsTrue(scope.Database.Exists<ContentXmlDto>(content.Id));
}
// Act
@@ -1216,9 +1215,9 @@ namespace Umbraco.Tests.Services
Assert.That(unpublished.Success, Is.True);
Assert.That(content.Published, Is.False);
using (var uow = provider.CreateUnitOfWork())
using (var scope = ScopeProvider.CreateScope())
{
Assert.IsFalse(uow.Database.Exists<ContentXmlDto>(content.Id));
Assert.IsFalse(scope.Database.Exists<ContentXmlDto>(content.Id));
}
}
@@ -2114,7 +2113,7 @@ namespace Umbraco.Tests.Services
[Test]
public void Can_Save_Lazy_Content()
{
var provider = TestObjects.GetScopeUnitOfWorkProvider(Mock.Of<ILogger>());
var provider = TestObjects.GetScopeProvider(Mock.Of<ILogger>());
var contentType = ServiceContext.ContentTypeService.Get("umbTextpage");
var root = ServiceContext.ContentService.GetById(NodeDto.NodeIdSeed + 2);
@@ -2122,15 +2121,14 @@ namespace Umbraco.Tests.Services
var c2 = new Lazy<IContent>(() => MockedContent.CreateSimpleContent(contentType, "Hierarchy Simple Text Subpage", c.Value.Id));
var list = new List<Lazy<IContent>> {c, c2};
using (var unitOfWork = provider.CreateUnitOfWork())
using (var scope = provider.CreateScope())
{
ContentTypeRepository contentTypeRepository;
var repository = CreateRepository(unitOfWork, out contentTypeRepository);
var repository = CreateRepository(provider, out contentTypeRepository);
foreach (var content in list)
{
repository.Save(content.Value);
unitOfWork.Flush();
}
Assert.That(c.Value.HasIdentity, Is.True);
@@ -2213,7 +2211,7 @@ namespace Umbraco.Tests.Services
using (var scope = ScopeProvider.CreateScope())
{
Assert.IsFalse(uow.Database.Exists<ContentXmlDto>(content.Id));
Assert.IsFalse(scope.Database.Exists<ContentXmlDto>(content.Id));
}
content.PublishValues();
@@ -2221,7 +2219,7 @@ namespace Umbraco.Tests.Services
using (var scope = ScopeProvider.CreateScope())
{
Assert.IsTrue(uow.Database.Exists<ContentXmlDto>(content.Id));
Assert.IsTrue(scope.Database.Exists<ContentXmlDto>(content.Id));
}
}
@@ -2236,7 +2234,7 @@ namespace Umbraco.Tests.Services
using (var scope = ScopeProvider.CreateScope())
{
Assert.IsTrue(uow.Database.SingleOrDefault<PreviewXmlDto>("WHERE nodeId=@nodeId", new{nodeId = content.Id}) != null);
Assert.IsTrue(scope.Database.SingleOrDefault<PreviewXmlDto>("WHERE nodeId=@nodeId", new{nodeId = content.Id}) != null);
}
}
@@ -2472,12 +2470,13 @@ namespace Umbraco.Tests.Services
return list;
}
private DocumentRepository CreateRepository(IScopeUnitOfWork unitOfWork, out ContentTypeRepository contentTypeRepository)
private DocumentRepository CreateRepository(IScopeProvider provider, out ContentTypeRepository contentTypeRepository)
{
var templateRepository = new TemplateRepository(unitOfWork, DisabledCache, Logger, Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>(), Mock.Of<ITemplatesSection>());
var tagRepository = new TagRepository(unitOfWork, DisabledCache, Logger);
contentTypeRepository = new ContentTypeRepository(unitOfWork, DisabledCache, Logger, templateRepository);
var repository = new DocumentRepository(unitOfWork, DisabledCache, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of<IContentSection>());
var accessor = (IScopeAccessor) provider;
var templateRepository = new TemplateRepository(accessor, DisabledCache, Logger, Mock.Of<ITemplatesSection>(), Mock.Of<IFileSystem>(), Mock.Of<IFileSystem>());
var tagRepository = new TagRepository(accessor, DisabledCache, Logger);
contentTypeRepository = new ContentTypeRepository(accessor, DisabledCache, Logger, templateRepository);
var repository = new DocumentRepository(accessor, DisabledCache, Logger, contentTypeRepository, templateRepository, tagRepository, Mock.Of<IContentSection>());
return repository;
}
}
@@ -8,6 +8,7 @@ using Umbraco.Core.Models;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Scoping;
using Umbraco.Tests.Testing;
namespace Umbraco.Tests.Services
@@ -20,15 +21,15 @@ namespace Umbraco.Tests.Services
{
base.CreateTestData();
var provider = TestObjects.GetScopeUnitOfWorkProvider(Logger);
using (var unitOfWork = provider.CreateUnitOfWork())
var provider = TestObjects.GetScopeProvider(Logger);
using (var scope = provider.CreateScope())
{
var repository = new MacroRepository(unitOfWork, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
var repository = new MacroRepository((IScopeAccessor) provider, CacheHelper.CreateDisabledCacheHelper(), Mock.Of<ILogger>());
repository.Save(new Macro("test1", "Test1", "~/usercontrol/test1.ascx", "MyAssembly1", "test1.xslt", "~/views/macropartials/test1.cshtml"));
repository.Save(new Macro("test2", "Test2", "~/usercontrol/test2.ascx", "MyAssembly2", "test2.xslt", "~/views/macropartials/test2.cshtml"));
repository.Save(new Macro("test3", "Tet3", "~/usercontrol/test3.ascx", "MyAssembly3", "test3.xslt", "~/views/macropartials/test3.cshtml"));
unitOfWork.Complete();
scope.Complete();
}
}
@@ -9,7 +9,6 @@ using Umbraco.Core.Models.Rdbms;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.DatabaseModelDefinitions;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Tests.TestHelpers;
using Umbraco.Tests.TestHelpers.Entities;
using Umbraco.Tests.Testing;
@@ -123,7 +122,7 @@ namespace Umbraco.Tests.Services
using (var scope = ScopeProvider.CreateScope())
{
Assert.IsTrue(uow.Database.Exists<ContentXmlDto>(media.Id));
Assert.IsTrue(scope.Database.Exists<ContentXmlDto>(media.Id));
}
}
@@ -1182,7 +1182,7 @@ namespace Umbraco.Tests.Services
using (var scope = ScopeProvider.CreateScope())
{
Assert.IsTrue(uow.Database.Exists<ContentXmlDto>(customMember.Id));
Assert.IsTrue(scope.Database.Exists<ContentXmlDto>(customMember.Id));
}
}
}
@@ -10,7 +10,7 @@ using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Querying;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.Repositories.Implement;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Tests.TestHelpers;
namespace Umbraco.Tests.Templates
@@ -31,11 +31,13 @@ namespace Umbraco.Tests.Templates
{
var logger = Mock.Of<ILogger>();
var unitOfWorkMock = new Mock<IScopeUnitOfWork>();
var accessorMock = new Mock<IScopeAccessor>();
var scopeMock = new Mock<IScope>();
var database = TestObjects.GetUmbracoSqlCeDatabase(logger);
unitOfWorkMock.Setup(x => x.Database).Returns(database);
scopeMock.Setup(x => x.Database).Returns(database);
accessorMock.Setup(x => x.AmbientScope).Returns(scopeMock.Object);
_templateRepository = new TemplateRepository(unitOfWorkMock.Object, _cacheMock.Object, logger, _masterpageFileSystemMock.Object, _viewFileSystemMock.Object, _templateConfigMock.Object);
_templateRepository = new TemplateRepository(accessorMock.Object, _cacheMock.Object, logger, _templateConfigMock.Object, _masterpageFileSystemMock.Object, _viewFileSystemMock.Object);
}
@@ -9,7 +9,6 @@ using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Events;
using Umbraco.Core.Logging;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Services;
using Umbraco.Tests.TestHelpers.Stubs;
using Umbraco.Web;
@@ -77,14 +76,6 @@ namespace Umbraco.Tests.TestHelpers
MockService<IMacroService>());
}
public static IScopeUnitOfWork GetUnitOfWorkMock()
{
var unitOfWorkMock = new Mock<IScopeUnitOfWork>();
unitOfWorkMock.Setup(x => x.Messages).Returns(() => new EventMessages());
unitOfWorkMock.Setup(x => x.Events).Returns(() => new PassThroughEventDispatcher());
return unitOfWorkMock.Object;
}
private T MockService<T>(IServiceFactory container = null)
where T : class
{
+45 -58
View File
@@ -13,8 +13,8 @@ using Umbraco.Core.IO;
using Umbraco.Core.Logging;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Mappers;
using Umbraco.Core.Persistence.Repositories;
using Umbraco.Core.Persistence.SqlSyntax;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Scoping;
using Umbraco.Core.Services;
using Umbraco.Core.Strings;
@@ -96,31 +96,30 @@ namespace Umbraco.Tests.TestHelpers
/// <returns>A ServiceContext.</returns>
/// <remarks>Should be used sparingly for integration tests only - for unit tests
/// just mock the services to be passed to the ctor of the ServiceContext.</remarks>
public ServiceContext GetServiceContext(RepositoryFactory repositoryFactory,
IScopeUnitOfWorkProvider dbUnitOfWorkProvider,
public ServiceContext GetServiceContext(
IScopeProvider scopeProvider, IScopeAccessor scopeAccessor,
CacheHelper cache,
ILogger logger,
IEventMessagesFactory eventMessagesFactory,
IEnumerable<IUrlSegmentProvider> urlSegmentProviders,
IServiceFactory container = null)
{
if (repositoryFactory == null) throw new ArgumentNullException(nameof(repositoryFactory));
if (dbUnitOfWorkProvider == null) throw new ArgumentNullException(nameof(dbUnitOfWorkProvider));
if (scopeProvider == null) throw new ArgumentNullException(nameof(scopeProvider));
if (scopeAccessor == null) throw new ArgumentNullException(nameof(scopeAccessor));
if (cache == null) throw new ArgumentNullException(nameof(cache));
if (logger == null) throw new ArgumentNullException(nameof(logger));
if (eventMessagesFactory == null) throw new ArgumentNullException(nameof(eventMessagesFactory));
var provider = dbUnitOfWorkProvider;
var mediaFileSystem = new MediaFileSystem(Mock.Of<IFileSystem>());
var migrationEntryService = GetLazyService<IMigrationEntryService>(container, () => new MigrationEntryService(provider, logger, eventMessagesFactory));
var externalLoginService = GetLazyService<IExternalLoginService>(container, () => new ExternalLoginService(provider, logger, eventMessagesFactory));
var publicAccessService = GetLazyService<IPublicAccessService>(container, () => new PublicAccessService(provider, logger, eventMessagesFactory));
var taskService = GetLazyService<ITaskService>(container, () => new TaskService(provider, logger, eventMessagesFactory));
var domainService = GetLazyService<IDomainService>(container, () => new DomainService(provider, logger, eventMessagesFactory));
var auditService = GetLazyService<IAuditService>(container, () => new AuditService(provider, logger, eventMessagesFactory));
var migrationEntryService = GetLazyService<IMigrationEntryService>(container, c => new MigrationEntryService(scopeProvider, logger, eventMessagesFactory, GetRepo<IMigrationEntryRepository>(c)));
var externalLoginService = GetLazyService<IExternalLoginService>(container, c => new ExternalLoginService(scopeProvider, logger, eventMessagesFactory, GetRepo<IExternalLoginRepository>(c)));
var publicAccessService = GetLazyService<IPublicAccessService>(container, c => new PublicAccessService(scopeProvider, logger, eventMessagesFactory, GetRepo<IPublicAccessRepository>(c)));
var taskService = GetLazyService<ITaskService>(container, c => new TaskService(scopeProvider, logger, eventMessagesFactory, GetRepo<ITaskTypeRepository>(c), GetRepo<ITaskRepository>(c)));
var domainService = GetLazyService<IDomainService>(container, c => new DomainService(scopeProvider, logger, eventMessagesFactory, GetRepo<IDomainRepository>(c)));
var auditService = GetLazyService<IAuditService>(container, c => new AuditService(scopeProvider, logger, eventMessagesFactory, GetRepo<IAuditRepository>(c)));
var localizedTextService = GetLazyService<ILocalizedTextService>(container, () => new LocalizedTextService(
var localizedTextService = GetLazyService<ILocalizedTextService>(container, c => new LocalizedTextService(
new Lazy<LocalizedTextServiceFileSources>(() =>
{
var mainLangFolder = new DirectoryInfo(IOHelper.MapPath(SystemDirectories.Umbraco + "/config/lang/"));
@@ -153,36 +152,37 @@ namespace Umbraco.Tests.TestHelpers
logger));
var runtimeState = Mock.Of<IRuntimeState>();
var idkMap = new IdkMap(provider);
var idkMap = new IdkMap(scopeProvider);
var userService = GetLazyService<IUserService>(container, () => new UserService(provider, logger, eventMessagesFactory, runtimeState));
var dataTypeService = GetLazyService<IDataTypeService>(container, () => new DataTypeService(provider, logger, eventMessagesFactory));
var contentService = GetLazyService<IContentService>(container, () => new ContentService(provider, logger, eventMessagesFactory, mediaFileSystem));
var notificationService = GetLazyService<INotificationService>(container, () => new NotificationService(provider, userService.Value, contentService.Value, logger));
var serverRegistrationService = GetLazyService<IServerRegistrationService>(container, () => new ServerRegistrationService(provider, logger, eventMessagesFactory));
var memberGroupService = GetLazyService<IMemberGroupService>(container, () => new MemberGroupService(provider, logger, eventMessagesFactory));
var memberService = GetLazyService<IMemberService>(container, () => new MemberService(provider, logger, eventMessagesFactory, memberGroupService.Value, mediaFileSystem));
var mediaService = GetLazyService<IMediaService>(container, () => new MediaService(provider, mediaFileSystem, logger, eventMessagesFactory));
var contentTypeService = GetLazyService<IContentTypeService>(container, () => new ContentTypeService(provider, logger, eventMessagesFactory, contentService.Value));
var mediaTypeService = GetLazyService<IMediaTypeService>(container, () => new MediaTypeService(provider, logger, eventMessagesFactory, mediaService.Value));
var fileService = GetLazyService<IFileService>(container, () => new FileService(provider, logger, eventMessagesFactory));
var localizationService = GetLazyService<ILocalizationService>(container, () => new LocalizationService(provider, logger, eventMessagesFactory));
var userService = GetLazyService<IUserService>(container, c => new UserService(scopeProvider, logger, eventMessagesFactory, runtimeState, GetRepo<IUserRepository>(c), GetRepo<IUserGroupRepository>(c)));
var dataTypeService = GetLazyService<IDataTypeService>(container, c => new DataTypeService(scopeProvider, logger, eventMessagesFactory, GetRepo<IDataTypeDefinitionRepository>(c), GetRepo<IDataTypeContainerRepository>(c), GetRepo<IAuditRepository>(c), GetRepo<IEntityRepository>(c), GetRepo<IContentTypeRepository>(c)));
var contentService = GetLazyService<IContentService>(container, c => new ContentService(scopeProvider, logger, eventMessagesFactory, mediaFileSystem, GetRepo<IDocumentRepository>(c), GetRepo<IEntityRepository>(c), GetRepo<IAuditRepository>(c), GetRepo<IContentTypeRepository>(c), GetRepo<IDocumentBlueprintRepository>(c)));
var notificationService = GetLazyService<INotificationService>(container, c => new NotificationService(scopeProvider, userService.Value, contentService.Value, logger, GetRepo<INotificationsRepository>(c)));
var serverRegistrationService = GetLazyService<IServerRegistrationService>(container, c => new ServerRegistrationService(scopeProvider, logger, eventMessagesFactory, GetRepo<IServerRegistrationRepository>(c)));
var memberGroupService = GetLazyService<IMemberGroupService>(container, c => new MemberGroupService(scopeProvider, logger, eventMessagesFactory, GetRepo<IMemberGroupRepository>(c)));
var memberService = GetLazyService<IMemberService>(container, c => new MemberService(scopeProvider, logger, eventMessagesFactory, memberGroupService.Value, mediaFileSystem, GetRepo<IMemberRepository>(c), GetRepo<IMemberTypeRepository>(c), GetRepo<IMemberGroupRepository>(c), GetRepo<IAuditRepository>(c)));
var mediaService = GetLazyService<IMediaService>(container, c => new MediaService(scopeProvider, mediaFileSystem, logger, eventMessagesFactory, GetRepo<IMediaRepository>(c), GetRepo<IAuditRepository>(c), GetRepo<IMediaTypeRepository>(c), GetRepo<IEntityRepository>(c)));
var contentTypeService = GetLazyService<IContentTypeService>(container, c => new ContentTypeService(scopeProvider, logger, eventMessagesFactory, contentService.Value, GetRepo<IContentTypeRepository>(c), GetRepo<IAuditRepository>(c), GetRepo<IDocumentTypeContainerRepository>(c), GetRepo<IEntityRepository>(c)));
var mediaTypeService = GetLazyService<IMediaTypeService>(container, c => new MediaTypeService(scopeProvider, logger, eventMessagesFactory, mediaService.Value, GetRepo<IMediaTypeRepository>(c), GetRepo<IAuditRepository>(c), GetRepo<IMediaTypeContainerRepository>(c), GetRepo<IEntityRepository>(c)));
var fileService = GetLazyService<IFileService>(container, c => new FileService(scopeProvider, logger, eventMessagesFactory, GetRepo<IStylesheetRepository>(c), GetRepo<IScriptRepository>(c), GetRepo<ITemplateRepository>(c), GetRepo<IPartialViewRepository>(c), GetRepo<IPartialViewMacroRepository>(c), GetRepo<IXsltFileRepository>(c), GetRepo<IAuditRepository>(c)));
var localizationService = GetLazyService<ILocalizationService>(container, c => new LocalizationService(scopeProvider, logger, eventMessagesFactory, GetRepo<IDictionaryRepository>(c), GetRepo<IAuditRepository>(c), GetRepo<ILanguageRepository>(c)));
var memberTypeService = GetLazyService<IMemberTypeService>(container, () => new MemberTypeService(provider, logger, eventMessagesFactory, memberService.Value));
var entityService = GetLazyService<IEntityService>(container, () => new EntityService(
provider, logger, eventMessagesFactory,
var memberTypeService = GetLazyService<IMemberTypeService>(container, c => new MemberTypeService(scopeProvider, logger, eventMessagesFactory, memberService.Value, GetRepo<IMemberTypeRepository>(c), GetRepo<IAuditRepository>(c), GetRepo<IEntityRepository>(c)));
var entityService = GetLazyService<IEntityService>(container, c => new EntityService(
scopeProvider, logger, eventMessagesFactory,
contentService.Value, contentTypeService.Value, mediaService.Value, mediaTypeService.Value, dataTypeService.Value, memberService.Value, memberTypeService.Value,
idkMap,
//TODO: Consider making this an isolated cache instead of using the global one
cache.RuntimeCache));
cache.RuntimeCache,
GetRepo<IEntityRepository>(c)));
var macroService = GetLazyService<IMacroService>(container, () => new MacroService(provider, logger, eventMessagesFactory));
var packagingService = GetLazyService<IPackagingService>(container, () => new PackagingService(logger, contentService.Value, contentTypeService.Value, mediaService.Value, macroService.Value, dataTypeService.Value, fileService.Value, localizationService.Value, entityService.Value, userService.Value, provider, urlSegmentProviders));
var relationService = GetLazyService<IRelationService>(container, () => new RelationService(provider, logger, eventMessagesFactory, entityService.Value));
var treeService = GetLazyService<IApplicationTreeService>(container, () => new ApplicationTreeService(logger, cache));
var tagService = GetLazyService<ITagService>(container, () => new TagService(provider, logger, eventMessagesFactory));
var sectionService = GetLazyService<ISectionService>(container, () => new SectionService(userService.Value, treeService.Value, provider, cache));
var redirectUrlService = GetLazyService<IRedirectUrlService>(container, () => new RedirectUrlService(provider, logger, eventMessagesFactory));
var macroService = GetLazyService<IMacroService>(container, c => new MacroService(scopeProvider, logger, eventMessagesFactory, GetRepo<IMacroRepository>(c), GetRepo<IAuditRepository>(c)));
var packagingService = GetLazyService<IPackagingService>(container, c => new PackagingService(logger, contentService.Value, contentTypeService.Value, mediaService.Value, macroService.Value, dataTypeService.Value, fileService.Value, localizationService.Value, entityService.Value, userService.Value, scopeProvider, urlSegmentProviders, GetRepo<IAuditRepository>(c), GetRepo<IContentTypeRepository>(c)));
var relationService = GetLazyService<IRelationService>(container, c => new RelationService(scopeProvider, logger, eventMessagesFactory, entityService.Value, GetRepo<IRelationRepository>(c), GetRepo<IRelationTypeRepository>(c)));
var treeService = GetLazyService<IApplicationTreeService>(container, c => new ApplicationTreeService(logger, cache));
var tagService = GetLazyService<ITagService>(container, c => new TagService(scopeProvider, logger, eventMessagesFactory, GetRepo<ITagRepository>(c)));
var sectionService = GetLazyService<ISectionService>(container, c => new SectionService(userService.Value, treeService.Value, scopeProvider, cache));
var redirectUrlService = GetLazyService<IRedirectUrlService>(container, c => new RedirectUrlService(scopeProvider, logger, eventMessagesFactory, GetRepo<IRedirectUrlRepository>(c)));
return new ServiceContext(
migrationEntryService,
@@ -215,10 +215,16 @@ namespace Umbraco.Tests.TestHelpers
redirectUrlService);
}
private Lazy<T> GetLazyService<T>(IServiceFactory container, Func<T> ctor)
private Lazy<T> GetLazyService<T>(IServiceFactory container, Func<IServiceFactory, T> ctor)
where T : class
{
return new Lazy<T>(() => container?.TryGetInstance<T>() ?? ctor());
return new Lazy<T>(() => container?.TryGetInstance<T>() ?? ctor(container));
}
private T GetRepo<T>(IServiceFactory container)
where T : class, IRepository
{
return container?.TryGetInstance<T>() ?? Mock.Of<T>();
}
public IScopeProvider GetScopeProvider(ILogger logger, FileSystems fileSystems = null, IUmbracoDatabaseFactory databaseFactory = null)
@@ -236,24 +242,5 @@ namespace Umbraco.Tests.TestHelpers
var scopeProvider = new ScopeProvider(databaseFactory, fileSystems, logger);
return scopeProvider;
}
public IScopeUnitOfWorkProvider GetScopeUnitOfWorkProvider(ILogger logger, IUmbracoDatabaseFactory databaseFactory = null, RepositoryFactory repositoryFactory = null, IScopeProvider scopeProvider = null)
{
if (databaseFactory == null)
{
//var mappersBuilder = new MapperCollectionBuilder(Current.Container); // fixme
//mappersBuilder.AddCore();
//var mappers = mappersBuilder.CreateCollection();
var mappers = Current.Container.GetInstance<IMapperCollection>();
databaseFactory = new UmbracoDatabaseFactory(Constants.System.UmbracoConnectionName, GetDefaultSqlSyntaxProviders(logger), logger, mappers);
}
if (scopeProvider == null)
{
var fileSystems = new FileSystems(logger);
scopeProvider = new ScopeProvider(databaseFactory, fileSystems, logger);
}
repositoryFactory = repositoryFactory ?? new RepositoryFactory(Mock.Of<IServiceContainer>());
return new ScopeUnitOfWorkProvider(scopeProvider, databaseFactory.SqlContext, repositoryFactory);
}
}
}
@@ -14,7 +14,6 @@ using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Logging;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.SqlSyntax;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.PropertyEditors;
using Umbraco.Core.Services;
using Umbraco.Web;
@@ -53,8 +52,6 @@ namespace Umbraco.Tests.TestHelpers
protected CacheHelper DisabledCache => _disabledCacheHelper ?? (_disabledCacheHelper = CacheHelper.CreateDisabledCacheHelper());
protected IScopeUnitOfWorkProvider UowProvider => Current.Container.GetInstance<IScopeUnitOfWorkProvider>();
protected PublishedContentTypeCache ContentTypesCache { get; private set; }
protected override ISqlSyntaxProvider SqlSyntax => GetSyntaxProvider();
@@ -260,8 +257,9 @@ namespace Umbraco.Tests.TestHelpers
Current.Services,
Container.GetInstance<IPublishedContentTypeFactory>(),
(ScopeProvider) Current.ScopeProvider,
UowProvider,
cache, publishedSnapshotAccessor, Current.Logger, ContentTypesCache, null, true, Options.PublishedRepositoryEvents);
cache, publishedSnapshotAccessor,
null, null, null,
Current.Logger, ContentTypesCache, null, true, Options.PublishedRepositoryEvents);
// initialize PublishedCacheService content with an Xml source
service.XmlStore.GetXmlDocument = () =>
@@ -294,9 +294,6 @@ namespace Umbraco.Tests.Testing
Container.RegisterSingleton(factory => new FileSystems(factory.TryGetInstance<ILogger>()));
Container.RegisterSingleton(factory
=> TestObjects.GetScopeProvider(factory.TryGetInstance<ILogger>(), factory.TryGetInstance<FileSystems>(), factory.TryGetInstance<IUmbracoDatabaseFactory>()));
Container.RegisterSingleton(factory
=> TestObjects.GetScopeUnitOfWorkProvider(factory.TryGetInstance<ILogger>(), factory.TryGetInstance<IUmbracoDatabaseFactory>(),
factory.TryGetInstance<RepositoryFactory>(), factory.TryGetInstance<IScopeProvider>()));
Container.RegisterFrom<ServicesCompositionRoot>();
// composition root is doing weird things, fix
@@ -13,7 +13,6 @@ using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Logging;
using Umbraco.Core.Models.PublishedContent;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.PropertyEditors;
using Umbraco.Core.Scoping;
using Umbraco.Core.Services;
@@ -423,9 +422,10 @@ namespace Umbraco.Tests.Web.Mvc
var cache = new NullCacheProvider();
//var provider = new ScopeUnitOfWorkProvider(databaseFactory, new RepositoryFactory(Mock.Of<IServiceContainer>()));
var scopeProvider = TestObjects.GetScopeProvider(Mock.Of<ILogger>());
var uowProvider = TestObjects.GetScopeUnitOfWorkProvider(Mock.Of<ILogger>(), scopeProvider: scopeProvider);
var factory = Mock.Of<IPublishedContentTypeFactory>();
_service = new PublishedSnapshotService(svcCtx, factory, scopeProvider, uowProvider, cache, Enumerable.Empty<IUrlSegmentProvider>(), null, Current.Logger, null, true, false); // no events
_service = new PublishedSnapshotService(svcCtx, factory, scopeProvider, cache, Enumerable.Empty<IUrlSegmentProvider>(), null,
null, null, null,
Current.Logger, null, true, false); // no events
var http = GetHttpContextFactory(url, routeData).HttpContext;