Merge pull request #22953 from akka/wip-22918-DeviceGroupTest-patriknw
fix race in DeviceGroupTest, #22893
This commit is contained in:
commit
7f3d829108
6 changed files with 50 additions and 26 deletions
|
|
@ -122,10 +122,16 @@ public class DeviceGroupTest extends JUnitSuite {
|
||||||
toShutDown.tell(PoisonPill.getInstance(), ActorRef.noSender());
|
toShutDown.tell(PoisonPill.getInstance(), ActorRef.noSender());
|
||||||
probe.expectTerminated(toShutDown);
|
probe.expectTerminated(toShutDown);
|
||||||
|
|
||||||
groupActor.tell(new DeviceGroup.RequestDeviceList(1L), probe.getRef());
|
// using awaitAssert to retry because it might take longer for the groupActor
|
||||||
reply = probe.expectMsgClass(DeviceGroup.ReplyDeviceList.class);
|
// to see the Terminated, that order is undefined
|
||||||
assertEquals(1L, reply.requestId);
|
probe.awaitAssert(() -> {
|
||||||
assertEquals(Stream.of("device2").collect(Collectors.toSet()), reply.ids);
|
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
|
//#device-group-list-terminate-test
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -121,10 +121,16 @@ public class DeviceGroupTest extends JUnitSuite {
|
||||||
toShutDown.tell(PoisonPill.getInstance(), ActorRef.noSender());
|
toShutDown.tell(PoisonPill.getInstance(), ActorRef.noSender());
|
||||||
probe.expectTerminated(toShutDown);
|
probe.expectTerminated(toShutDown);
|
||||||
|
|
||||||
groupActor.tell(new DeviceGroup.RequestDeviceList(1L), probe.getRef());
|
// using awaitAssert to retry because it might take longer for the groupActor
|
||||||
reply = probe.expectMsgClass(DeviceGroup.ReplyDeviceList.class);
|
// to see the Terminated, that order is undefined
|
||||||
assertEquals(1L, reply.requestId);
|
probe.awaitAssert(() -> {
|
||||||
assertEquals(Stream.of("device2").collect(Collectors.toSet()), reply.ids);
|
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
|
//#group-query-integration-test
|
||||||
|
|
|
||||||
|
|
@ -120,10 +120,16 @@ public class DeviceGroupTest extends JUnitSuite {
|
||||||
toShutDown.tell(PoisonPill.getInstance(), ActorRef.noSender());
|
toShutDown.tell(PoisonPill.getInstance(), ActorRef.noSender());
|
||||||
probe.expectTerminated(toShutDown);
|
probe.expectTerminated(toShutDown);
|
||||||
|
|
||||||
groupActor.tell(new DeviceGroup.RequestDeviceList(1L), probe.getRef());
|
// using awaitAssert to retry because it might take longer for the groupActor
|
||||||
reply = probe.expectMsgClass(DeviceGroup.ReplyDeviceList.class);
|
// to see the Terminated, that order is undefined
|
||||||
assertEquals(1L, reply.requestId);
|
probe.awaitAssert(() -> {
|
||||||
assertEquals(Stream.of("device2").collect(Collectors.toSet()), reply.ids);
|
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
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -93,8 +93,12 @@ class DeviceGroupSpec extends AkkaSpec {
|
||||||
toShutDown ! PoisonPill
|
toShutDown ! PoisonPill
|
||||||
probe.expectTerminated(toShutDown)
|
probe.expectTerminated(toShutDown)
|
||||||
|
|
||||||
groupActor.tell(DeviceGroup.RequestDeviceList(requestId = 1), probe.ref)
|
// using awaitAssert to retry because it might take longer for the groupActor
|
||||||
probe.expectMsg(DeviceGroup.ReplyDeviceList(requestId = 1, Set("device2")))
|
// 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
|
//#device-group-list-terminate-test
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -88,8 +88,12 @@ class DeviceGroupSpec extends AkkaSpec {
|
||||||
toShutDown ! PoisonPill
|
toShutDown ! PoisonPill
|
||||||
probe.expectTerminated(toShutDown)
|
probe.expectTerminated(toShutDown)
|
||||||
|
|
||||||
groupActor.tell(DeviceGroup.RequestDeviceList(requestId = 1), probe.ref)
|
// using awaitAssert to retry because it might take longer for the groupActor
|
||||||
probe.expectMsg(DeviceGroup.ReplyDeviceList(requestId = 1, Set("device2")))
|
// 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
|
//#group-query-integration-test
|
||||||
|
|
@ -123,10 +127,7 @@ class DeviceGroupSpec extends AkkaSpec {
|
||||||
temperatures = Map(
|
temperatures = Map(
|
||||||
"device1" -> DeviceGroup.Temperature(1.0),
|
"device1" -> DeviceGroup.Temperature(1.0),
|
||||||
"device2" -> DeviceGroup.Temperature(2.0),
|
"device2" -> DeviceGroup.Temperature(2.0),
|
||||||
"device3" -> DeviceGroup.TemperatureNotAvailable
|
"device3" -> DeviceGroup.TemperatureNotAvailable)))
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
//#group-query-integration-test
|
//#group-query-integration-test
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -88,8 +88,12 @@ class DeviceGroupSpec extends AkkaSpec {
|
||||||
toShutDown ! PoisonPill
|
toShutDown ! PoisonPill
|
||||||
probe.expectTerminated(toShutDown)
|
probe.expectTerminated(toShutDown)
|
||||||
|
|
||||||
groupActor.tell(DeviceGroup.RequestDeviceList(requestId = 1), probe.ref)
|
// using awaitAssert to retry because it might take longer for the groupActor
|
||||||
probe.expectMsg(DeviceGroup.ReplyDeviceList(requestId = 1, Set("device2")))
|
// 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 {
|
"be able to collect temperatures from all active devices" in {
|
||||||
|
|
@ -122,10 +126,7 @@ class DeviceGroupSpec extends AkkaSpec {
|
||||||
temperatures = Map(
|
temperatures = Map(
|
||||||
"device1" -> DeviceGroup.Temperature(1.0),
|
"device1" -> DeviceGroup.Temperature(1.0),
|
||||||
"device2" -> DeviceGroup.Temperature(2.0),
|
"device2" -> DeviceGroup.Temperature(2.0),
|
||||||
"device3" -> DeviceGroup.TemperatureNotAvailable
|
"device3" -> DeviceGroup.TemperatureNotAvailable)))
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue