2012-10-30 20:01:09 -01:00
|
|
|
|
using NUnit.Framework;
|
|
|
|
|
|
using Umbraco.Core.Models;
|
|
|
|
|
|
using Umbraco.Core.Persistence;
|
|
|
|
|
|
using Umbraco.Core.Persistence.Caching;
|
|
|
|
|
|
using Umbraco.Core.Persistence.Repositories;
|
|
|
|
|
|
using Umbraco.Core.Persistence.UnitOfWork;
|
|
|
|
|
|
using Umbraco.Tests.TestHelpers;
|
|
|
|
|
|
using Umbraco.Tests.TestHelpers.Entities;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Umbraco.Tests.Persistence.Repositories
|
|
|
|
|
|
{
|
|
|
|
|
|
[TestFixture]
|
|
|
|
|
|
public class ContentRepositoryTest : BaseDatabaseFactoryTest
|
|
|
|
|
|
{
|
|
|
|
|
|
[Test]
|
|
|
|
|
|
public void Can_Perform_Add_On_ContentRepository()
|
|
|
|
|
|
{
|
|
|
|
|
|
// Arrange
|
|
|
|
|
|
var provider = new PetaPocoUnitOfWorkProvider();
|
|
|
|
|
|
var unitOfWork = provider.GetUnitOfWork();
|
|
|
|
|
|
var contentTypeRepository = new ContentTypeRepository(unitOfWork);
|
|
|
|
|
|
var repository = new ContentRepository(unitOfWork, InMemoryCacheProvider.Current, contentTypeRepository);
|
|
|
|
|
|
|
|
|
|
|
|
ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage");
|
2012-11-02 09:11:23 -01:00
|
|
|
|
Content textpage = MockedContent.CreateSimpleContent(contentType);
|
2012-10-30 20:01:09 -01:00
|
|
|
|
|
|
|
|
|
|
// Act
|
|
|
|
|
|
contentTypeRepository.AddOrUpdate(contentType);
|
|
|
|
|
|
repository.AddOrUpdate(textpage);
|
|
|
|
|
|
unitOfWork.Commit();
|
|
|
|
|
|
|
|
|
|
|
|
// Assert
|
|
|
|
|
|
Assert.That(contentType.HasIdentity, Is.True);
|
|
|
|
|
|
Assert.That(textpage.HasIdentity, Is.True);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
|
public void Can_Perform_Multiple_Adds_On_ContentRepository()
|
|
|
|
|
|
{
|
|
|
|
|
|
// Arrange
|
|
|
|
|
|
var provider = new PetaPocoUnitOfWorkProvider();
|
|
|
|
|
|
var unitOfWork = provider.GetUnitOfWork();
|
|
|
|
|
|
var contentTypeRepository = new ContentTypeRepository(unitOfWork);
|
|
|
|
|
|
var repository = new ContentRepository(unitOfWork, InMemoryCacheProvider.Current, contentTypeRepository);
|
|
|
|
|
|
|
|
|
|
|
|
ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage");
|
2012-11-02 09:11:23 -01:00
|
|
|
|
Content textpage = MockedContent.CreateSimpleContent(contentType);
|
2012-10-30 20:01:09 -01:00
|
|
|
|
|
|
|
|
|
|
// Act
|
|
|
|
|
|
contentTypeRepository.AddOrUpdate(contentType);
|
|
|
|
|
|
repository.AddOrUpdate(textpage);
|
|
|
|
|
|
unitOfWork.Commit();
|
|
|
|
|
|
|
2012-11-02 09:11:23 -01:00
|
|
|
|
Content subpage = MockedContent.CreateSimpleContent(contentType, "Text Page 1", textpage.Id);
|
2012-10-30 20:01:09 -01:00
|
|
|
|
repository.AddOrUpdate(subpage);
|
|
|
|
|
|
unitOfWork.Commit();
|
|
|
|
|
|
|
|
|
|
|
|
// Assert
|
|
|
|
|
|
Assert.That(contentType.HasIdentity, Is.True);
|
|
|
|
|
|
Assert.That(textpage.HasIdentity, Is.True);
|
|
|
|
|
|
Assert.That(subpage.HasIdentity, Is.True);
|
|
|
|
|
|
Assert.That(textpage.Id, Is.EqualTo(subpage.ParentId));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
|
public void Can_Perform_Multiple_Adds_On_ContentRepository_With_RepositoryResolver()
|
|
|
|
|
|
{
|
|
|
|
|
|
// Arrange
|
|
|
|
|
|
var provider = new PetaPocoUnitOfWorkProvider();
|
|
|
|
|
|
var unitOfWork = provider.GetUnitOfWork();
|
|
|
|
|
|
var contentTypeRepository = RepositoryResolver.ResolveByType<IContentTypeRepository, IContentType, int>(unitOfWork);
|
|
|
|
|
|
var repository = RepositoryResolver.ResolveByType<IContentRepository, IContent, int>(unitOfWork);
|
|
|
|
|
|
|
|
|
|
|
|
ContentType contentType = MockedContentTypes.CreateSimpleContentType("umbTextpage", "Textpage");
|
2012-11-02 09:11:23 -01:00
|
|
|
|
Content textpage = MockedContent.CreateSimpleContent(contentType);
|
2012-10-30 20:01:09 -01:00
|
|
|
|
|
|
|
|
|
|
// Act
|
|
|
|
|
|
contentTypeRepository.AddOrUpdate(contentType);
|
|
|
|
|
|
repository.AddOrUpdate(textpage);
|
|
|
|
|
|
unitOfWork.Commit();
|
|
|
|
|
|
|
|
|
|
|
|
var repository2 = RepositoryResolver.ResolveByType<IContentRepository, IContent, int>(unitOfWork);
|
2012-11-02 09:11:23 -01:00
|
|
|
|
Content subpage = MockedContent.CreateSimpleContent(contentType, "Text Page 1", textpage.Id);
|
2012-10-30 20:01:09 -01:00
|
|
|
|
repository2.AddOrUpdate(subpage);
|
|
|
|
|
|
unitOfWork.Commit();
|
|
|
|
|
|
|
|
|
|
|
|
// Assert
|
|
|
|
|
|
Assert.That(contentType.HasIdentity, Is.True);
|
|
|
|
|
|
Assert.That(textpage.HasIdentity, Is.True);
|
|
|
|
|
|
Assert.That(subpage.HasIdentity, Is.True);
|
|
|
|
|
|
Assert.That(textpage.Id, Is.EqualTo(subpage.ParentId));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|