package oving6.office; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; public class ClerkTest { private Clerk clerk; private Printer printer; @BeforeEach public void setUp() { printer = new Printer(); clerk = new Clerk(printer); } @Test @DisplayName("Perform calculations") public void testDoCalculations() { assertEquals(0, clerk.getTaskCount(), "Testing the initialization of the number of tasks performed"); double calc1 = clerk.doCalculations((x, y) -> x + y, 2.0, 3.5); assertEquals(5.5, calc1, "Testing calculation with addition: 2.0 + 3.5"); assertEquals(1, clerk.getTaskCount(), "Testing the number of tasks after 1 calculation"); double calc2 = clerk.doCalculations((x, y) -> x / y, 2.0, 4.0); assertEquals(0.5, calc2, "Testing calculation with division: 2.0/4.0"); assertEquals(2, clerk.getTaskCount(), "Testing the number of tasks after two calculations"); } @Test @DisplayName("Print documents") public void testPrintDocuments() { assertEquals(0, clerk.getTaskCount(), "Testing the initialization of the number of tasks performed"); // Print a document clerk.printDocument("document1"); assertTrue(printer.getPrintHistory(clerk).contains("document1"), "Testing if the document that was printed was added to the printer history"); assertEquals(1, clerk.getTaskCount(), "Testing the number of tasks after 1 print"); assertEquals(1, printer.getPrintHistory(clerk).size(), "Testing the number of prints in the history after 1 print"); // Print another document clerk.printDocument("document2"); assertTrue(printer.getPrintHistory(clerk).contains("document2"), "Testing if document 2 that was printed was added to the printer history"); assertEquals(2, clerk.getTaskCount(), "Testing the number of tasks after 2 prints"); assertEquals(2, printer.getPrintHistory(clerk).size(), "Testing the number of prints in the history after 2 prints"); } @Test @DisplayName("Retrieve task count") public void testTaskCount() { assertEquals(0, clerk.getTaskCount(), "Testing the initialization of the number of tasks performed"); clerk.printDocument("document1"); assertEquals(1, clerk.getTaskCount(), "Testing the number of tasks after 1 print"); clerk.doCalculations((x, y) -> x + y, 2.0, 3.5); assertEquals(2, clerk.getTaskCount(), "Testing the number of tasks after 1 print and 1 calculation"); } @Test @DisplayName("Retrieve resource count") public void testResourceCount() { assertEquals(1, clerk.getResourceCount(), "Testing the number of resources for one worker"); } }