private void deleteAllResources() { ChangesContext changes = new ChangesContext(); for (IPResource resource : getInternalServicesContext().getInternalIPResourceService().resourceFindAll()) { changes.getResourcesToDelete().add(resource.getInternalId()); } getInternalServicesContext().getInternalChangeService().changesExecute(changes); }
public ChangeExecutionLogic(CommonServicesContext commonServicesContext, InternalServicesContext internalServicesContext) { this.commonServicesContext = commonServicesContext; this.ipPluginService = commonServicesContext.getPluginService(); this.ipResourceService = commonServicesContext.getResourceService(); this.internalChangeService = internalServicesContext.getInternalChangeService(); }
public static void addResourcesDefinition(InternalServicesContext ctx) { IPResourceDefinition resourceDefinition = new IPResourceDefinition(JunitResource.class, "Junit", // Arrays.asList(JunitResource.PROPERTY_TEXT, JunitResource.PROPERTY_ENUMERATION, JunitResource.PROPERTY_INTEGER_NUMBER), // Arrays.asList( // JunitResource.PROPERTY_BOOL, // JunitResource.PROPERTY_DATE, // JunitResource.PROPERTY_DOUBLE_NUMBER, // JunitResource.PROPERTY_ENUMERATION, // JunitResource.PROPERTY_FLOAT_NUMBER, // JunitResource.PROPERTY_INTEGER_NUMBER, // JunitResource.PROPERTY_LONG_NUMBER, // JunitResource.PROPERTY_TEXT, // JunitResource.PROPERTY_SET_TEXTS, // JunitResource.PROPERTY_SET_DATES, // JunitResource.PROPERTY_SET_DOUBLES, // JunitResource.PROPERTY_SET_ENUMERATIONS, // JunitResource.PROPERTY_SET_LONGS, // JunitResource.PROPERTY_SET_INTEGERS, // JunitResource.PROPERTY_SET_FLOATS // )); ctx.getInternalIPResourceService().resourceAdd(resourceDefinition); }
public static void dumpImport(CommonServicesContext commonServicesContext, InternalServicesContext internalServicesContext, ResourcesDump resourcesDump) { dumpImport(commonServicesContext.getResourceService(), internalServicesContext.getInternalChangeService(), resourcesDump); }
protected void assertState(String resourceName) { ResourcesState resourcesState = new ResourcesState(); resourcesState.setResources(getInternalServicesContext().getInternalIPResourceService().resourceFindAll().stream() // .map(resource -> { ResourceState resourceState = new ResourceState(getResourceDetails(resource)); // Links List<ResourcesStateLink> links = getCommonServicesContext().getResourceService().linkFindAllByFromResource(resource).stream() // .map(link -> new ResourcesStateLink(link.getA(), getResourceDetails(link.getB()))) // .collect(Collectors.toList()); resourceState.setLinks(links); // Tags resourceState.setTags(getCommonServicesContext().getResourceService().tagFindAllByResource(resource).stream().sorted().collect(Collectors.toList())); return resourceState; }) // .collect(Collectors.toList())); resourcesState.sort(); AssertTools.assertJsonComparison(resourceName, AbstractIPResourceServiceTest.class, resourcesState); }
)); ctx.getInternalChangeService().changesExecute(changes);
private void deleteAllResources() { ChangesContext changes = new ChangesContext(getCommonServicesContext().getResourceService()); for (IPResource resource : getInternalServicesContext().getInternalIPResourceService().resourceFindAll()) { changes.resourceDelete(resource); } getInternalServicesContext().getInternalChangeService().changesExecute(changes); }
internalServicesContext.getInternalIPResourceService().resourceAdd(resourceDefinition);
)); internalCtx.getInternalChangeService().changesExecute(changes);
internalServicesContext.getInternalIPResourceService().resourceAdd(resourceDefinition);
@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())); }
public static void assertState(CommonServicesContext commonServicesContext, InternalServicesContext internalServicesContext, String resourceName, Class<?> resourceContext, boolean withContent) { ResourcesState resourcesState = new ResourcesState(); resourcesState.setResources(internalServicesContext.getInternalIPResourceService().resourceFindAll().stream() // .map(resource -> { ResourceState resourceState = new ResourceState(getResourceDetails(resource)); // With content if (withContent) { // Remove some values IPResource cloned = JsonTools.clone(resource); cloned.setInternalId(null); resourceState.setContent(cloned); } // Links List<ResourcesStateLink> links = commonServicesContext.getResourceService().linkFindAllByFromResource(resource).stream() // .map(link -> new ResourcesStateLink(link.getA(), getResourceDetails(link.getB()))) // .collect(Collectors.toList()); resourceState.setLinks(links); // Tags resourceState.setTags(commonServicesContext.getResourceService().tagFindAllByResource(resource).stream().sorted().collect(Collectors.toList())); return resourceState; }) // .collect(Collectors.toList())); resourcesState.sort(); String actualJson = JsonTools.prettyPrintWithoutNulls(resourcesState); actualJson = actualJson.replaceAll("\\\\n", "\n"); actualJson = actualJson.replaceAll("\\\\t", "\t"); String expectedJson = ResourceTools.getResourceAsString(resourceName, resourceContext); AssertTools.assertIgnoreLineFeed(expectedJson, actualJson); }
@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()); }
public static ResourcesDump dumpExport(CommonServicesContext commonServicesContext, InternalServicesContext internalServicesContext) { ResourcesDump dump = new ResourcesDump(); IPResourceService resourceService = commonServicesContext.getResourceService(); for (IPResource resource : internalServicesContext.getInternalIPResourceService().resourceFindAll()) { String resourceType = resourceService.getResourceDefinition(resource).getResourceType(); String resourceTypeAndName = resourceType + "/" + resource.getResourceName(); // Export resource dump.getResources().add(new ResourcesDumpResource(resourceType, resource)); // Export tags resourceService.tagFindAllByResource(resource).stream() // .forEach(it -> dump.getTags().add(new ResourcesDumpTag(resourceTypeAndName, it))); // Export links resourceService.linkFindAllByFromResource(resource).stream() // .map(it -> { String toResourceType = resourceService.getResourceDefinition(it.getB()).getResourceType(); String toResourceTypeAndName = toResourceType + "/" + it.getB().getResourceName(); return new ResourcesDumpLink(resourceTypeAndName, it.getA(), toResourceTypeAndName); }) // .forEach(it -> dump.getLinks().add(it)); } dump.sort(); return dump; }
@Test public void testChanges_linksAndTagsAreNotKeptWhenDeleted() { // Create ChangesContext changes = new ChangesContext(getCommonServicesContext().getResourceService()); JunitResource r1 = new JunitResource("1"); JunitResource r2 = new JunitResource("2"); changes.resourceAdd(r1); changes.resourceAdd(r2); changes.linkAdd(r1, "link1", r2); changes.tagAdd(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.resourceDelete(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.resourceAdd(r1); getInternalServicesContext().getInternalChangeService().changesExecute(changes); // Check no links and tags Assert.assertEquals(0, resourceService.linkFindAllByFromResource(r1).size()); Assert.assertEquals(0, resourceService.tagFindAllByResource(r1).size()); }
@Test public void testChanges_reduntantLinksAndTags() { ChangesContext changes = new ChangesContext(getCommonServicesContext().getResourceService()); JunitResource r1 = new JunitResource("reduntant_1"); JunitResource r2 = new JunitResource("reduntant_2"); changes.resourceAdd(r1); changes.resourceAdd(r2); changes.linkAdd(r1, "link1", r2); changes.linkAdd(r1, "link1", r2); changes.linkAdd(r1, "link2", r2); changes.tagAdd(r1, "tag1"); changes.tagAdd(r1, "tag1"); changes.tagAdd(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())); }
public static void createFakeData(InternalServicesContext ctx) { // JunitResource ChangesContext changes = new ChangesContext(); JunitResource junitResource = new JunitResource("www.example.com", JunitResourceEnum.A, 1); changes.getResourcesToAdd().add(junitResource); changes.getTagsToAdd().addAll(Arrays.asList( // new Tuple2<>(junitResource, "tag1"), // new Tuple2<>(junitResource, "asite"))); junitResource = new JunitResource("www.example.com", JunitResourceEnum.A, 2); changes.getResourcesToAdd().add(junitResource); changes.getTagsToAdd().addAll(Arrays.asList( // new Tuple2<>(junitResource, "asite"))); changes.getResourcesToAdd().add(new JunitResource("example.com", JunitResourceEnum.B, 3)); changes.getResourcesToAdd().add(new JunitResource("t1_aaa", JunitResourceEnum.A, DateTools.parseFull("2000-01-01 00:00:00"), 1, 1L, 1.0, 1.0f, true, "one", "two")); changes.getResourcesToAdd().add(new JunitResource("t2_aaa", JunitResourceEnum.C, DateTools.parseFull("2000-06-01 00:00:00"), 5, 8L, 1.5, 7.3f, false, "one", "three")); changes.getResourcesToAdd().add(new JunitResource("zz", JunitResourceEnum.B, DateTools.parseFull("2000-04-01 00:00:00"), 80, 4L, 77.6, 3.1f, true)); ctx.getInternalChangeService().changesExecute(changes); }
@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"); }
@Test public void testChanges_refresh() { // Create resource JunitResource junitResource = new JunitResource("testChanges_refresh"); ChangesContext changes = new ChangesContext(getCommonServicesContext().getResourceService()); changes.resourceAdd(junitResource); getInternalServicesContext().getInternalChangeService().changesExecute(changes); // Reset TestingControllerMockUpdateHander testingControllerMockUpdateHander = TestingControllerPluginDefinitionProvider.getInstance().getTestingControllerMockUpdateHander(); testingControllerMockUpdateHander.clear(); Assert.assertEquals(0, testingControllerMockUpdateHander.getChecked().size()); // Refresh resource changes.resourceRefresh(junitResource); getInternalServicesContext().getInternalChangeService().changesExecute(changes); // Assert Assert.assertEquals(1, testingControllerMockUpdateHander.getChecked().size()); }
@Test public void testDuplicatePkSameResource_create() { // Common JunitResource resource; ChangesContext changes = new ChangesContext(); InternalChangeService internalChangeService = getInternalServicesContext().getInternalChangeService(); // Create 1 item resource = new JunitResource("t1", JunitResourceEnum.A, 1); resource.setLongNumber(10L); changes.getResourcesToAdd().add(resource); internalChangeService.changesExecute(changes); // Create same. Not fine thrown.expect(ResourcePrimaryKeyCollisionException.class); resource = new JunitResource("t1", JunitResourceEnum.A, 1); resource.setLongNumber(30L); changes.getResourcesToAdd().add(resource); internalChangeService.changesExecute(changes); }