Files
2026-03-17 09:53:09 -05:00

131 lines
4.5 KiB
C#

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<Goal>()
{
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 = "[email protected]",
BaseRole = "Tester",
EmployeeId = "11771",
FullName = "Test McTester",
HomeDepartment = "HOME",
PersonId = 565,
Departments = new List<UserDepartment>()
{
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 = "[email protected]",
BaseRole = "Tester",
EmployeeId = "11771",
FullName = "Test McTester",
HomeDepartment = "HOME",
PersonId = 565,
Departments = new List<UserDepartment>()
{
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));
}
}
}