@Test public void testChanges_reduntantLinksAndTags() { ChangesContext changes = new ChangesContext(); JunitResource r1 = new JunitResource("reduntant_1"); JunitResource r2 = new JunitResource("reduntant_2"); changes.getResourcesToAdd().add(r1); changes.getResourcesToAdd().add(r2); changes.getLinksToAdd().add(new Tuple3<>(r1, "link1", r2)); changes.getLinksToAdd().add(new Tuple3<>(r1, "link1", r2)); changes.getLinksToAdd().add(new Tuple3<>(r1, "link2", r2)); changes.getTagsToAdd().add(new Tuple2<>(r1, "tag1")); changes.getTagsToAdd().add(new Tuple2<>(r1, "tag1")); changes.getTagsToAdd().add(new Tuple2<>(r1, "tag2")); getInternalServicesContext().getInternalChangeService().changesExecute(changes); // Check IPResourceService resourceService = getCommonServicesContext().getResourceService(); r1 = resourceService.resourceFindByPk(r1).get(); r2 = resourceService.resourceFindByPk(r2).get(); Assert.assertEquals(Arrays.asList("link1", "link2"), resourceService.linkFindAllByFromResource(r1).stream().map(it -> it.getA()).sorted().collect(Collectors.toList())); Assert.assertEquals(Arrays.asList("tag1", "tag2"), resourceService.tagFindAllByResource(r1).stream().sorted().collect(Collectors.toList())); }
@Test public void testChanges_linksAndTagsAreNotKeptWhenDeleted() { // Create ChangesContext changes = new ChangesContext(); JunitResource r1 = new JunitResource("1"); JunitResource r2 = new JunitResource("2"); changes.getResourcesToAdd().add(r1); changes.getResourcesToAdd().add(r2); changes.getLinksToAdd().add(new Tuple3<>(r1, "link1", r2)); changes.getTagsToAdd().add(new Tuple2<>(r1, "tag1")); getInternalServicesContext().getInternalChangeService().changesExecute(changes); IPResourceService resourceService = getCommonServicesContext().getResourceService(); r1 = resourceService.resourceFindByPk(r1).get(); r2 = resourceService.resourceFindByPk(r2).get(); Assert.assertEquals(Arrays.asList("link1"), resourceService.linkFindAllByFromResource(r1).stream().map(it -> it.getA()).sorted().collect(Collectors.toList())); Assert.assertEquals(Arrays.asList("tag1"), resourceService.tagFindAllByResource(r1).stream().sorted().collect(Collectors.toList())); // Delete it changes.getResourcesToDelete().add(resourceService.resourceFindByPk(r1).get().getInternalId()); getInternalServicesContext().getInternalChangeService().changesExecute(changes); Assert.assertEquals(0, resourceService.linkFindAllByFromResource(r1).size()); Assert.assertEquals(0, resourceService.tagFindAllByResource(r1).size()); // Recreate it changes.getResourcesToAdd().add(r1); getInternalServicesContext().getInternalChangeService().changesExecute(changes); // Check no links and tags Assert.assertEquals(0, resourceService.linkFindAllByFromResource(r1).size()); Assert.assertEquals(0, resourceService.tagFindAllByResource(r1).size()); }
changes.getLinksToAdd().add(new Tuple3<>(masterResource, "COMMANDS", slaveResource)); changes.getLinksToAdd().add(new Tuple3<>(masterResource, "COMMANDS", slaveResource)); changes.getLinksToAdd().add(new Tuple3<>(slaveResource, "LIKES", masterResource)); changes.getLinksToAdd().add(new Tuple3<>(slaveResource, "LOVES", masterResource)); changes.getLinksToDelete().add(new Tuple3<>(slaveResource, link.getA(), link.getB())); changes.getLinksToAdd().add(new Tuple3<>(slaveResource, "DISLIKE", masterResource));
logger.debug("[APPLY] Resources: has {} updates, {} deletions, {} addition, {} refreshes ; Links: has {} deletions, {} addition ; Tags: has {} deletions, {} addition", // changes.getLinksToDelete().size(), changes.getLinksToAdd().size(), // for (Tuple3<IPResource, String, IPResource> link : changes.getLinksToAdd()) { logger.debug("[APPLY] Add link {}", link); Optional<IPResource> fromResource = ipResourceService.resourceFindByPk(link.getA());
@Test public void testResourceUrlRedirection() { deleteAllResources(); IPResourceService resourceService = getCommonServicesContext().getResourceService(); // Create initial data Machine m1 = new Machine("m1.example.com", "199.141.1.101"); Machine m2 = new Machine("m2.example.com", "199.141.1.201"); ChangesContext changes = new ChangesContext(); changes.getResourcesToAdd().add(m1); changes.getResourcesToAdd().add(m2); getInternalServicesContext().getInternalChangeService().changesExecute(changes); assertState("UrlRedirectionTest-state-0.json"); // Create a redirection UrlRedirection urlRedirection = new UrlRedirection(); urlRedirection.setDomainName("redir.example.com"); urlRedirection.setHttpRedirectToUrl("https://google.com"); changes.getResourcesToAdd().add(urlRedirection); changes.getLinksToAdd().add(new Tuple3<>(urlRedirection, LinkTypeConstants.INSTALLED_ON, m1)); getInternalServicesContext().getInternalChangeService().changesExecute(changes); urlRedirection = resourceService.resourceFindByPk(urlRedirection).get(); assertState("UrlRedirectionTest-state-1.json"); // Change the list of machines changes.getLinksToAdd().add(new Tuple3<>(urlRedirection, LinkTypeConstants.INSTALLED_ON, m2)); getInternalServicesContext().getInternalChangeService().changesExecute(changes); assertState("UrlRedirectionTest-state-2.json"); // Delete changes.getResourcesToDelete().add(urlRedirection.getInternalId()); getInternalServicesContext().getInternalChangeService().changesExecute(changes); assertState("UrlRedirectionTest-state-3.json"); }
changes.getResourcesToAdd().add(a1); changes.getResourcesToAdd().add(a2); changes.getLinksToAdd().add(new Tuple3<>(a2, LinkTypeConstants.RUN_AS, uu2)); changes.getLinksToAdd().add(new Tuple3<>(a2, LinkTypeConstants.INSTALLED_ON, m2)); changes.getLinksToAdd().add(new Tuple3<>(a2, LinkTypeConstants.INSTALLED_ON, m3)); getInternalServicesContext().getInternalChangeService().changesExecute(changes); changes.getLinksToAdd().add(new Tuple3<>(a1, LinkTypeConstants.RUN_AS, uu1)); changes.getLinksToAdd().add(new Tuple3<>(a1, LinkTypeConstants.INSTALLED_ON, m1)); getInternalServicesContext().getInternalChangeService().changesExecute(changes); changes.getLinksToAdd().add(new Tuple3<>(a2, LinkTypeConstants.RUN_AS, uu1)); changes.getLinksToDelete().add(new Tuple3<>(a2, LinkTypeConstants.RUN_AS, uu2)); changes.getLinksToAdd().add(new Tuple3<>(a2, LinkTypeConstants.INSTALLED_ON, m1)); changes.getLinksToDelete().add(new Tuple3<>(a2, LinkTypeConstants.INSTALLED_ON, m2)); changes.getLinksToDelete().add(new Tuple3<>(a2, LinkTypeConstants.INSTALLED_ON, m3)); changes.getLinksToAdd().add(new Tuple3<>(a1, LinkTypeConstants.RUN_AS, uu2)); getInternalServicesContext().getInternalChangeService().changesExecute(changes); Assert.fail("Expecting exception");
changes.getLinksToAdd().add(new Tuple3<IPResource, String, IPResource>(m1, "extraLink", m2)); getInternalServicesContext().getInternalChangeService().changesExecute(changes);
application.setName("my_web_app"); changes.getResourcesToAdd().add(application); changes.getLinksToAdd().add(new Tuple3<>(website, LinkTypeConstants.POINTS_TO, application)); getInternalServicesContext().getInternalChangeService().changesExecute(changes); changes.getLinksToAdd().add(new Tuple3<>(application, LinkTypeConstants.INSTALLED_ON, m1)); getInternalServicesContext().getInternalChangeService().changesExecute(changes);
changes.getLinksToAdd().add(new Tuple3<>(dp, LinkTypeConstants.POINTS_TO, m1)); getInternalServicesContext().getInternalChangeService().changesExecute(changes); changes.getLinksToAdd().add(new Tuple3<>(dp, LinkTypeConstants.POINTS_TO, m2)); getInternalServicesContext().getInternalChangeService().changesExecute(changes); changes.getLinksToAdd().add(new Tuple3<>(dp, LinkTypeConstants.POINTS_TO, m2)); getInternalServicesContext().getInternalChangeService().changesExecute(changes);