package mvd.jester.priority; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import mvd.jester.model.SystemSetup; import mvd.jester.model.Task; import mvd.jester.simulator.DynamicForkJoin; import mvd.jester.simulator.ParallelSynchronous; import mvd.jester.simulator.internals.parallelsynchronous.TaskContext; import mvd.jester.tests.ChwaLee; import mvd.jester.tests.MaiaBertogna; import mvd.jester.tests.SchmidMottok; /** * TestRateMonotonic */ public class TestRateMonotonic { @Test @DisplayName("Test if priority manager returns the correct priority.") public void testPriority() { RateMonotonic rm = new RateMonotonic(); Task t1 = mock(Task.class); Task t2 = mock(Task.class); when(t1.getPeriod()).thenReturn((long) 100); when(t2.getPeriod()).thenReturn((long) 200); TaskContext tc1 = mock(TaskContext.class); TaskContext tc2 = mock(TaskContext.class); when(tc1.getTask()).thenReturn(t1); when(tc2.getTask()).thenReturn(t2); assertTrue(rm.compare(t1, t2) < 0); assertTrue(rm.compare(tc1, tc2) < 0); assertTrue(rm.compare(t1, t1) == 0); assertTrue(rm.compare(tc1, tc1) == 0); assertTrue(rm.compare(t2, t1) > 0); assertTrue(rm.compare(tc2, tc1) > 0); } @Test @DisplayName("Check Tests and Simulators.") void testTestsAndSimulators() { RateMonotonic rm = new RateMonotonic(); assertFalse(rm.hasTest(ChwaLee.class)); assertTrue(rm.hasTest(MaiaBertogna.class)); assertTrue(rm.hasTest(SchmidMottok.class)); assertTrue(rm.hasSimulator(ParallelSynchronous.class)); assertTrue(rm.hasSimulator(DynamicForkJoin.class)); assertFalse(rm.hasTest(new ChwaLee(mock(SystemSetup.class)))); assertTrue(rm.hasTest(new SchmidMottok(mock(SystemSetup.class)))); assertTrue(rm.hasTest(new MaiaBertogna(mock(SystemSetup.class)))); assertTrue(rm.hasSimulator(new ParallelSynchronous(mock(SystemSetup.class)))); assertTrue(rm.hasSimulator(new DynamicForkJoin(mock(SystemSetup.class)))); assertTrue(rm.getName().equals("RM")); } }