| 12345678910111213141516171819202122232425262728293031323334353637 |
- package eu.fcheret.parkingtoll.model;
- import eu.fcheret.parkingtoll.exceptions.ParkingIsFullException;
- import org.junit.jupiter.api.Test;
- import static org.junit.jupiter.api.Assertions.*;
- class LayoutTest {
- @Test
- void decrementAndGetID() {
- Layout layout = new Layout();
- layout.setAvailable(2);
- Long id1 = layout.decrementAndGetID();
- assertEquals(1, layout.getAvailable().get());
- Long id2 = layout.decrementAndGetID();
- assertEquals(0, layout.getAvailable().get());
- assertThrows(ParkingIsFullException.class, layout::decrementAndGetID);
- assertEquals(0, layout.getAvailable().get());
- assertNotEquals(id2,id1);
- }
- @Test
- void incrementAndFree() {
- Layout layout = new Layout();
- layout.setAvailable(2);
- Long id1 = layout.decrementAndGetID();
- assertEquals(1, layout.getAvailable().get());
- layout.incrementAndFree(id1);
- assertEquals(2, layout.getAvailable().get());
- Long id2 = layout.decrementAndGetID();
- Long id3 = layout.decrementAndGetID();
- //id1 should be re-used
- assertTrue(id1.equals(id3) || id2.equals(id3));
- }
- }
|