solve test case compile error
This commit is contained in:
parent
3b4fd3435b
commit
43812c1f67
|
|
@ -44,7 +44,7 @@ public abstract class AbstractWorkerProvider {
|
|||
}
|
||||
|
||||
for (int i = 1; i <= workerNum(); i++) {
|
||||
system.actorOf(Props.create(workerClass(), roleName()), roleName() + "_" + i);
|
||||
system.actorOf(Props.create(workerClass()), roleName() + "_" + i);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,9 +29,9 @@ public class SpiTestWorkerFactoryTestCase {
|
|||
new JavaTestKit(system) {{
|
||||
SpiTestWorkerFactory aWorkerProvider = new SpiTestWorkerFactory();
|
||||
aWorkerProvider.createWorker(system);
|
||||
system.actorSelection("/user/" + SpiTestWorkerFactory.WorkerRole + "_1").tell("Test1", getRef());
|
||||
system.actorSelection("/user/" + aWorkerProvider.roleName() + "_1").tell("Test1", getRef());
|
||||
expectMsgEquals(duration("1 second"), "Yes");
|
||||
system.actorSelection("/user/" + SpiTestWorkerFactory.WorkerRole + "_2").tell("Test2", getRef());
|
||||
system.actorSelection("/user/" + aWorkerProvider.roleName() + "_2").tell("Test2", getRef());
|
||||
expectMsgEquals(duration("1 second"), "No");
|
||||
}};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,10 +21,21 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||
public class WorkersRefCenterTestCase {
|
||||
|
||||
ActorSystem system;
|
||||
TestActorRef<WorkersListener> actorRef1;
|
||||
TestActorRef<WorkersListener> actorRef2;
|
||||
TestActorRef<WorkersListener> actorRef3;
|
||||
|
||||
@Before
|
||||
public void createSystem() {
|
||||
system = ActorSystem.create();
|
||||
final Props props = Props.create(WorkersListener.class);
|
||||
actorRef1 = TestActorRef.create(system, props, "WorkersListener1");
|
||||
actorRef2 = TestActorRef.create(system, props, "WorkersListener2");
|
||||
actorRef3 = TestActorRef.create(system, props, "WorkersListener3");
|
||||
|
||||
WorkersRefCenter.INSTANCE.register(actorRef1, "WorkersListener");
|
||||
WorkersRefCenter.INSTANCE.register(actorRef2, "WorkersListener");
|
||||
WorkersRefCenter.INSTANCE.register(actorRef3, "WorkersListener");
|
||||
}
|
||||
|
||||
@After
|
||||
|
|
@ -33,71 +44,45 @@ public class WorkersRefCenterTestCase {
|
|||
system.awaitTermination();
|
||||
system = null;
|
||||
|
||||
MemberModifier.field(WorkersRefCenter.class, "actorToRole").set(WorkersRefCenter.INSTANCE, new ConcurrentHashMap());
|
||||
MemberModifier.field(WorkersRefCenter.class, "roleToActor").set(WorkersRefCenter.INSTANCE, new ConcurrentHashMap());
|
||||
MemberModifier.field(WorkersRefCenter.class, "roleToWorkerRef").set(WorkersRefCenter.INSTANCE, new ConcurrentHashMap());
|
||||
MemberModifier.field(WorkersRefCenter.class, "actorRefToWorkerRef").set(WorkersRefCenter.INSTANCE, new ConcurrentHashMap());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRegister() throws IllegalAccessException {
|
||||
final Props props = Props.create(WorkersListener.class);
|
||||
final TestActorRef<WorkersListener> actorRef1 = TestActorRef.create(system, props, "WorkersListener1");
|
||||
final TestActorRef<WorkersListener> actorRef2 = TestActorRef.create(system, props, "WorkersListener2");
|
||||
final TestActorRef<WorkersListener> actorRef3 = TestActorRef.create(system, props, "WorkersListener3");
|
||||
|
||||
WorkersRefCenter.INSTANCE.register(actorRef1, "WorkersListener");
|
||||
WorkersRefCenter.INSTANCE.register(actorRef2, "WorkersListener");
|
||||
WorkersRefCenter.INSTANCE.register(actorRef3, "WorkersListener");
|
||||
|
||||
Map<WorkerRef, String> actorToRole = (Map<WorkerRef, String>) MemberModifier.field(WorkersRefCenter.class, "actorToRole").get(WorkersRefCenter.INSTANCE);
|
||||
|
||||
for (Map.Entry<WorkerRef, String> entry : actorToRole.entrySet()) {
|
||||
WorkerRef workerRef = entry.getKey();
|
||||
if (workerRef.equals(actorRef1) || workerRef.equals(actorRef2) || workerRef.equals(actorRef3)) {
|
||||
Assert.assertEquals("WorkersListener", entry.getValue());
|
||||
} else {
|
||||
Assert.fail();
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, List<WorkerRef>> roleToActor = (Map<String, List<WorkerRef>>) MemberModifier.field(WorkersRefCenter.class, "roleToActor").get(WorkersRefCenter.INSTANCE);
|
||||
Map<String, List<WorkerRef>> roleToActor = (Map<String, List<WorkerRef>>) MemberModifier.field(WorkersRefCenter.class, "roleToWorkerRef").get(WorkersRefCenter.INSTANCE);
|
||||
List<WorkerRef> workerRefs = roleToActor.get("WorkersListener");
|
||||
Assert.assertEquals(actorRef1.path().toString(), workerRefs.get(0).path().toString());
|
||||
Assert.assertEquals(actorRef2.path().toString(), workerRefs.get(1).path().toString());
|
||||
Assert.assertEquals(actorRef3.path().toString(), workerRefs.get(2).path().toString());
|
||||
|
||||
ActorRef actorRef = (ActorRef) MemberModifier.field(WorkerRef.class, "actorRef").get(workerRefs.get(0));
|
||||
Assert.assertEquals(actorRef1, actorRef);
|
||||
actorRef = (ActorRef) MemberModifier.field(WorkerRef.class, "actorRef").get(workerRefs.get(1));
|
||||
Assert.assertEquals(actorRef2, actorRef);
|
||||
actorRef = (ActorRef) MemberModifier.field(WorkerRef.class, "actorRef").get(workerRefs.get(2));
|
||||
Assert.assertEquals(actorRef3, actorRef);
|
||||
|
||||
Map<ActorRef, WorkerRef> actorToRole = (Map<ActorRef, WorkerRef>) MemberModifier.field(WorkersRefCenter.class, "actorRefToWorkerRef").get(WorkersRefCenter.INSTANCE);
|
||||
Assert.assertEquals("WorkersListener", actorToRole.get(actorRef1).getWorkerRole());
|
||||
Assert.assertEquals("WorkersListener", actorToRole.get(actorRef2).getWorkerRole());
|
||||
Assert.assertEquals("WorkersListener", actorToRole.get(actorRef3).getWorkerRole());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUnRegister() throws IllegalAccessException {
|
||||
final Props props = Props.create(WorkersListener.class);
|
||||
final TestActorRef<WorkersListener> actorRef1 = TestActorRef.create(system, props, "WorkersListener1");
|
||||
final TestActorRef<WorkersListener> actorRef2 = TestActorRef.create(system, props, "WorkersListener2");
|
||||
final TestActorRef<WorkersListener> actorRef3 = TestActorRef.create(system, props, "WorkersListener3");
|
||||
|
||||
WorkersRefCenter.INSTANCE.register(actorRef1, "WorkersListener");
|
||||
WorkersRefCenter.INSTANCE.register(actorRef2, "WorkersListener");
|
||||
WorkersRefCenter.INSTANCE.register(actorRef3, "WorkersListener");
|
||||
|
||||
Map<ActorRef, String> actorToRole = (Map<ActorRef, String>) MemberModifier.field(WorkersRefCenter.class, "actorToRole").get(WorkersRefCenter.INSTANCE);
|
||||
Map<String, List<ActorRef>> roleToActor = (Map<String, List<ActorRef>>) MemberModifier.field(WorkersRefCenter.class, "roleToActor").get(WorkersRefCenter.INSTANCE);
|
||||
|
||||
WorkersRefCenter.INSTANCE.unregister(actorRef1);
|
||||
Assert.assertEquals(null, actorToRole.get(actorRef1));
|
||||
|
||||
ActorRef[] actorRefs = {actorRef2, actorRef3};
|
||||
Assert.assertArrayEquals(actorRefs, roleToActor.get("WorkersListener").toArray());
|
||||
Map<String, List<WorkerRef>> roleToWorkerRef = (Map<String, List<WorkerRef>>) MemberModifier.field(WorkersRefCenter.class, "roleToWorkerRef").get(WorkersRefCenter.INSTANCE);
|
||||
ActorRef actorRef = (ActorRef) MemberModifier.field(WorkerRef.class, "actorRef").get(roleToWorkerRef.get("WorkersListener").get(0));
|
||||
Assert.assertEquals(actorRef2, actorRef);
|
||||
|
||||
actorRef = (ActorRef) MemberModifier.field(WorkerRef.class, "actorRef").get(roleToWorkerRef.get("WorkersListener").get(1));
|
||||
Assert.assertEquals(actorRef3, actorRef);
|
||||
|
||||
Map<ActorRef, WorkerRef> actorRefToWorkerRef = (Map<ActorRef, WorkerRef>) MemberModifier.field(WorkersRefCenter.class, "actorRefToWorkerRef").get(WorkersRefCenter.INSTANCE);
|
||||
Assert.assertEquals(null, actorRefToWorkerRef.get(actorRef1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSizeOf() throws NoAvailableWorkerException {
|
||||
final Props props = Props.create(WorkersListener.class);
|
||||
final TestActorRef<WorkersListener> actorRef1 = TestActorRef.create(system, props, "WorkersListener1");
|
||||
final TestActorRef<WorkersListener> actorRef2 = TestActorRef.create(system, props, "WorkersListener2");
|
||||
final TestActorRef<WorkersListener> actorRef3 = TestActorRef.create(system, props, "WorkersListener3");
|
||||
|
||||
WorkersRefCenter.INSTANCE.register(actorRef1, "WorkersListener");
|
||||
WorkersRefCenter.INSTANCE.register(actorRef2, "WorkersListener");
|
||||
WorkersRefCenter.INSTANCE.register(actorRef3, "WorkersListener");
|
||||
|
||||
Assert.assertEquals(3, WorkersRefCenter.INSTANCE.availableWorks("WorkersListener").size());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue