From bda0c17f89b1f9abe6a53217153d522a070ffc0a Mon Sep 17 00:00:00 2001 From: Ruidy Nemausat Date: Mon, 17 Feb 2020 12:08:40 +0100 Subject: [PATCH] appUserModelTests. --- Models/AppUser.cs | 9 -- Models/Project.cs | 17 +--- Models/User.cs | 46 ---------- .../UnitTests/AppUserModelTests.cs | 83 +++++++++++++++++++ .../UnitTests/ProjectModelTests.cs | 2 - 5 files changed, 86 insertions(+), 71 deletions(-) delete mode 100644 Models/User.cs create mode 100644 Tests/TicketManager.Tests/UnitTests/AppUserModelTests.cs diff --git a/Models/AppUser.cs b/Models/AppUser.cs index fb53b1a..8d81141 100644 --- a/Models/AppUser.cs +++ b/Models/AppUser.cs @@ -51,15 +51,6 @@ namespace TicketManager.Models return Assignments.Select(a => a.Project).ToList(); } - // public Project GetProject(int id) - // { - // return Assignments.Single(a => a.Project.Id == id).Project; - // } - - // public List GetProjectMembers(int id) - // { - // return GetProject(id).GetMembers(); - // } public List GetTickets() { List tickets = new List(); diff --git a/Models/Project.cs b/Models/Project.cs index 57576ce..edc57eb 100644 --- a/Models/Project.cs +++ b/Models/Project.cs @@ -76,10 +76,9 @@ namespace TicketManager.Models { return this.Assignments.Select(a => a.User).ToList(); } + public void AddMembers(List usersToAdd) { - var projectUsers = new List - (this.Assignments.Select(a => a.UserId)); foreach (var user in usersToAdd) { Assignment newAssign = new Assignment @@ -92,6 +91,7 @@ namespace TicketManager.Models this.Assignments.Add(newAssign); } } + public void RemoveMembers(List membersToRemove) { this.Assignments.RemoveAll(a => membersToRemove.Contains(a.User)); @@ -122,21 +122,10 @@ namespace TicketManager.Models // public void GetTicketsCount() => this.Tickets.Count(); public void GetTicketsUpdates() { throw new NotImplementedException("Not Implemented"); } + public void Close() { this.Status = Status.Done; } - - // private void AddLogEntry(string description)//, User user) - // { - // History Edit = new History() - // { - // Description = description, - // ActivityType = ActivityType.Undefined, - // // User = user, - // UpdateDate = DateTime.Now - // }; - // this.Edits.Add(Edit); - // } } } \ No newline at end of file diff --git a/Models/User.cs b/Models/User.cs deleted file mode 100644 index 126ff10..0000000 --- a/Models/User.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace TicketManager.Models -{ - public class User - { - public Guid Id { get; set; } - public string FirstName { get; set; } - public string LastName { get; set; } - public string FullName => $"{FirstName} {LastName}"; - public string Presentation { get; set; } - public string Email { get; set; } - public string Phone { get; set; } - public DateTime Created_at { get; } = DateTime.Now; - public byte[] Picture { get; set; } - // public Role Role { get; set; } - - private List _assignments; - public List Assignments - { - get - { - return _assignments ?? new List(); - } - set { _assignments = value; } - } - - private List _edits; - public List Edits - { - get - { - return _edits ?? new List(); - } - set { _edits = value; } - } - - // Methods - public void GetProjects() { throw new NotImplementedException("Not Implemented"); } - public void GetProjectMembers() { throw new NotImplementedException("Not Implemented"); } - public void GetTickets() { throw new NotImplementedException("Not Implemented"); } - - - } -} \ No newline at end of file diff --git a/Tests/TicketManager.Tests/UnitTests/AppUserModelTests.cs b/Tests/TicketManager.Tests/UnitTests/AppUserModelTests.cs new file mode 100644 index 0000000..8243ef1 --- /dev/null +++ b/Tests/TicketManager.Tests/UnitTests/AppUserModelTests.cs @@ -0,0 +1,83 @@ +using Xunit; +using TicketManager.Models; + +namespace TicketManager.Tests +{ + public class AppUserModelTests + { + [Fact] + public void GetProjects_Returns3Projects() + { + AppUser user = new AppUser(); + Project p1 = new Project(); + Project p2 = new Project(); + Project p3 = new Project(); + + Assignment a1 = new Assignment() + { + User = user, + Project = p1 + }; + user.Assignments.Add(a1); + Assignment a2 = new Assignment() + { + User = user, + Project = p2 + }; + user.Assignments.Add(a2); + Assignment a3 = new Assignment() + { + User = user, + Project = p3 + }; + user.Assignments.Add(a3); + + var res = user.GetProjects().Count; + Assert.Equal(3, res); + } + + [Fact] + public void GetTickets_Returns6Tickets() + { + AppUser user = new AppUser(); + Project p1 = new Project(); + Project p2 = new Project(); + Project p3 = new Project(); + Ticket t1 = new Ticket(); + Ticket t2 = new Ticket(); + Ticket t3 = new Ticket(); + Ticket t4 = new Ticket(); + Ticket t5 = new Ticket(); + Ticket t6 = new Ticket(); + + Assignment a1 = new Assignment() + { + User = user, + Project = p1 + }; + user.Assignments.Add(a1); + Assignment a2 = new Assignment() + { + User = user, + Project = p2 + }; + user.Assignments.Add(a2); + Assignment a3 = new Assignment() + { + User = user, + Project = p3 + }; + user.Assignments.Add(a3); + + p1.Tickets.Add(t1); + p2.Tickets.Add(t2); + p2.Tickets.Add(t3); + p3.Tickets.Add(t4); + p3.Tickets.Add(t5); + p3.Tickets.Add(t6); + + var res = user.GetTickets().Count; + Assert.Equal(6, res); + } + } +} diff --git a/Tests/TicketManager.Tests/UnitTests/ProjectModelTests.cs b/Tests/TicketManager.Tests/UnitTests/ProjectModelTests.cs index 2d8a1c4..d258e2c 100644 --- a/Tests/TicketManager.Tests/UnitTests/ProjectModelTests.cs +++ b/Tests/TicketManager.Tests/UnitTests/ProjectModelTests.cs @@ -1,8 +1,6 @@ using System.Linq; using Xunit; using System.Collections.Generic; -using TicketManager.Controllers; -using TicketManager.Data; using TicketManager.Models; namespace TicketManager.Tests