few more tests for TaskRepository

This commit is contained in:
Shannon
2015-01-19 18:50:17 +11:00
parent d4b718d615
commit ef4d28299a
5 changed files with 93 additions and 25 deletions

View File

@@ -6,7 +6,7 @@ namespace Umbraco.Core.Persistence.Repositories
{
public interface ITaskRepository : IRepositoryQueryable<int, Task>
{
IEnumerable<Task> GetTasks(Guid? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false);
//IEnumerable<Task> GetTasks(Guid? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false);
IEnumerable<Task> GetTasks(int? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false);
//IEnumerable<Task> GetTasksForItem(int id);

View File

@@ -108,8 +108,6 @@ namespace Umbraco.Core.Persistence.Repositories
{
entity.AddingEntity();
//ensure the task type exists
var taskType = Database.SingleOrDefault<TaskTypeDto>("Where alias = @alias", new {alias = entity.TaskType.Alias});
if (taskType == null)
@@ -117,6 +115,10 @@ namespace Umbraco.Core.Persistence.Repositories
var taskTypeId = Convert.ToInt32(Database.Insert(new TaskTypeDto {Alias = entity.TaskType.Alias}));
entity.TaskType.Id = taskTypeId;
}
else
{
entity.TaskType.Id = taskType.Id;
}
var factory = new TaskFactory();
var dto = factory.BuildDto(entity);
@@ -132,18 +134,18 @@ namespace Umbraco.Core.Persistence.Repositories
throw new NotImplementedException();
}
public IEnumerable<Task> GetTasks(Guid? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false)
{
var sql = GetGetTasksQuery(assignedUser, ownerUser, taskTypeAlias, includeClosed);
if (itemId.HasValue)
{
sql.Where<NodeDto>(dto => dto.UniqueId == itemId.Value);
}
//public IEnumerable<Task> GetTasks(Guid? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false)
//{
// var sql = GetGetTasksQuery(assignedUser, ownerUser, taskTypeAlias, includeClosed);
// if (itemId.HasValue)
// {
// sql.Where<NodeDto>(dto => dto.UniqueId == itemId.Value);
// }
var dtos = Database.Fetch<TaskDto, TaskTypeDto>(sql);
var entities = Mapper.Map<IEnumerable<Task>>(dtos);
return entities;
}
// var dtos = Database.Fetch<TaskDto, TaskTypeDto>(sql);
// var entities = Mapper.Map<IEnumerable<Task>>(dtos);
// return entities;
//}
public IEnumerable<Task> GetTasks(int? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false)
{
@@ -154,8 +156,8 @@ namespace Umbraco.Core.Persistence.Repositories
}
var dtos = Database.Fetch<TaskDto, TaskTypeDto>(sql);
var entities = Mapper.Map<IEnumerable<Task>>(dtos);
return entities;
var factory = new TaskFactory();
return dtos.Select(factory.BuildEntity);
}
private Sql GetGetTasksQuery(int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false)

View File

@@ -6,7 +6,7 @@ namespace Umbraco.Core.Services
{
public interface ITaskService
{
IEnumerable<Task> GetTasks(Guid? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false);
//IEnumerable<Task> GetTasks(Guid? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false);
IEnumerable<Task> GetTasks(int? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false);
}
}

View File

@@ -16,13 +16,13 @@ namespace Umbraco.Core.Services
{
}
public IEnumerable<Task> GetTasks(Guid? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false)
{
using (var repo = RepositoryFactory.CreateTaskRepository(UowProvider.GetUnitOfWork()))
{
return repo.GetTasks(itemId, assignedUser, ownerUser, taskTypeAlias);
}
}
//public IEnumerable<Task> GetTasks(Guid? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false)
//{
// using (var repo = RepositoryFactory.CreateTaskRepository(UowProvider.GetUnitOfWork()))
// {
// return repo.GetTasks(itemId, assignedUser, ownerUser, taskTypeAlias);
// }
//}
public IEnumerable<Task> GetTasks(int? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false)
{

View File

@@ -30,7 +30,7 @@ namespace Umbraco.Tests.Persistence.Repositories
});
unitOfWork.Commit();
var found = repo.GetAll();
var found = repo.GetAll().ToArray();
Assert.AreEqual(1, found.Count());
Assert.AreEqual(0, found.First().AssigneeUserId);
@@ -43,5 +43,71 @@ namespace Umbraco.Tests.Persistence.Repositories
Assert.AreEqual(true, found.First().TaskType.HasIdentity);
}
}
[Test]
public void Get_All()
{
CreateTestData(false, 20);
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
using (var repo = new TaskRepository(unitOfWork, CacheHelper, Logger, SqlSyntaxProvider))
{
var found = repo.GetAll().ToArray();
Assert.AreEqual(20, found.Count());
}
}
[Test]
public void Get_All_With_Closed()
{
CreateTestData(false, 10);
CreateTestData(true, 5);
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
using (var repo = new TaskRepository(unitOfWork, CacheHelper, Logger, SqlSyntaxProvider))
{
var found = repo.GetTasks(includeClosed: true).ToArray();
Assert.AreEqual(15, found.Count());
}
}
[Test]
public void Get_All_Without_Closed()
{
CreateTestData(false, 10);
CreateTestData(true, 5);
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
using (var repo = new TaskRepository(unitOfWork, CacheHelper, Logger, SqlSyntaxProvider))
{
var found = repo.GetTasks(includeClosed: false);
Assert.AreEqual(10, found.Count());
}
}
private void CreateTestData(bool closed, int count)
{
var provider = new PetaPocoUnitOfWorkProvider(Logger);
var unitOfWork = provider.GetUnitOfWork();
using (var repo = new TaskRepository(unitOfWork, CacheHelper, Logger, SqlSyntaxProvider))
{
for (int i = 0; i < count; i++)
{
repo.AddOrUpdate(new Task(new TaskType("asdfasdf"))
{
AssigneeUserId = 0,
Closed = closed,
Comment = "hello world " + i,
EntityId = -1,
OwnerUserId = 0
});
unitOfWork.Commit();
}
}
}
}
}