提交 43812c1f 编写于 作者: P pengys5

solve test case compile error

上级 3b4fd343
...@@ -44,7 +44,7 @@ public abstract class AbstractWorkerProvider { ...@@ -44,7 +44,7 @@ public abstract class AbstractWorkerProvider {
} }
for (int i = 1; i <= workerNum(); i++) { 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 { ...@@ -29,9 +29,9 @@ public class SpiTestWorkerFactoryTestCase {
new JavaTestKit(system) {{ new JavaTestKit(system) {{
SpiTestWorkerFactory aWorkerProvider = new SpiTestWorkerFactory(); SpiTestWorkerFactory aWorkerProvider = new SpiTestWorkerFactory();
aWorkerProvider.createWorker(system); 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"); 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"); expectMsgEquals(duration("1 second"), "No");
}}; }};
} }
......
...@@ -21,10 +21,21 @@ import java.util.concurrent.ConcurrentHashMap; ...@@ -21,10 +21,21 @@ import java.util.concurrent.ConcurrentHashMap;
public class WorkersRefCenterTestCase { public class WorkersRefCenterTestCase {
ActorSystem system; ActorSystem system;
TestActorRef<WorkersListener> actorRef1;
TestActorRef<WorkersListener> actorRef2;
TestActorRef<WorkersListener> actorRef3;
@Before @Before
public void createSystem() { public void createSystem() {
system = ActorSystem.create(); 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 @After
...@@ -33,71 +44,45 @@ public class WorkersRefCenterTestCase { ...@@ -33,71 +44,45 @@ public class WorkersRefCenterTestCase {
system.awaitTermination(); system.awaitTermination();
system = null; system = null;
MemberModifier.field(WorkersRefCenter.class, "actorToRole").set(WorkersRefCenter.INSTANCE, new ConcurrentHashMap()); MemberModifier.field(WorkersRefCenter.class, "roleToWorkerRef").set(WorkersRefCenter.INSTANCE, new ConcurrentHashMap());
MemberModifier.field(WorkersRefCenter.class, "roleToActor").set(WorkersRefCenter.INSTANCE, new ConcurrentHashMap()); MemberModifier.field(WorkersRefCenter.class, "actorRefToWorkerRef").set(WorkersRefCenter.INSTANCE, new ConcurrentHashMap());
} }
@Test @Test
public void testRegister() throws IllegalAccessException { public void testRegister() throws IllegalAccessException {
final Props props = Props.create(WorkersListener.class); Map<String, List<WorkerRef>> roleToActor = (Map<String, List<WorkerRef>>) MemberModifier.field(WorkersRefCenter.class, "roleToWorkerRef").get(WorkersRefCenter.INSTANCE);
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);
List<WorkerRef> workerRefs = roleToActor.get("WorkersListener"); 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()); ActorRef actorRef = (ActorRef) MemberModifier.field(WorkerRef.class, "actorRef").get(workerRefs.get(0));
Assert.assertEquals(actorRef3.path().toString(), workerRefs.get(2).path().toString()); 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 @Test
public void testUnRegister() throws IllegalAccessException { public void testUnRegister() throws IllegalAccessException {
final Props props = Props.create(WorkersListener.class); WorkersRefCenter.INSTANCE.unregister(actorRef1);
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<WorkerRef>> roleToWorkerRef = (Map<String, List<WorkerRef>>) MemberModifier.field(WorkersRefCenter.class, "roleToWorkerRef").get(WorkersRefCenter.INSTANCE);
Map<String, List<ActorRef>> roleToActor = (Map<String, List<ActorRef>>) MemberModifier.field(WorkersRefCenter.class, "roleToActor").get(WorkersRefCenter.INSTANCE); ActorRef actorRef = (ActorRef) MemberModifier.field(WorkerRef.class, "actorRef").get(roleToWorkerRef.get("WorkersListener").get(0));
Assert.assertEquals(actorRef2, actorRef);
WorkersRefCenter.INSTANCE.unregister(actorRef1); actorRef = (ActorRef) MemberModifier.field(WorkerRef.class, "actorRef").get(roleToWorkerRef.get("WorkersListener").get(1));
Assert.assertEquals(null, actorToRole.get(actorRef1)); Assert.assertEquals(actorRef3, actorRef);
ActorRef[] actorRefs = {actorRef2, actorRef3}; Map<ActorRef, WorkerRef> actorRefToWorkerRef = (Map<ActorRef, WorkerRef>) MemberModifier.field(WorkersRefCenter.class, "actorRefToWorkerRef").get(WorkersRefCenter.INSTANCE);
Assert.assertArrayEquals(actorRefs, roleToActor.get("WorkersListener").toArray()); Assert.assertEquals(null, actorRefToWorkerRef.get(actorRef1));
} }
@Test @Test
public void testSizeOf() throws NoAvailableWorkerException { 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()); Assert.assertEquals(3, WorkersRefCenter.INSTANCE.availableWorks("WorkersListener").size());
} }
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册