Changed all repository tests to ensure they are not testing with cache enabled... now to fix the problems :(

This commit is contained in:
Shannon
2013-09-18 11:40:40 +10:00
parent 5b943ca866
commit 8fe7c0da9e
17 changed files with 1942 additions and 1495 deletions

View File

@@ -3,6 +3,7 @@ using System.Linq;
using NUnit.Framework;
using Umbraco.Core;
using Umbraco.Core.Models;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Caching;
using Umbraco.Core.Persistence.Querying;
using Umbraco.Core.Persistence.Repositories;
@@ -25,16 +26,22 @@ namespace Umbraco.Tests.Persistence.Repositories
CreateTestData();
}
private RelationRepository CreateRepository(IDatabaseUnitOfWork unitOfWork, out RelationTypeRepository relationTypeRepository)
{
relationTypeRepository = new RelationTypeRepository(unitOfWork, NullCacheProvider.Current);
var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, relationTypeRepository);
return repository;
}
[Test]
public void Can_Instantiate_Repository()
public void Can_Instantiate_Repository_From_Resolver()
{
// Arrange
var provider = new PetaPocoUnitOfWorkProvider();
var unitOfWork = provider.GetUnitOfWork();
// Act
var repositoryType = new RelationTypeRepository(unitOfWork);
var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType);
var repository = RepositoryResolver.Current.ResolveByType<IRelationRepository>(unitOfWork);
// Assert
Assert.That(repository, Is.Not.Null);
@@ -46,18 +53,20 @@ namespace Umbraco.Tests.Persistence.Repositories
// Arrange
var provider = new PetaPocoUnitOfWorkProvider();
var unitOfWork = provider.GetUnitOfWork();
var repositoryType = new RelationTypeRepository(unitOfWork);
var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType);
RelationTypeRepository repositoryType;
using (var repository = CreateRepository(unitOfWork, out repositoryType))
{
// Act
var relationType = repositoryType.Get(1);
var relation = new Relation(1047, 1048, relationType);
repository.AddOrUpdate(relation);
unitOfWork.Commit();
// Act
var relationType = repositoryType.Get(1);
var relation = new Relation(1047, 1048, relationType);
repository.AddOrUpdate(relation);
unitOfWork.Commit();
// Assert
Assert.That(relation, Is.Not.Null);
Assert.That(relation.HasIdentity, Is.True);
// Assert
Assert.That(relation, Is.Not.Null);
Assert.That(relation.HasIdentity, Is.True);
}
}
[Test]
@@ -66,21 +75,23 @@ namespace Umbraco.Tests.Persistence.Repositories
// Arrange
var provider = new PetaPocoUnitOfWorkProvider();
var unitOfWork = provider.GetUnitOfWork();
var repositoryType = new RelationTypeRepository(unitOfWork);
var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType);
RelationTypeRepository repositoryType;
using (var repository = CreateRepository(unitOfWork, out repositoryType))
{
// Act
var relation = repository.Get(1);
relation.Comment = "This relation has been updated";
repository.AddOrUpdate(relation);
unitOfWork.Commit();
// Act
var relation = repository.Get(1);
relation.Comment = "This relation has been updated";
repository.AddOrUpdate(relation);
unitOfWork.Commit();
var relationUpdated = repository.Get(1);
var relationUpdated = repository.Get(1);
// Assert
Assert.That(relationUpdated, Is.Not.Null);
Assert.That(relationUpdated.Comment, Is.EqualTo("This relation has been updated"));
Assert.AreNotEqual(relationUpdated.UpdateDate, relation.UpdateDate);
// Assert
Assert.That(relationUpdated, Is.Not.Null);
Assert.That(relationUpdated.Comment, Is.EqualTo("This relation has been updated"));
Assert.AreNotEqual(relationUpdated.UpdateDate, relation.UpdateDate);
}
}
[Test]
@@ -89,18 +100,20 @@ namespace Umbraco.Tests.Persistence.Repositories
// Arrange
var provider = new PetaPocoUnitOfWorkProvider();
var unitOfWork = provider.GetUnitOfWork();
var repositoryType = new RelationTypeRepository(unitOfWork);
var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType);
RelationTypeRepository repositoryType;
using (var repository = CreateRepository(unitOfWork, out repositoryType))
{
// Act
var relation = repository.Get(2);
repository.Delete(relation);
unitOfWork.Commit();
// Act
var relation = repository.Get(2);
repository.Delete(relation);
unitOfWork.Commit();
var exists = repository.Exists(2);
var exists = repository.Exists(2);
// Assert
Assert.That(exists, Is.False);
// Assert
Assert.That(exists, Is.False);
}
}
[Test]
@@ -109,18 +122,20 @@ namespace Umbraco.Tests.Persistence.Repositories
// Arrange
var provider = new PetaPocoUnitOfWorkProvider();
var unitOfWork = provider.GetUnitOfWork();
var repositoryType = new RelationTypeRepository(unitOfWork);
var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType);
RelationTypeRepository repositoryType;
using (var repository = CreateRepository(unitOfWork, out repositoryType))
{
// Act
var relation = repository.Get(1);
// Act
var relation = repository.Get(1);
// Assert
Assert.That(relation, Is.Not.Null);
Assert.That(relation.HasIdentity, Is.True);
Assert.That(relation.ChildId, Is.EqualTo(1047));
Assert.That(relation.ParentId, Is.EqualTo(1046));
Assert.That(relation.RelationType.Alias, Is.EqualTo("relateContentOnCopy"));
// Assert
Assert.That(relation, Is.Not.Null);
Assert.That(relation.HasIdentity, Is.True);
Assert.That(relation.ChildId, Is.EqualTo(1047));
Assert.That(relation.ParentId, Is.EqualTo(1046));
Assert.That(relation.RelationType.Alias, Is.EqualTo("relateContentOnCopy"));
}
}
[Test]
@@ -129,17 +144,19 @@ namespace Umbraco.Tests.Persistence.Repositories
// Arrange
var provider = new PetaPocoUnitOfWorkProvider();
var unitOfWork = provider.GetUnitOfWork();
var repositoryType = new RelationTypeRepository(unitOfWork);
var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType);
RelationTypeRepository repositoryType;
using (var repository = CreateRepository(unitOfWork, out repositoryType))
{
// Act
var relations = repository.GetAll();
// Act
var relations = repository.GetAll();
// Assert
Assert.That(relations, Is.Not.Null);
Assert.That(relations.Any(), Is.True);
Assert.That(relations.Any(x => x == null), Is.False);
Assert.That(relations.Count(), Is.EqualTo(2));
// Assert
Assert.That(relations, Is.Not.Null);
Assert.That(relations.Any(), Is.True);
Assert.That(relations.Any(x => x == null), Is.False);
Assert.That(relations.Count(), Is.EqualTo(2));
}
}
[Test]
@@ -148,17 +165,19 @@ namespace Umbraco.Tests.Persistence.Repositories
// Arrange
var provider = new PetaPocoUnitOfWorkProvider();
var unitOfWork = provider.GetUnitOfWork();
var repositoryType = new RelationTypeRepository(unitOfWork);
var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType);
RelationTypeRepository repositoryType;
using (var repository = CreateRepository(unitOfWork, out repositoryType))
{
// Act
var relations = repository.GetAll(1, 2);
// Act
var relations = repository.GetAll(1, 2);
// Assert
Assert.That(relations, Is.Not.Null);
Assert.That(relations.Any(), Is.True);
Assert.That(relations.Any(x => x == null), Is.False);
Assert.That(relations.Count(), Is.EqualTo(2));
// Assert
Assert.That(relations, Is.Not.Null);
Assert.That(relations.Any(), Is.True);
Assert.That(relations.Any(x => x == null), Is.False);
Assert.That(relations.Count(), Is.EqualTo(2));
}
}
[Test]
@@ -167,16 +186,18 @@ namespace Umbraco.Tests.Persistence.Repositories
// Arrange
var provider = new PetaPocoUnitOfWorkProvider();
var unitOfWork = provider.GetUnitOfWork();
var repositoryType = new RelationTypeRepository(unitOfWork);
var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType);
RelationTypeRepository repositoryType;
using (var repository = CreateRepository(unitOfWork, out repositoryType))
{
// Act
var exists = repository.Exists(2);
var doesntExist = repository.Exists(5);
// Act
var exists = repository.Exists(2);
var doesntExist = repository.Exists(5);
// Assert
Assert.That(exists, Is.True);
Assert.That(doesntExist, Is.False);
// Assert
Assert.That(exists, Is.True);
Assert.That(doesntExist, Is.False);
}
}
[Test]
@@ -185,15 +206,17 @@ namespace Umbraco.Tests.Persistence.Repositories
// Arrange
var provider = new PetaPocoUnitOfWorkProvider();
var unitOfWork = provider.GetUnitOfWork();
var repositoryType = new RelationTypeRepository(unitOfWork);
var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType);
RelationTypeRepository repositoryType;
using (var repository = CreateRepository(unitOfWork, out repositoryType))
{
// Act
var query = Query<Relation>.Builder.Where(x => x.ParentId == 1046);
int count = repository.Count(query);
// Act
var query = Query<Relation>.Builder.Where(x => x.ParentId == 1046);
int count = repository.Count(query);
// Assert
Assert.That(count, Is.EqualTo(2));
// Assert
Assert.That(count, Is.EqualTo(2));
}
}
[Test]
@@ -202,18 +225,20 @@ namespace Umbraco.Tests.Persistence.Repositories
// Arrange
var provider = new PetaPocoUnitOfWorkProvider();
var unitOfWork = provider.GetUnitOfWork();
var repositoryType = new RelationTypeRepository(unitOfWork);
var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType);
RelationTypeRepository repositoryType;
using (var repository = CreateRepository(unitOfWork, out repositoryType))
{
// Act
var query = Query<Relation>.Builder.Where(x => x.RelationTypeId == 2);
var relations = repository.GetByQuery(query);
// Act
var query = Query<Relation>.Builder.Where(x => x.RelationTypeId == 2);
var relations = repository.GetByQuery(query);
// Assert
Assert.That(relations, Is.Not.Null);
Assert.That(relations.Any(), Is.True);
Assert.That(relations.Any(x => x == null), Is.False);
Assert.That(relations.Count(), Is.EqualTo(2));
// Assert
Assert.That(relations, Is.Not.Null);
Assert.That(relations.Any(), Is.True);
Assert.That(relations.Any(x => x == null), Is.False);
Assert.That(relations.Count(), Is.EqualTo(2));
}
}
[Test]
@@ -222,19 +247,21 @@ namespace Umbraco.Tests.Persistence.Repositories
// Arrange
var provider = new PetaPocoUnitOfWorkProvider();
var unitOfWork = provider.GetUnitOfWork();
var repositoryType = new RelationTypeRepository(unitOfWork);
var repository = new RelationRepository(unitOfWork, NullCacheProvider.Current, repositoryType);
RelationTypeRepository repositoryType;
using (var repository = CreateRepository(unitOfWork, out repositoryType))
{
var content = ServiceContext.ContentService.GetById(1047);
ServiceContext.ContentService.Delete(content, 0);
var content = ServiceContext.ContentService.GetById(1047);
ServiceContext.ContentService.Delete(content, 0);
// Act
var shouldntExist = repository.Exists(1);
var shouldExist = repository.Exists(2);
// Act
var shouldntExist = repository.Exists(1);
var shouldExist = repository.Exists(2);
// Assert
Assert.That(shouldntExist, Is.False);
Assert.That(shouldExist, Is.True);
// Assert
Assert.That(shouldntExist, Is.False);
Assert.That(shouldExist, Is.True);
}
}
[TearDown]