Refactored code, restructured project organization, and added new unit tests.

This commit is contained in:
Daniel Wathen
2022-12-13 12:11:28 -07:00
parent 8f96e31121
commit b5def3da89
33 changed files with 670 additions and 418 deletions

View File

@ -3,7 +3,7 @@ using ReportingServices.HelperClasses;
namespace ReportingServices.Test
{
[TestClass]
public class UnitTest1
public class APIHelperTester
{
[TestMethod]
public void CheckShortDateWithPassedInDate()

View File

@ -0,0 +1,64 @@
using ReportingServices.ViewModels.ProductionReport;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ReportingServices.Test
{
[TestClass]
public class DailyReportTester
{
[TestMethod]
public void SetRDSInfo_InputData_CalculatedAndStoresCorrectly()
{
// Arrange
DailyReport rpt = new();
rpt.CurrentEntries = TestingClass.ManualReportEntries;
Dictionary<string, List<int>> dualLayerReactors = new()
{
{ "ASM", new List<int>() { 24, 62 } },
{ "HTR", new List<int>() { } },
{ "EPP", new List<int>() { 40, 42, 44, 46 } },
};
int asmUnloadTempsLessThan700 = 3;
int htrUnloadTempsLessThan700 = 3;
// Act
rpt.SetRDSInfo(TestingClass.RDSList);
// Assert
CollectionAssert.AreEqual(dualLayerReactors["ASM"].ToList(), rpt.DualLayerReactors["ASM"].ToList());
CollectionAssert.AreEqual(dualLayerReactors["HTR"].ToList(), rpt.DualLayerReactors["HTR"].ToList());
CollectionAssert.AreEqual(dualLayerReactors["EPP"].ToList(), rpt.DualLayerReactors["EPP"].ToList());
Assert.AreEqual(asmUnloadTempsLessThan700, rpt.CurrentEntries[(int)DateTime.Now.DayOfWeek].ASMUnloadTempsLessThan700);
Assert.AreEqual(htrUnloadTempsLessThan700, rpt.CurrentEntries[(int)DateTime.Now.DayOfWeek].HTRUnloadTempsLessThan700);
}
[TestMethod]
public void SetReactorInfo_InputData_CalculatedAndStoresCorrectly()
{
// Arrange
DailyReport rpt = new();
rpt.CurrentEntries = TestingClass.ManualReportEntries;
int numberOfToolsWaferSize6IN = 11;
int numberOfToolsWaferSize8IN = 46;
int numberOfToolsWaferSize6INScheduled = 9;
int numberOfToolsWaferSize8INScheduled = 39;
int singleLoadLockASM = 5;
int singleLoadLockHTR = 14;
// Act
rpt.SetReactorInfo(TestingClass.Reactors, TestingClass.UnscheduledReactors);
// Assert
Assert.AreEqual(numberOfToolsWaferSize6IN, rpt.NumberOfToolsWaferSize6IN);
Assert.AreEqual(numberOfToolsWaferSize8IN, rpt.NumberOfToolsWaferSize8IN);
Assert.AreEqual(numberOfToolsWaferSize6INScheduled, rpt.NumberOfToolsWaferSize6INScheduled);
Assert.AreEqual(numberOfToolsWaferSize8INScheduled, rpt.NumberOfToolsWaferSize8INScheduled);
Assert.AreEqual(singleLoadLockASM, rpt.CurrentEntries[(int)DateTime.Now.DayOfWeek].ASMSingleLoadLock);
Assert.AreEqual(singleLoadLockHTR, rpt.CurrentEntries[(int)DateTime.Now.DayOfWeek].HTRSingleLoadLock);
}
}
}

View File

@ -0,0 +1,186 @@
using ReportingServices.Models.ProductionReport;
namespace ReportingServices.Test
{
internal static class TestingClass
{
public static readonly List<RDS> RDSList = new()
{
new RDS(79, "ASM+", new DateTime(2022, 12, 13), 600, "Standard 1 Layer"),
new RDS(45, "HTR", new DateTime(2022, 12, 13), 550, "Standard 1 Layer"),
new RDS(62, "ASM+", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(62, "ASM+", new DateTime(2022, 12, 13), 700, "Standard 2 Layer"),
new RDS(62, "ASM+", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(24, "ASM", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(24, "ASM", new DateTime(2022, 12, 13), 800, "Standard 2 Layer"),
new RDS(24, "ASM", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(66, "ASM+", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(28, "ASM", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(28, "ASM", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(63, "ASM+", new DateTime(2022, 12, 13), 800, "Standard 1 Layer"),
new RDS(63, "ASM+", new DateTime(2022, 12, 13), 800, "Standard 1 Layer"),
new RDS(23, "ASM", new DateTime(2022, 12, 13), 550, "Standard 1 Layer"),
new RDS(23, "ASM", new DateTime(2022, 12, 13), 550, "Standard 1 Layer"),
new RDS(32, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(58, "ASM", new DateTime(2022, 12, 13), 650, "Standard 1 Layer"),
new RDS(77, "ASM+", new DateTime(2022, 12, 13), 800, "Standard 1 Layer"),
new RDS(77, "ASM+", new DateTime(2022, 12, 13), 800, "Standard 1 Layer"),
new RDS(57, "ASM+", new DateTime(2022, 12, 13), 800, "Standard 1 Layer"),
new RDS(57, "ASM+", new DateTime(2022, 12, 13), 800, "Standard 1 Layer"),
new RDS(20, "ASM", new DateTime(2022, 12, 13), 800, "Standard 1 Layer"),
new RDS(20, "ASM", new DateTime(2022, 12, 13), 800, "Standard 1 Layer"),
new RDS(43, "ASM+", new DateTime(2022, 12, 13), 750, "Standard 1 Layer"),
new RDS(43, "ASM+", new DateTime(2022, 12, 13), 750, "Standard 1 Layer"),
new RDS(29, "ASM", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(25, "ASM", new DateTime(2022, 12, 13), 750, "Standard 1 Layer"),
new RDS(51, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(51, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(51, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(38, "HTR", new DateTime(2022, 12, 13), 550, "Standard 1 Layer"),
new RDS(38, "HTR", new DateTime(2022, 12, 13), 550, "Standard 1 Layer"),
new RDS(64, "ASM+", new DateTime(2022, 12, 13), 800, "Standard 1 Layer"),
new RDS(64, "ASM+", new DateTime(2022, 12, 13), 800, "Standard 1 Layer"),
new RDS(32, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(37, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(37, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(30, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(31, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(33, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(33, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(33, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(55, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(55, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(55, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(36, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(21, "ASM", new DateTime(2022, 12, 13), 800, "Standard 1 Layer"),
new RDS(21, "ASM", new DateTime(2022, 12, 13), 800, "Standard 1 Layer"),
new RDS(73, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(75, "ASM+", new DateTime(2022, 12, 13), 750, "Standard 1 Layer"),
new RDS(75, "ASM+", new DateTime(2022, 12, 13), 750, "Standard 1 Layer"),
new RDS(51, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(53, "ASM+", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(53, "ASM+", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(35, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(35, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(35, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(36, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(68, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(68, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(68, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(41, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(41, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(41, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(70, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(70, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(70, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(70, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(74, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(74, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(74, "HTR", new DateTime(2022, 12, 13), 700, "Standard 1 Layer"),
new RDS(61, "ASM+", new DateTime(2022, 12, 13), 800, "Standard 1 Layer"),
new RDS(61, "ASM+", new DateTime(2022, 12, 13), 800, "Standard 1 Layer"),
new RDS(49, "HTR", new DateTime(2022, 12, 13), 550, "Standard 1 Layer"),
new RDS(42, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(42, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(42, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(46, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(46, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(52, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 1 Layer"),
new RDS(48, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 1 Layer"),
new RDS(54, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 1 Layer"),
new RDS(50, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 1 Layer"),
new RDS(40, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(40, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(42, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(42, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(44, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(44, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(46, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(46, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(46, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 2 Layer"),
new RDS(48, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 1 Layer"),
new RDS(50, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 1 Layer"),
new RDS(52, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 1 Layer"),
new RDS(54, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 1 Layer"),
new RDS(48, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 1 Layer"),
new RDS(52, "EPP", new DateTime(2022, 12, 13), 1000, "Standard 1 Layer"),
};
public static readonly List<Reactor> Reactors = new()
{
new Reactor(20, "ASM", "200 mm 8 in", false),
new Reactor(21, "ASM", "200 mm 8 in", false),
new Reactor(22, "ASM", "200 mm 8 in", false),
new Reactor(23, "ASM", "200 mm 8 in", false),
new Reactor(24, "ASM", "200 mm 8 in", false),
new Reactor(25, "ASM", "200 mm 8 in", true),
new Reactor(26, "ASM", "200 mm 8 in", false),
new Reactor(27, "ASM", "200 mm 8 in", false),
new Reactor(28, "ASM", "150 mm 6 in", true),
new Reactor(29, "ASM", "200 mm 8 in", false),
new Reactor(30, "HTR", "200 mm 8 in", true),
new Reactor(31, "HTR", "200 mm 8 in", true),
new Reactor(32, "HTR", "200 mm 8 in", true),
new Reactor(33, "HTR", "200 mm 8 in", true),
new Reactor(34, "HTR", "200 mm 8 in", false),
new Reactor(35, "HTR", "200 mm 8 in", false),
new Reactor(36, "HTR", "200 mm 8 in", false),
new Reactor(37, "HTR", "200 mm 8 in", true),
new Reactor(38, "HTR", "200 mm 8 in", true),
new Reactor(39, "ASM+", "200 mm 8 in", false),
new Reactor(40, "EPP", "150 mm 6 in", false),
new Reactor(41, "HTR", "200 mm 8 in", true),
new Reactor(42, "EPP", "150 mm 6 in", false),
new Reactor(43, "ASM+", "200 mm 8 in", false),
new Reactor(44, "EPP", "150 mm 6 in", false),
new Reactor(45, "HTR", "200 mm 8 in", true),
new Reactor(46, "EPP", "150 mm 6 in", false),
new Reactor(47, "HTR", "150 mm 6 in", true),
new Reactor(48, "EPP", "200 mm 8 in", false),
new Reactor(49, "HTR", "200 mm 8 in", true),
new Reactor(50, "EPP", "200 mm 8 in", false),
new Reactor(51, "HTR", "150 mm 6 in", true),
new Reactor(52, "EPP", "200 mm 8 in", false),
new Reactor(53, "ASM+", "200 mm 8 in", false),
new Reactor(54, "EPP", "200 mm 8 in", false),
new Reactor(55, "HTR", "200 mm 8 in", true),
new Reactor(56, "ASM+", "200 mm 8 in", true),
new Reactor(57, "ASM+", "200 mm 8 in", false),
new Reactor(58, "ASM", "200 mm 8 in", false),
new Reactor(59, "ASM", "200 mm 8 in", false),
new Reactor(60, "ASM+", "200 mm 8 in", true),
new Reactor(61, "ASM+", "200 mm 8 in", false),
new Reactor(62, "ASM+", "200 mm 8 in", true),
new Reactor(63, "ASM+", "200 mm 8 in", false),
new Reactor(64, "ASM+", "200 mm 8 in", false),
new Reactor(65, "ASM+", "200 mm 8 in", false),
new Reactor(66, "ASM+", "200 mm 8 in", false),
new Reactor(68, "HTR", "200 mm 8 in", false),
new Reactor(70, "HTR", "150 mm 6 in", true),
new Reactor(72, "HTR", "200 mm 8 in", true),
new Reactor(73, "HTR", "200 mm 8 in", false),
new Reactor(74, "HTR", "150 mm 6 in", false),
new Reactor(75, "ASM+", "200 mm 8 in", false),
new Reactor(77, "ASM+", "200 mm 8 in", false),
new Reactor(79, "ASM+", "200 mm 8 in", false),
new Reactor(100, "ASM", "150 mm 6 in", false),
new Reactor(101, "ASM", "150 mm 6 in", false),
};
public static readonly List<int> UnscheduledReactors = new()
{
20, 25, 30, 32, 49, 55, 59, 67, 69, 70, 74
};
public static readonly List<ManualReportEntries> ManualReportEntries = new()
{
new ManualReportEntries(),
new ManualReportEntries(),
new ManualReportEntries(),
new ManualReportEntries(),
new ManualReportEntries(),
new ManualReportEntries(),
new ManualReportEntries(),
};
}
}