ticket_manager/Tests/TicketManager.Tests/UnitTests/ProjectControllerTests.cs
2020-02-25 14:19:44 +01:00

93 lines
2.6 KiB
C#

using System;
using Xunit;
using System.Collections.Generic;
using System.Threading.Tasks;
using Moq;
using TicketManager.Controllers;
using TicketManager.Data;
using TicketManager.Models;
using TicketManager.DTO;
namespace TicketManager.Tests
{
public class ProjectsControllerTests
{
[Fact]
public async Task Get_ReturnsAListofProjects()
{
// Arrange
var mockRepo = new Mock<IProjectRepository>();
mockRepo.Setup(r => r.List())
.ReturnsAsync(GetTestProjects());
var controller = new ProjectsController(mockRepo.Object);
// Act
var result = await controller.GetProjects();
// Assert
var viewResult = Assert.IsAssignableFrom<IEnumerable<Project>>(result);
}
[Fact]
public async Task Get1_ReturnsProject1()
{
// Arrange
var mockRepo = new Mock<IProjectRepository>();
mockRepo.Setup(r => r.Get(1));
// .ReturnsAsync(GetProjectDTO());
var controller = new ProjectsController(mockRepo.Object);
// Act
var result = await controller.GetProject(1);
// Assert
var viewResult = Assert.IsAssignableFrom<Project>(result);
}
private List<Project> GetTestProjects()
{
var projects = new List<Project>();
projects.Add(new Project()
{
PlannedEnding = new DateTime(2016, 7, 2),
Id = 1,
Title = "Test One",
});
projects.Add(new Project()
{
PlannedEnding = new DateTime(2016, 7, 1),
Id = 2,
Title = "Test Two"
});
return projects;
}
private ProjectDTO GetProjectDTO()
{
var project = new Project()
{
Id = 1,
PlannedEnding = new DateTime(2016, 7, 2),
Title = "Test One",
Description = "Lorem Ipsum",
Status = Status.InProgress
};
return new ProjectDTO(project);
}
// [Fact]
// public void Get_ReturnsProjectList()
// {
// // Arange
// // var controller = new ProjectsController();
// // Act
// // var result = controller.GetProjects();
// // Assert
// // Assert.IsType<IEnumerable<Project>>(result);
// }
}
}