using System; using System.Collections.Generic; using LCU.API.Internal.Operations.IncentiveApi.Models; using LCU.Library.Internal.IncentiveApiModels.Common; using LCU.Library.Internal.IncentiveApiModels.Entities; using LCU.Library.Internal.IncentiveApiModels.Enums; using NUnit.Framework; namespace Application.UnitTests.Models { public class EmployeeGoalTest { [Test] public void ApplyGoals_Basic() { var goals = new List() { new Goal() { Product = Product.Vehicle, DepartmentId = 55, EmployeeId = "11771", Value = 1 }, new Goal() { Product = Product.CheckCard, DepartmentId = 55, EmployeeId = "11771", Value = 34 }, // This user shouldn't have this goal, but they do... new Goal() { Product = Product.CheckCard, DepartmentId = 56, EmployeeId = "11771", Value = 44 }, }; var user = new AppUser() { Role = Role.Admin, AdEmail = "tester@test.com", BaseRole = "Tester", EmployeeId = "11771", FullName = "Test McTester", HomeDepartment = "HOME", PersonId = 565, Departments = new List() { new UserDepartment() { DepartmentId = 55 } } }; var range = new MonthRange(2021,1,2021,2); var employeeGoals = new EmployeeGoals(user, range); Assert.NotNull(employeeGoals.Departments); Assert.AreEqual(1, employeeGoals.Departments.Count); Assert.AreEqual(0,employeeGoals.Goals[55].ProductGoals[Product.Vehicle]); Assert.AreEqual(0,employeeGoals.Goals[55].ProductGoals[Product.CheckCard]); employeeGoals.ApplyAll(goals); Assert.AreEqual(1,employeeGoals.Goals[55].ProductGoals[Product.Vehicle]); Assert.AreEqual(34,employeeGoals.Goals[55].ProductGoals[Product.CheckCard]); } [Test] public void EmployeeGoals_CreatesGoalsForDepartmentsAssignedInRange() { var deparmentBeforeRange = new UserDepartment() { DepartmentId = 1, StartDate = new DateTime(2020, 12, 1), EndDate = new DateTime(2020, 12, 31) }; var departmentAfterRange = new UserDepartment() { DepartmentId = 2, StartDate = new DateTime(2021, 3, 1), EndDate = new DateTime(2021, 3, 31) }; var departmentInRange = new UserDepartment() { DepartmentId = 3, StartDate = new DateTime(2021, 2, 1), EndDate = new DateTime(2021, 2, 28) }; var departmentCurrentlyAssigned = new UserDepartment() { DepartmentId = 4, StartDate = new DateTime(2020, 1, 1), EndDate = null }; var user = new AppUser() { Role = Role.Admin, AdEmail = "tester@test.com", BaseRole = "Tester", EmployeeId = "11771", FullName = "Test McTester", HomeDepartment = "HOME", PersonId = 565, Departments = new List() { deparmentBeforeRange, departmentAfterRange, departmentCurrentlyAssigned, departmentInRange } }; var range = new MonthRange(2021,1,2021,2); var employeeGoals = new EmployeeGoals(user, range); Assert.AreEqual(2, employeeGoals.Departments.Count); Assert.IsFalse(employeeGoals.Departments.Contains(deparmentBeforeRange)); Assert.IsFalse(employeeGoals.Departments.Contains(departmentAfterRange)); Assert.IsTrue(employeeGoals.Departments.Contains(departmentInRange)); Assert.IsTrue(employeeGoals.Departments.Contains(departmentCurrentlyAssigned)); } } }