LayoutTest.java 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. package eu.fcheret.parkingtoll.model;
  2. import eu.fcheret.parkingtoll.exceptions.ParkingIsFullException;
  3. import org.junit.jupiter.api.Test;
  4. import static org.junit.jupiter.api.Assertions.*;
  5. class LayoutTest {
  6. @Test
  7. void decrementAndGetID() {
  8. Layout layout = new Layout();
  9. layout.setAvailable(2);
  10. Long id1 = layout.decrementAndGetID();
  11. assertEquals(1, layout.getAvailable().get());
  12. Long id2 = layout.decrementAndGetID();
  13. assertEquals(0, layout.getAvailable().get());
  14. assertThrows(ParkingIsFullException.class, layout::decrementAndGetID);
  15. assertEquals(0, layout.getAvailable().get());
  16. assertNotEquals(id2,id1);
  17. }
  18. @Test
  19. void incrementAndFree() {
  20. Layout layout = new Layout();
  21. layout.setAvailable(2);
  22. Long id1 = layout.decrementAndGetID();
  23. assertEquals(1, layout.getAvailable().get());
  24. layout.incrementAndFree(id1);
  25. assertEquals(2, layout.getAvailable().get());
  26. Long id2 = layout.decrementAndGetID();
  27. Long id3 = layout.decrementAndGetID();
  28. //id1 should be re-used
  29. assertTrue(id1.equals(id3) || id2.equals(id3));
  30. }
  31. }