Merge pull request #22953 from akka/wip-22918-DeviceGroupTest-patriknw

fix race in DeviceGroupTest, #22893
This commit is contained in:
Patrik Nordwall 2017-05-19 13:54:15 +02:00 committed by GitHub
commit 7f3d829108
6 changed files with 50 additions and 26 deletions

View file

@ -122,10 +122,16 @@ public class DeviceGroupTest extends JUnitSuite {
toShutDown.tell(PoisonPill.getInstance(), ActorRef.noSender());
probe.expectTerminated(toShutDown);
groupActor.tell(new DeviceGroup.RequestDeviceList(1L), probe.getRef());
reply = probe.expectMsgClass(DeviceGroup.ReplyDeviceList.class);
assertEquals(1L, reply.requestId);
assertEquals(Stream.of("device2").collect(Collectors.toSet()), reply.ids);
// using awaitAssert to retry because it might take longer for the groupActor
// to see the Terminated, that order is undefined
probe.awaitAssert(() -> {
groupActor.tell(new DeviceGroup.RequestDeviceList(1L), probe.getRef());
DeviceGroup.ReplyDeviceList r =
probe.expectMsgClass(DeviceGroup.ReplyDeviceList.class);
assertEquals(1L, r.requestId);
assertEquals(Stream.of("device2").collect(Collectors.toSet()), r.ids);
return null;
});
}
//#device-group-list-terminate-test
}

View file

@ -121,10 +121,16 @@ public class DeviceGroupTest extends JUnitSuite {
toShutDown.tell(PoisonPill.getInstance(), ActorRef.noSender());
probe.expectTerminated(toShutDown);
groupActor.tell(new DeviceGroup.RequestDeviceList(1L), probe.getRef());
reply = probe.expectMsgClass(DeviceGroup.ReplyDeviceList.class);
assertEquals(1L, reply.requestId);
assertEquals(Stream.of("device2").collect(Collectors.toSet()), reply.ids);
// using awaitAssert to retry because it might take longer for the groupActor
// to see the Terminated, that order is undefined
probe.awaitAssert(() -> {
groupActor.tell(new DeviceGroup.RequestDeviceList(1L), probe.getRef());
DeviceGroup.ReplyDeviceList r =
probe.expectMsgClass(DeviceGroup.ReplyDeviceList.class);
assertEquals(1L, r.requestId);
assertEquals(Stream.of("device2").collect(Collectors.toSet()), r.ids);
return null;
});
}
//#group-query-integration-test

View file

@ -120,10 +120,16 @@ public class DeviceGroupTest extends JUnitSuite {
toShutDown.tell(PoisonPill.getInstance(), ActorRef.noSender());
probe.expectTerminated(toShutDown);
groupActor.tell(new DeviceGroup.RequestDeviceList(1L), probe.getRef());
reply = probe.expectMsgClass(DeviceGroup.ReplyDeviceList.class);
assertEquals(1L, reply.requestId);
assertEquals(Stream.of("device2").collect(Collectors.toSet()), reply.ids);
// using awaitAssert to retry because it might take longer for the groupActor
// to see the Terminated, that order is undefined
probe.awaitAssert(() -> {
groupActor.tell(new DeviceGroup.RequestDeviceList(1L), probe.getRef());
DeviceGroup.ReplyDeviceList r =
probe.expectMsgClass(DeviceGroup.ReplyDeviceList.class);
assertEquals(1L, r.requestId);
assertEquals(Stream.of("device2").collect(Collectors.toSet()), r.ids);
return null;
});
}
@Test

View file

@ -93,8 +93,12 @@ class DeviceGroupSpec extends AkkaSpec {
toShutDown ! PoisonPill
probe.expectTerminated(toShutDown)
groupActor.tell(DeviceGroup.RequestDeviceList(requestId = 1), probe.ref)
probe.expectMsg(DeviceGroup.ReplyDeviceList(requestId = 1, Set("device2")))
// using awaitAssert to retry because it might take longer for the groupActor
// to see the Terminated, that order is undefined
probe.awaitAssert {
groupActor.tell(DeviceGroup.RequestDeviceList(requestId = 1), probe.ref)
probe.expectMsg(DeviceGroup.ReplyDeviceList(requestId = 1, Set("device2")))
}
}
//#device-group-list-terminate-test

View file

@ -88,8 +88,12 @@ class DeviceGroupSpec extends AkkaSpec {
toShutDown ! PoisonPill
probe.expectTerminated(toShutDown)
groupActor.tell(DeviceGroup.RequestDeviceList(requestId = 1), probe.ref)
probe.expectMsg(DeviceGroup.ReplyDeviceList(requestId = 1, Set("device2")))
// using awaitAssert to retry because it might take longer for the groupActor
// to see the Terminated, that order is undefined
probe.awaitAssert {
groupActor.tell(DeviceGroup.RequestDeviceList(requestId = 1), probe.ref)
probe.expectMsg(DeviceGroup.ReplyDeviceList(requestId = 1, Set("device2")))
}
}
//#group-query-integration-test
@ -123,10 +127,7 @@ class DeviceGroupSpec extends AkkaSpec {
temperatures = Map(
"device1" -> DeviceGroup.Temperature(1.0),
"device2" -> DeviceGroup.Temperature(2.0),
"device3" -> DeviceGroup.TemperatureNotAvailable
)
)
)
"device3" -> DeviceGroup.TemperatureNotAvailable)))
}
//#group-query-integration-test

View file

@ -88,8 +88,12 @@ class DeviceGroupSpec extends AkkaSpec {
toShutDown ! PoisonPill
probe.expectTerminated(toShutDown)
groupActor.tell(DeviceGroup.RequestDeviceList(requestId = 1), probe.ref)
probe.expectMsg(DeviceGroup.ReplyDeviceList(requestId = 1, Set("device2")))
// using awaitAssert to retry because it might take longer for the groupActor
// to see the Terminated, that order is undefined
probe.awaitAssert {
groupActor.tell(DeviceGroup.RequestDeviceList(requestId = 1), probe.ref)
probe.expectMsg(DeviceGroup.ReplyDeviceList(requestId = 1, Set("device2")))
}
}
"be able to collect temperatures from all active devices" in {
@ -122,10 +126,7 @@ class DeviceGroupSpec extends AkkaSpec {
temperatures = Map(
"device1" -> DeviceGroup.Temperature(1.0),
"device2" -> DeviceGroup.Temperature(2.0),
"device3" -> DeviceGroup.TemperatureNotAvailable
)
)
)
"device3" -> DeviceGroup.TemperatureNotAvailable)))
}
}