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.SynchronousTask; import mvd.jester.model.SystemManager; 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(); SynchronousTask t1 = mock(SynchronousTask.class); SynchronousTask t2 = mock(SynchronousTask.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(); SystemManager manager = new SystemManager(8); 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(manager))); assertTrue(rm.hasTest(new SchmidMottok(manager))); assertTrue(rm.hasTest(new MaiaBertogna(manager))); // assertTrue(rm.hasSimulator(new ParallelSynchronous(mock(SystemSetup.class)))); // assertTrue(rm.hasSimulator(new DynamicForkJoin(mock(SystemSetup.class)))); assertTrue(rm.getName().equals("RM")); } }