This commit is contained in:
Ruidy Nemausat 2020-02-25 14:19:44 +01:00
parent e3f8d5df6c
commit 611289c02f
5 changed files with 44 additions and 5 deletions

View file

@ -38,7 +38,6 @@ namespace TicketManager.Controllers
[ProducesResponseType(StatusCodes.Status200OK)]
public async Task<IEnumerable<Project>> GetProjects()
{
return await _projects.List();
}
@ -196,7 +195,7 @@ namespace TicketManager.Controllers
/// <response code="404">Not Found</response>
[ProducesResponseType(StatusCodes.Status204NoContent)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
[HttpPut("{id}/members")]
[HttpPatch("{id}/members")]
public async Task<ActionResult<Project>> SetProjectMembers(int id, List<AppUser> projectMembers)
{
Project project = await _projects.Get(id);

View file

@ -15,7 +15,9 @@ namespace TicketManager.Data
.Include(p => p.Assignments).ThenInclude(a => a.User)
.Include(p => p.Tickets)
.Include(p => p.Manager)
.Include(p => p.Files);
.Include(p => p.Files)
// .AsNoTracking()
;
}
public override async Task<Project> Get(int id)

View file

@ -95,6 +95,10 @@ namespace TicketManager.Models
public void RemoveMembers(List<AppUser> membersToRemove)
{
this.Assignments.RemoveAll(a => membersToRemove.Contains(a.User));
// membersToRemove.ForEach(
// m => m.Assignments.RemoveAll(a => (a.Project == this))
// );
}
public void SetMembers(List<AppUser> projectMembers)

View file

@ -36,7 +36,11 @@ namespace TicketManager
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<AppDbContext>(options =>
options.UseSqlite(Configuration.GetConnectionString("Sqlite")));
{
options.UseSqlite(Configuration.GetConnectionString("Sqlite"));
options.EnableSensitiveDataLogging(true); //Remove in production.
}
);
services.AddScoped<IProjectRepository, ProjectRepository>();
services.AddScoped<IAppUserRepository, AppUserRepository>();
services.AddScoped<ITicketRepository, TicketRepository>();

View file

@ -6,7 +6,7 @@ using Moq;
using TicketManager.Controllers;
using TicketManager.Data;
using TicketManager.Models;
using TicketManager.DTO;
namespace TicketManager.Tests
{
@ -28,6 +28,22 @@ namespace TicketManager.Tests
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>();
@ -46,6 +62,20 @@ namespace TicketManager.Tests
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()