diff --git a/HwProject/tests/DrainTest.java b/HwProject/tests/DrainTest.java index b915abc..b6b2ad3 100644 --- a/HwProject/tests/DrainTest.java +++ b/HwProject/tests/DrainTest.java @@ -1,70 +1,71 @@ -package tests; - -import org.junit.jupiter.api.*; - -import static org.junit.jupiter.api.Assertions.*; - -import src.*; -import tests.HelperClasses.*; - -public class DrainTest { - - private Game game; - - @BeforeEach - public void setUp() { - game = new Game(System.out); - Drain.SetGame(game); - - } - - @Test - public void testGetInstanceNr() { - int initialInstanceNr = Drain.GetInstanceNr(); - Drain drain1 = new Drain(); - assertEquals(initialInstanceNr + 1, Drain.GetInstanceNr()); - } - - @Test - public void testPullWater() { - Source source = new Source(); - TestPipe pipe = new TestPipe(); - Drain drain = new Drain(); - - source.ConnectPipe(pipe); - drain.ConnectPipe(pipe); - - source.Step(); - pipe.Step(); - drain.Step(); - - assertNotEquals(0, game.GetMechanicPoint()); - } - - @Test - public void testPickUpPump() { - // Create a Drain instance - Drain drain = new Drain(); - // Pick up a pump - Pump pump = drain.PickUpPump(); - // Verify that a pump is picked up - assertNotNull(pump); - } - - @Test - public void testPickUpPipe() { - // Create a Drain instance - Drain drain = new Drain(); - // Pick up a pipe - Pipe pipe = drain.PickUpPipe(); - // Verify that a pipe is picked up - assertNotNull(pipe); - } - - @AfterEach - public void cleanUp() { - TestPump.setInstanceNr(0); - TestPipe.setInstanceNr(0); - TestSource.setInstanceNr(0); - } -} +package tests; + +import org.junit.jupiter.api.*; + +import static org.junit.jupiter.api.Assertions.*; + +import src.*; +import tests.HelperClasses.*; + +public class DrainTest { + + private Game game; + + @BeforeEach + public void setUp() { + game = new Game(System.out); + Drain.SetGame(game); + + } + + @Test + public void testGetInstanceNr() { + int initialInstanceNr = Drain.GetInstanceNr(); + Drain drain1 = new Drain(); + assertEquals(initialInstanceNr + 1, Drain.GetInstanceNr()); + } + + @Test + public void testPullWater() { + Source source = new Source(); + TestPipe pipe = new TestPipe(); + Drain drain = new Drain(); + + source.ConnectPipe(pipe); + drain.ConnectPipe(pipe); + + source.Step(); + pipe.Step(); + drain.Step(); + + assertNotEquals(0, game.GetMechanicPoint()); + } + + @Test + public void testPickUpPump() { + // Create a Drain instance + Drain drain = new Drain(); + // Pick up a pump + Pump pump = drain.PickUpPump(); + // Verify that a pump is picked up + assertNotNull(pump); + } + + @Test + public void testPickUpPipe() { + // Create a Drain instance + Drain drain = new Drain(); + // Pick up a pipe + Pipe pipe = drain.PickUpPipe(); + // Verify that a pipe is picked up + assertNotNull(pipe); + } + + @AfterEach + public void cleanUp() { + TestPump.setInstanceNr(0); + TestPipe.setInstanceNr(0); + TestSource.setInstanceNr(0); + TestDrain.setInstanceNr(0); + } +} diff --git a/HwProject/tests/PumpTest.java b/HwProject/tests/PumpTest.java index 904c87e..5092043 100644 --- a/HwProject/tests/PumpTest.java +++ b/HwProject/tests/PumpTest.java @@ -1,147 +1,148 @@ -package tests; - -import org.junit.jupiter.api.*; -import src.*; -import tests.HelperClasses.*; -import java.util.ArrayList; - -import static org.junit.jupiter.api.Assertions.*; - -class PumpTest { - private TestPump pump; - private TestPipe inputPipe; - private TestPipe outputPipe; - private Game game; - - - @BeforeEach - public void init() { - game = new Game(System.out); - Pipe.SetGame(game); - - pump = new TestPump(3); - inputPipe = new TestPipe(); - outputPipe = new TestPipe(); - pump.ConnectPipe(inputPipe); - pump.ConnectPipe(outputPipe); - TestPump endPointOfOutput = new TestPump(3); - endPointOfOutput.ConnectPipe(outputPipe); - } - - @Test - void testConstructor() { - int instanceNrBeforeCreation = pump.getInstanceOfPump(); - pump = new TestPump(3); - int instanceNrAfterCreation = instanceNrBeforeCreation + 1; - assertEquals("Pump" + instanceNrAfterCreation, pump.GetID(), "id should be set correctly"); - assertEquals(0, pump.getWaterLevel(), "Initial water level should be 0"); - assertEquals(50, pump.getMaxWaterLevel(), "Max water level should be 50"); - assertEquals(3, pump.getMaxConnectedPipes(), "Max connected pipes should be set correctly"); - assertFalse(pump.isDamaged(), "Pump should not be damaged initially"); - } - - @Test - void testPushWater() { - pump.SetPumpDirection(inputPipe, outputPipe); - pump.setWaterLevel(10); // Simulate some water in the pump - pump.Step(); - - assertEquals(0, pump.getWaterLevel(), "Water level should be 0 after pushing water to output pipe"); - assertEquals(10, outputPipe.getWaterLevel(), "Output pipe should receive maximum water"); - } - - @Test - void testPullWater() { - pump.SetPumpDirection(inputPipe, outputPipe); - inputPipe.setWaterLevel(30); // Simulate some water in the input pipe - pump.Step(); - - assertEquals(30, pump.getWaterLevel(), "Water level should increase after pulling water from input pipe"); - } - - @Test - void testStep() { - pump.SetPumpDirection(inputPipe, outputPipe); - inputPipe.setWaterLevel(30); // Simulate some water in the input pipe - pump.setWaterLevel(30); // Simulate some water in the input pipe - pump.Step(); - - assertTrue(outputPipe.getWaterLevel() > 0, "Pump should push water to output pipe"); - assertTrue(pump.getWaterLevel() > 0, "Pump should push water to output pipe"); - } - - - - @Test - void testGetDirection() { - pump.SetPumpDirection(inputPipe, outputPipe); - ArrayList directions = pump.getdirection(); - - assertEquals(inputPipe.GetID(), directions.get(0), "Input direction should be correct"); - assertEquals(outputPipe.GetID(), directions.get(1), "Output direction should be correct"); - } - - @Test - void testTryToDamage() { - pump.setRandomEnabled(false); // Disable randomness for predictable results - int result = pump.TrytoDamage(); - - assertTrue(pump.isDamaged(), "Pump should be damaged"); - assertEquals(0, result, "Result should indicate successful damage"); - } - - @Test - void testSetPumpDirection() { - pump.ConnectPipe(inputPipe); - pump.ConnectPipe(outputPipe); - int result = pump.SetPumpDirection(inputPipe, outputPipe); - - assertEquals(0, result, "Result should indicate successful setting of pump direction"); - assertEquals(inputPipe, pump.getInput(), "Input pipe should be set correctly"); - assertEquals(outputPipe, pump.getOutput(), "Output pipe should be set correctly"); - } - - @Test - void testRepair() { - pump.setRandomEnabled(false); // Disable randomness for predictable results - pump.TrytoDamage(); - int result = pump.Repair(); - - assertFalse(pump.isDamaged(), "Pump should be repaired"); - assertEquals(0, result, "Result should indicate successful repair"); - } - - @Test - void testConnectPipe() { - Pipe pipe1 = new Pipe(); - Pipe pipe2 = new Pipe(); - - int result1 = pump.ConnectPipe(pipe1); - int result2 = pump.ConnectPipe(pipe2); - - assertEquals(0, result1, "First pipe should connect successfully"); - assertEquals(4, result2, "Second pipe should connect successfully"); - } - - @Test - void testDisconnectPipe() { - pump.ConnectPipe(inputPipe); - pump.ConnectPipe(outputPipe); - pump.SetPumpDirection(inputPipe, outputPipe); - - int result1 = pump.DisconnectPipe(inputPipe); - int result2 = pump.DisconnectPipe(outputPipe); - - assertEquals(0, result1, "Input pipe should disconnect successfully"); - assertEquals(0, result2, "Output pipe should disconnect successfully"); - assertNull(pump.getInput(), "Input should be null after disconnection"); - assertNull(pump.getOutput(), "Output should be null after disconnection"); - } - - @AfterEach - public void cleanUp() { - TestPump.setInstanceNr(0); - TestPipe.setInstanceNr(0); - TestSource.setInstanceNr(0); - } +package tests; + +import org.junit.jupiter.api.*; +import src.*; +import tests.HelperClasses.*; +import java.util.ArrayList; + +import static org.junit.jupiter.api.Assertions.*; + +class PumpTest { + private TestPump pump; + private TestPipe inputPipe; + private TestPipe outputPipe; + private Game game; + + + @BeforeEach + public void init() { + game = new Game(System.out); + Pipe.SetGame(game); + + pump = new TestPump(3); + inputPipe = new TestPipe(); + outputPipe = new TestPipe(); + pump.ConnectPipe(inputPipe); + pump.ConnectPipe(outputPipe); + TestPump endPointOfOutput = new TestPump(3); + endPointOfOutput.ConnectPipe(outputPipe); + } + + @Test + void testConstructor() { + int instanceNrBeforeCreation = pump.getInstanceOfPump(); + pump = new TestPump(3); + int instanceNrAfterCreation = instanceNrBeforeCreation + 1; + assertEquals("Pump" + instanceNrAfterCreation, pump.GetID(), "id should be set correctly"); + assertEquals(0, pump.getWaterLevel(), "Initial water level should be 0"); + assertEquals(50, pump.getMaxWaterLevel(), "Max water level should be 50"); + assertEquals(3, pump.getMaxConnectedPipes(), "Max connected pipes should be set correctly"); + assertFalse(pump.isDamaged(), "Pump should not be damaged initially"); + } + + @Test + void testPushWater() { + pump.SetPumpDirection(inputPipe, outputPipe); + pump.setWaterLevel(10); // Simulate some water in the pump + pump.Step(); + + assertEquals(0, pump.getWaterLevel(), "Water level should be 0 after pushing water to output pipe"); + assertEquals(10, outputPipe.getWaterLevel(), "Output pipe should receive maximum water"); + } + + @Test + void testPullWater() { + pump.SetPumpDirection(inputPipe, outputPipe); + inputPipe.setWaterLevel(30); // Simulate some water in the input pipe + pump.Step(); + + assertEquals(30, pump.getWaterLevel(), "Water level should increase after pulling water from input pipe"); + } + + @Test + void testStep() { + pump.SetPumpDirection(inputPipe, outputPipe); + inputPipe.setWaterLevel(30); // Simulate some water in the input pipe + pump.setWaterLevel(30); // Simulate some water in the input pipe + pump.Step(); + + assertTrue(outputPipe.getWaterLevel() > 0, "Pump should push water to output pipe"); + assertTrue(pump.getWaterLevel() > 0, "Pump should push water to output pipe"); + } + + + + @Test + void testGetDirection() { + pump.SetPumpDirection(inputPipe, outputPipe); + ArrayList directions = pump.getdirection(); + + assertEquals(inputPipe.GetID(), directions.get(0), "Input direction should be correct"); + assertEquals(outputPipe.GetID(), directions.get(1), "Output direction should be correct"); + } + + @Test + void testTryToDamage() { + pump.setRandomEnabled(false); // Disable randomness for predictable results + int result = pump.TrytoDamage(); + + assertTrue(pump.isDamaged(), "Pump should be damaged"); + assertEquals(0, result, "Result should indicate successful damage"); + } + + @Test + void testSetPumpDirection() { + pump.ConnectPipe(inputPipe); + pump.ConnectPipe(outputPipe); + int result = pump.SetPumpDirection(inputPipe, outputPipe); + + assertEquals(0, result, "Result should indicate successful setting of pump direction"); + assertEquals(inputPipe, pump.getInput(), "Input pipe should be set correctly"); + assertEquals(outputPipe, pump.getOutput(), "Output pipe should be set correctly"); + } + + @Test + void testRepair() { + pump.setRandomEnabled(false); // Disable randomness for predictable results + pump.TrytoDamage(); + int result = pump.Repair(); + + assertFalse(pump.isDamaged(), "Pump should be repaired"); + assertEquals(0, result, "Result should indicate successful repair"); + } + + @Test + void testConnectPipe() { + Pipe pipe1 = new Pipe(); + Pipe pipe2 = new Pipe(); + + int result1 = pump.ConnectPipe(pipe1); + int result2 = pump.ConnectPipe(pipe2); + + assertEquals(0, result1, "First pipe should connect successfully"); + assertEquals(4, result2, "Second pipe should connect successfully"); + } + + @Test + void testDisconnectPipe() { + pump.ConnectPipe(inputPipe); + pump.ConnectPipe(outputPipe); + pump.SetPumpDirection(inputPipe, outputPipe); + + int result1 = pump.DisconnectPipe(inputPipe); + int result2 = pump.DisconnectPipe(outputPipe); + + assertEquals(0, result1, "Input pipe should disconnect successfully"); + assertEquals(0, result2, "Output pipe should disconnect successfully"); + assertNull(pump.getInput(), "Input should be null after disconnection"); + assertNull(pump.getOutput(), "Output should be null after disconnection"); + } + + @AfterEach + public void cleanUp() { + TestPump.setInstanceNr(0); + TestPipe.setInstanceNr(0); + TestSource.setInstanceNr(0); + TestDrain.setInstanceNr(0); + } } \ No newline at end of file diff --git a/HwProject/tests/SourceTest.java b/HwProject/tests/SourceTest.java index 89ac227..3695e16 100644 --- a/HwProject/tests/SourceTest.java +++ b/HwProject/tests/SourceTest.java @@ -1,65 +1,66 @@ -package tests; - -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; -import src.*; -import tests.HelperClasses.*; - -public class SourceTest { - private static TestSource source; - - private static Game game; - - @BeforeAll - public static void init() { - game = new Game(System.out); - Pipe.SetGame(game); //Already two sources in the game - source = new TestSource(); - } - - @Test - public void testConstructor() { - assertEquals("Source3", source.GetID(), "id should be set correctly"); - } - - @Test - public void testPushWater() { - TestPipe pipe1 = new TestPipe(); - TestPipe pipe2 = new TestPipe(); - TestPump pump = new TestPump(10); - source.ConnectPipe(pipe1); - source.ConnectPipe(pipe2); - pump.ConnectPipe(pipe1); - pump.ConnectPipe(pipe2); - source.Step(); - assertTrue(pipe1.getWaterLevel() > 0, "Pipe1 should have received water"); - assertTrue(pipe2.getWaterLevel() > 0, "Pipe2 should have received water"); - } - - @Test - public void testStepCallsPushWater() { - TestSource testSource = new TestSource(); - TestPipe pipe1 = new TestPipe(); - TestPipe pipe2 = new TestPipe(); - TestPump pump = new TestPump(10); - testSource.ConnectPipe(pipe1); - testSource.ConnectPipe(pipe2); - pump.ConnectPipe(pipe1); - pump.ConnectPipe(pipe2); - testSource.Step(); - assertTrue(testSource.isPushWaterCalled(), "PushWater should be called by Step method"); - assertTrue(pipe1.getWaterLevel() > 0, "Pipe1 should have received water"); - assertTrue(pipe2.getWaterLevel() > 0, "Pipe2 should have received water"); - } - - @AfterEach - public void cleanUp() { - TestPump.setInstanceNr(0); - TestPipe.setInstanceNr(0); - TestSource.setInstanceNr(0); - } -} +package tests; + +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import src.*; +import tests.HelperClasses.*; + +public class SourceTest { + private static TestSource source; + + private static Game game; + + @BeforeAll + public static void init() { + game = new Game(System.out); + Pipe.SetGame(game); //Already two sources in the game + source = new TestSource(); + } + + @Test + public void testConstructor() { + assertEquals("Source3", source.GetID(), "id should be set correctly"); + } + + @Test + public void testPushWater() { + TestPipe pipe1 = new TestPipe(); + TestPipe pipe2 = new TestPipe(); + TestPump pump = new TestPump(10); + source.ConnectPipe(pipe1); + source.ConnectPipe(pipe2); + pump.ConnectPipe(pipe1); + pump.ConnectPipe(pipe2); + source.Step(); + assertTrue(pipe1.getWaterLevel() > 0, "Pipe1 should have received water"); + assertTrue(pipe2.getWaterLevel() > 0, "Pipe2 should have received water"); + } + + @Test + public void testStepCallsPushWater() { + TestSource testSource = new TestSource(); + TestPipe pipe1 = new TestPipe(); + TestPipe pipe2 = new TestPipe(); + TestPump pump = new TestPump(10); + testSource.ConnectPipe(pipe1); + testSource.ConnectPipe(pipe2); + pump.ConnectPipe(pipe1); + pump.ConnectPipe(pipe2); + testSource.Step(); + assertTrue(testSource.isPushWaterCalled(), "PushWater should be called by Step method"); + assertTrue(pipe1.getWaterLevel() > 0, "Pipe1 should have received water"); + assertTrue(pipe2.getWaterLevel() > 0, "Pipe2 should have received water"); + } + + @AfterEach + public void cleanUp() { + TestPump.setInstanceNr(0); + TestPipe.setInstanceNr(0); + TestSource.setInstanceNr(0); + TestDrain.setInstanceNr(0); + } +}