m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/pl/edu/mimuw/cloudatlas/agent/SchedulerTest.java
diff options
context:
space:
mode:
authorMagdalena Grodzińska <mag.grodzinska@gmail.com>2019-12-23 23:27:01 +0100
committerMagdalena Grodzińska <mag.grodzinska@gmail.com>2019-12-23 23:27:01 +0100
commit6bd93c4fc80624eb83e9a1eb9b93e5781a796505 (patch)
treee7ef6843c89a18b229ec83a7ce8e326fc0c4193e /src/test/java/pl/edu/mimuw/cloudatlas/agent/SchedulerTest.java
parent054c14ae3d1c2f02d6012c6133fa78c5a1a15c96 (diff)
Fix agent message type checks
Diffstat (limited to 'src/test/java/pl/edu/mimuw/cloudatlas/agent/SchedulerTest.java')
-rw-r--r--src/test/java/pl/edu/mimuw/cloudatlas/agent/SchedulerTest.java109
1 files changed, 91 insertions, 18 deletions
diff --git a/src/test/java/pl/edu/mimuw/cloudatlas/agent/SchedulerTest.java b/src/test/java/pl/edu/mimuw/cloudatlas/agent/SchedulerTest.java
index 3787355..5f0d1a7 100644
--- a/src/test/java/pl/edu/mimuw/cloudatlas/agent/SchedulerTest.java
+++ b/src/test/java/pl/edu/mimuw/cloudatlas/agent/SchedulerTest.java
@@ -2,47 +2,120 @@ package pl.edu.mimuw.cloudatlas.agent;
import org.junit.Test;
import pl.edu.mimuw.cloudatlas.agent.messages.AgentMessage;
+import pl.edu.mimuw.cloudatlas.agent.messages.TimerSchedulerMessage;
import pl.edu.mimuw.cloudatlas.agent.modules.Module;
+import pl.edu.mimuw.cloudatlas.agent.modules.TimerScheduledTask;
import pl.edu.mimuw.cloudatlas.agent.modules.TimerScheduler;
import java.util.ArrayList;
import java.util.HashMap;
-import static org.junit.Assert.assertEquals;
+// TODO better task tests after enabling messaging from tasks
+// TODO add wrong message test with switched types
public class SchedulerTest {
+ private HashMap<AgentMessage.AgentModule, Module> modules;
+ private HashMap<AgentMessage.AgentModule, Executor> executors;
+ private ArrayList<Thread> executorThreads;
+ private EventBus eventBus;
+ private Thread eventBusThread;
+
+ public SchedulerTest() {
+ this.modules = initializeModule();
+ this.executors = Agent.initializeExecutors(modules);
+ this.executorThreads = Agent.initializeExecutorThreads(executors);
+ this.eventBus = new EventBus(executors);
+ this.eventBusThread = new Thread(eventBus);
+ eventBusThread.start();
+ }
public HashMap<AgentMessage.AgentModule, Module> initializeModule() {
HashMap<AgentMessage.AgentModule, Module> modules = new HashMap<AgentMessage.AgentModule, Module>();
+ modules.put(AgentMessage.AgentModule.TIMER_SCHEDULER, new TimerScheduler(AgentMessage.AgentModule.TIMER_SCHEDULER));
+ return modules;
+ }
- modules.put(AgentMessage.AgentModule.TIMER_SCHEDULER, new TimerScheduler(AgentMessage.AgentModule.RMI));
+ @Test
+ public void initializeWrongModuleType() {
+ try {
+ Module timer = new TimerScheduler(AgentMessage.AgentModule.RMI);
+ } catch (AssertionError e) {
+ System.out.println("Wrong timer type during init error caught");
+ }
+ }
- return modules;
+ @Test
+ public void sendWrongMessageType() throws InterruptedException {
+ try {
+ this.eventBus.addMessage(new TimerSchedulerMessage(
+ "0",
+ AgentMessage.AgentModule.UDP,
+ System.currentTimeMillis() / 1000L,
+ "1",
+ 10,
+ System.currentTimeMillis() / 1000L,
+ new TimerScheduledTask() {
+ @Override
+ public void run() {
+ System.out.println("Task executed");
+ }
+ }));
+ Thread.sleep(1000);
+ } catch (AssertionError e) {
+ System.out.println("Wrong timer-scheduler message type error caught");
+ }
}
@Test
- void scheduleTask() {
+ public void scheduleTask() throws InterruptedException {
+ this.eventBus.addMessage(new TimerSchedulerMessage(
+ "0",
+ AgentMessage.AgentModule.TIMER_SCHEDULER,
+ System.currentTimeMillis() / 1000L,
+ "1",
+ 10,
+ System.currentTimeMillis() / 1000L,
+ new TimerScheduledTask() {
+ @Override
+ public void run() {
+ System.out.println("Task executed");
+ }
+ }));
+ Thread.sleep(1000);
}
@Test
- void scheduleTwoTasks() {
- HashMap<AgentMessage.AgentModule, Module> modules = ini();
- HashMap<AgentMessage.AgentModule, Executor> executors = Agent.initializeExecutors(modules);
- ArrayList<Thread> executorThreads = Agent.initializeExecutorThreads(executors);
- EventBus eventBus = new EventBus(executors);
- Thread eventBusThread = new Thread(eventBus);
- eventBusThread.start();
+ public void scheduleTwoTasks() throws InterruptedException {
+ this.eventBus.addMessage(new TimerSchedulerMessage(
+ "0",
+ AgentMessage.AgentModule.TIMER_SCHEDULER,
+ System.currentTimeMillis() / 1000L,
+ "1",
+ 10,
+ System.currentTimeMillis() / 1000L,
+ new TimerScheduledTask() {
+ @Override
+ public void run() {
+ System.out.println("Task 1 executed");
+ }
+ }));
- eventBus.addMessage(new AgentMessage(
+ this.eventBus.addMessage(new TimerSchedulerMessage(
"0",
- AgentMessage.AgentModule.RMI,
- System.currentTimeMillis() / 1000L));
+ AgentMessage.AgentModule.TIMER_SCHEDULER,
+ System.currentTimeMillis() / 1000L,
+ "1",
+ 20,
+ System.currentTimeMillis() / 1000L,
+ new TimerScheduledTask() {
+ @Override
+ public void run() {
+ System.out.println("Task 2 executed");
+ }
+ }));
- Thread.sleep(1000);
- eventBusThread.interrupt();
- Agent.closeExecutors(executorThreads);
- assertEquals(1, ((EventBusTest.MessageCounterModule) modules.get(AgentMessage.AgentModule.RMI)).counter);
+ Thread.sleep(1000);
}
}