package org.radargun.service; import org.radargun.traits.TopologyHistory; import org.radargun.utils.Utils; import org.testng.annotations.Test; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import static org.mockito.Mockito.*; import static org.radargun.traits.TopologyHistory.Event.EventType; import static org.testng.Assert.*; /** * @author Matej Cimbora */ @Test public class AbstractTopologyHistoryTest { public void testEventCreationFinished() { AbstractTopologyHistory.Event event = new AbstractTopologyHistory.Event(new Date(), EventType.START, 1, 2); assertNotNull(event.getTime()); assertEquals(event.getType(), EventType.START); assertEquals(event.getMembersAtStart(), 1); assertEquals(event.getMembersAtEnd(), 2); } public void testEventCreationNotFinished() { AbstractTopologyHistory.Event event = new AbstractTopologyHistory.Event(new Date(), EventType.END, 1, 2); assertNotNull(event.getTime()); assertEquals(event.getType(), EventType.END); assertEquals(event.getMembersAtStart(), 1); assertEquals(event.getMembersAtEnd(), 2); } public void testEventCreationSingle() { AbstractTopologyHistory.Event event = new AbstractTopologyHistory.Event(new Date(), EventType.SINGLE, 1, 2); assertNotNull(event.getTime()); assertEquals(event.getType(), EventType.SINGLE); assertEquals(event.getMembersAtStart(), 1); assertEquals(event.getMembersAtEnd(), 2); } public void testAddEvent() { AbstractTopologyHistory history = mock(AbstractTopologyHistory.class, CALLS_REAL_METHODS); Map<String, List<AbstractTopologyHistory.Event>> eventMap = new HashMap<>(5); history.addEvent(eventMap, "test", EventType.START, 1, 2); List<AbstractTopologyHistory.Event> eventList = eventMap.get("test"); assertEquals(eventList.size(), 1); AbstractTopologyHistory.Event event = eventList.get(0); assertNotNull(event.getTime()); Utils.sleep(1); history.addEvent(eventMap, "test", EventType.END, 1, 2); assertEquals(eventList.size(), 2); event = eventList.get(1); assertNotNull(event.getTime()); assertEquals(event.getType(), EventType.END); assertTrue(eventList.get(0).getTime().compareTo(eventList.get(1).getTime()) < 0); Utils.sleep(1); history.addEvent(eventMap, "test", EventType.END, 1, 2); assertEquals(eventList.size(), 3); event = eventList.get(2); assertEquals(event.getType(), EventType.END); assertTrue(eventList.get(1).getTime().compareTo(eventList.get(2).getTime()) < 0); Utils.sleep(1); history.addEvent(eventMap, "test", EventType.SINGLE, 1, 2); assertEquals(eventList.size(), 4); event = eventList.get(3); assertEquals(event.getType(), EventType.SINGLE); assertTrue(eventList.get(2).getTime().compareTo(eventList.get(3).getTime()) < 0); Utils.sleep(1); history.addEvent(eventMap, "test", EventType.END, 1, 2); assertEquals(eventList.size(), 5); event = eventList.get(4); assertEquals(event.getType(), EventType.END); assertTrue(eventList.get(3).getTime().compareTo(eventList.get(4).getTime()) < 0); Utils.sleep(1); history.addEvent(eventMap, "test", EventType.START, 1, 2); assertEquals(eventList.size(), 6); event = eventList.get(5); assertEquals(event.getType(), EventType.START); assertTrue(eventList.get(4).getTime().compareTo(eventList.get(5).getTime()) < 0); } }