Skip to content

Commit

Permalink
test(discovery): expect target notifications
Browse files Browse the repository at this point in the history
Signed-off-by: Thuan Vo <thvo@redhat.com>
  • Loading branch information
Thuan Vo committed Jan 11, 2023
1 parent 7a48b29 commit ea22969
Showing 1 changed file with 43 additions and 16 deletions.
59 changes: 43 additions & 16 deletions src/test/java/io/cryostat/discovery/DiscoveryStorageTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -687,16 +687,31 @@ public ServiceRef answer(InvocationOnMock invocation) throws Throwable {
null,
URI.create("service:jmx:rmi:///jndi/rmi://localhost:1/jmxrmi"),
"serviceRef1");
ServiceRef updatedServiceRef1 =
new ServiceRef(
serviceRef1.getAlias().get(),
serviceRef1.getServiceUri(),
serviceRef1.getAlias().get());
ServiceRef serviceRef2 =
new ServiceRef(
null,
URI.create("service:jmx:rmi:///jndi/rmi://localhost:2/jmxrmi"),
"serviceRef2");
ServiceRef updatedServiceRef2 =
new ServiceRef(
serviceRef2.getAlias().get(),
serviceRef2.getServiceUri(),
serviceRef2.getAlias().get());
ServiceRef serviceRef3 =
new ServiceRef(
null,
URI.create("service:jmx:rmi:///jndi/rmi://localhost:3/jmxrmi"),
"serviceRef3");
ServiceRef updatedServiceRef3 =
new ServiceRef(
serviceRef3.getAlias().get(),
serviceRef3.getServiceUri(),
serviceRef3.getAlias().get());
ServiceRef serviceRef4 =
new ServiceRef(
null,
Expand Down Expand Up @@ -735,36 +750,48 @@ public PluginInfo answer(InvocationOnMock invocation) throws Throwable {
}
});

List<TargetDiscoveryEvent> discoveryEvents = new ArrayList<>();
storage.addTargetDiscoveryListener(discoveryEvents::add);

var updatedSubtree = storage.update(id, List.of(realm2));
MatcherAssert.assertThat(updatedSubtree, Matchers.notNullValue());
MatcherAssert.assertThat(updatedSubtree, Matchers.hasSize(1));
for (AbstractNode node : updatedSubtree) {

if (node instanceof TargetNode) {
TargetNode target = (TargetNode) node;
AbstractNode node = updatedSubtree.get(0); // realm2
MatcherAssert.assertThat(node, Matchers.instanceOf(EnvironmentNode.class));

for (AbstractNode childNode : ((EnvironmentNode) node).getChildren()) {
if (childNode instanceof TargetNode) {
TargetNode target = (TargetNode) childNode;
MatcherAssert.assertThat(
target.getTarget().getAlias().isPresent(), Matchers.is(true));
MatcherAssert.assertThat(target.getTarget().getJvmId(), Matchers.notNullValue());
MatcherAssert.assertThat(
target.getTarget().getJvmId(),
Matchers.equalTo(target.getTarget().getAlias().get()));
} else {
MatcherAssert.assertThat(node, Matchers.instanceOf(EnvironmentNode.class));
EnvironmentNode env = (EnvironmentNode) node;
for (AbstractNode nested : env.getChildren()) {
if (nested instanceof TargetNode) {
TargetNode target = (TargetNode) nested;
MatcherAssert.assertThat(
target.getTarget().getAlias().isPresent(), Matchers.is(true));
MatcherAssert.assertThat(
target.getTarget().getJvmId(), Matchers.notNullValue());
MatcherAssert.assertThat(
target.getTarget().getJvmId(),
Matchers.equalTo(target.getTarget().getAlias().get()));
}
MatcherAssert.assertThat(childNode, Matchers.instanceOf(EnvironmentNode.class));
for (AbstractNode nestedNode : ((EnvironmentNode) childNode).getChildren()) {
TargetNode target = (TargetNode) nestedNode;
MatcherAssert.assertThat(
target.getTarget().getAlias().isPresent(), Matchers.is(true));
MatcherAssert.assertThat(
target.getTarget().getJvmId(), Matchers.notNullValue());
MatcherAssert.assertThat(
target.getTarget().getJvmId(),
Matchers.equalTo(target.getTarget().getAlias().get()));
}
}
}

MatcherAssert.assertThat(discoveryEvents, Matchers.hasSize(4));
MatcherAssert.assertThat(
discoveryEvents,
Matchers.containsInAnyOrder(
new TargetDiscoveryEvent(EventKind.LOST, serviceRef4),
new TargetDiscoveryEvent(EventKind.FOUND, updatedServiceRef1),
new TargetDiscoveryEvent(EventKind.FOUND, updatedServiceRef2),
new TargetDiscoveryEvent(EventKind.FOUND, updatedServiceRef3)));
}

@Test
Expand Down

0 comments on commit ea22969

Please sign in to comment.