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(); mockRepo.Setup(r => r.List()) .ReturnsAsync(GetTestProjects()); var controller = new ProjectsController(mockRepo.Object); // Act var result = await controller.GetProjects(); // Assert var viewResult = Assert.IsAssignableFrom>(result); } [Fact] public async Task Get1_ReturnsProject1() { // Arrange var mockRepo = new Mock(); 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(result); } private List GetTestProjects() { var projects = new List(); 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>(result); // } } }