diff options
Diffstat (limited to 'service-monitor/src/test/java/com/yahoo')
-rw-r--r-- | service-monitor/src/test/java/com/yahoo/vespa/service/duper/DuperModelTest.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/duper/DuperModelTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/duper/DuperModelTest.java index 69b6d3d59f3..2e38283a091 100644 --- a/service-monitor/src/test/java/com/yahoo/vespa/service/duper/DuperModelTest.java +++ b/service-monitor/src/test/java/com/yahoo/vespa/service/duper/DuperModelTest.java @@ -13,9 +13,13 @@ import org.junit.Test; import java.util.Arrays; import java.util.List; import java.util.Optional; +import java.util.Set; import java.util.stream.Collectors; +import java.util.stream.Stream; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -115,4 +119,36 @@ public class DuperModelTest { assertEquals(Optional.of(application2), duperModel.getApplicationInfo(hostname1_1)); assertEquals(Optional.empty(), duperModel.getApplicationInfo(hostname2_1)); } + + @Test + public void hostIndicesForOneApplication() { + assertEquals(0, duperModel.numberOfApplications()); + assertEquals(0, duperModel.numberOfHosts()); + assertEquals(Set.of(), duperModel.getHostnames(id1)); + + addAndVerifyApplication1("host1"); + addAndVerifyApplication1("host1", "host2"); + addAndVerifyApplication1("host2", "host3"); + assertEquals(Optional.empty(), duperModel.getApplicationId(HostName.from("host1"))); + + duperModel.remove(id1); + assertEquals(0, duperModel.numberOfApplications()); + assertEquals(0, duperModel.numberOfHosts()); + assertEquals(Set.of(), duperModel.getHostnames(id1)); + } + + private void addAndVerifyApplication1(String... hostnameStrings) { + HostName[] hostnameArray = Stream.of(hostnameStrings).map(HostName::from).toArray(HostName[]::new); + setUpApplication(id1, application1, hostnameArray); + duperModel.add(application1); + + assertEquals(1, duperModel.numberOfApplications()); + Optional<ApplicationInfo> applicationInfo = duperModel.getApplicationInfo(id1); + assertTrue(applicationInfo.isPresent()); + assertSame(application1, applicationInfo.get()); + + assertEquals(hostnameArray.length, duperModel.numberOfHosts()); + assertEquals(Set.of(hostnameArray), duperModel.getHostnames(id1)); + Stream.of(hostnameArray).forEach(hostname -> assertEquals(Optional.of(id1), duperModel.getApplicationId(hostname))); + } }
\ No newline at end of file |