@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())); }
changes.tagAdd(resource, tagName);
@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()); }
public static void createFakeData(CommonServicesContext commonCtx, InternalServicesContext internalCtx) { // JunitResource ChangesContext changes = new ChangesContext(commonCtx.getResourceService()); JunitResource junitResource = new JunitResource("www.example.com", JunitResourceEnum.A, 1); changes.resourceAdd(junitResource); changes.tagAdd(junitResource, "tag1"); changes.tagAdd(junitResource, "asite"); junitResource = new JunitResource("www.example.com", JunitResourceEnum.A, 2); changes.resourceAdd(junitResource); changes.tagAdd(junitResource, "asite"); changes.resourceAdd(new JunitResource("example.com", JunitResourceEnum.B, 3)); changes.resourceAdd(new JunitResource("t1_aaa", JunitResourceEnum.A, DateTools.parseFull("2000-01-01 00:00:00"), 1, 1L, 1.0, 1.0f, true, "one", "two")); changes.resourceAdd(new JunitResource("t2_aaa", JunitResourceEnum.C, DateTools.parseFull("2000-06-01 00:00:00"), 5, 8L, 1.5, 7.3f, false, "one", "three")); changes.resourceAdd(new JunitResource("zz", JunitResourceEnum.B, DateTools.parseFull("2000-04-01 00:00:00"), 80, 4L, 77.6, 3.1f, true)); internalCtx.getInternalChangeService().changesExecute(changes); }
changes.tagAdd(m2, "extraTag"); changes.linkAdd(m1, "extraLink", m2); getInternalServicesContext().getInternalChangeService().changesExecute(changes);
changes.tagAdd(resource, "tag1"); changes.tagAdd(resource, "asite"); changes.tagAdd(resource, "asite"); internalChangeService.changesExecute(changes); changes.tagAdd(resource, "changed"); changes.resourceUpdate(resource.getInternalId(), new JunitResource("example2.com", JunitResourceEnum.A, 2)); internalChangeService.changesExecute(changes);