diff --git a/lab3/src/test/java/ru/spbstu/telematics/java/HeaterTests.java b/lab3/src/test/java/ru/spbstu/telematics/java/HeaterTests.java new file mode 100644 index 0000000..0494e2f --- /dev/null +++ b/lab3/src/test/java/ru/spbstu/telematics/java/HeaterTests.java @@ -0,0 +1,58 @@ +package ru.spbstu.telematics.java; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.BeforeEach; +import static org.junit.jupiter.api.Assertions.*; + +public class HeaterTests { + Room room; + double initialTemperature; + double initialHumidity; + Heater heater; + Thread heaterThread; + + @BeforeEach + public void setUp() { + room = new Room(); + initialTemperature = room.getTemperature(); + initialHumidity = room.getHumidity(); + heater = new Heater(room); + heaterThread = new Thread(heater); + } + + /* + * Проверяет, что включенный нагреватель увеличивает температуру в комнате + * и при этом не изменяет влажность. + */ + @Test + public void testHeaterOn() throws InterruptedException { + heater.turnOn(); + heaterThread.start(); + + Thread.sleep(5000); + + assertEquals(initialHumidity, room.getHumidity()); + assertTrue(initialTemperature < room.getTemperature()); + + heaterThread.interrupt(); + heaterThread.join(); + } + + + /* + * Проверяет, что выключенный нагреватель не изменяет температуру и влажность + * в комнате. + */ + @Test + public void testHeaterOff() throws InterruptedException { + heaterThread.start(); + + Thread.sleep(5000); + + assertEquals(initialHumidity, room.getHumidity()); + assertEquals(initialTemperature, room.getTemperature()); + + heaterThread.interrupt(); + heaterThread.join(); + } +}