131 lines
4.5 KiB
C#
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));
|
|
}
|
|
}
|
|
}
|