@Test public void merge_Simple() throws Exception { cleanUpGraph(); SystemUser su = registerSystemUser("merge_Simple"); Fortress fortress = fortressService.registerFortress( su.getCompany(), new FortressInputBean("merge_Simple", true)); TagInputBean tagInputA = new TagInputBean("TagA", "MoveTag", "rlxA"); TagInputBean tagInputB = new TagInputBean("TagB", "MoveTag", "rlxB"); EntityInputBean inputBean = new EntityInputBean(fortress, "*****@*****.**", "CompanyNode", DateTime.now(), "AAA"); inputBean.addTag(tagInputA); Entity entityA = mediationFacade.trackEntity(su.getCompany(), inputBean).getEntity(); inputBean = new EntityInputBean(fortress, "*****@*****.**", "CompanyNode", DateTime.now(), "BBB"); inputBean.addTag(tagInputB); Entity entityB = mediationFacade.trackEntity(su.getCompany(), inputBean).getEntity(); assertEquals(1, entityTagService.getEntityTags(entityA).size()); assertEquals(1, entityTagService.getEntityTags(entityB).size()); Tag tagA = tagService.findTag(su.getCompany(), null, tagInputA.getCode()); assertNotNull(tagA); Tag tagB = tagService.findTag(su.getCompany(), null, tagInputB.getCode()); assertNotNull(tagB); // The above is the setup. We will look to merge tagA into tagB. The end result will be that // entity Collection<Long> results = entityTagService.mergeTags(tagA.getId(), tagB.getId()); assertEquals("One Entity should have been affected by this operation", 1, results.size()); Long entityResult = results.iterator().next(); assertEquals("The wrong Entity was affected by this operation", entityA.getId(), entityResult); entityA = entityService.getEntity(su.getCompany(), entityA.getMetaKey()); Collection<EntityTag> tags = entityTagService.getEntityTags(entityA); assertEquals(1, tags.size()); assertEquals(tagInputB.getName(), tags.iterator().next().getTag().getName()); assertNull( "TagA should have been deleted", tagService.findTag(su.getCompany(), null, tagInputA.getCode())); tags = entityTagService.getEntityTags(entityB); assertEquals(1, tags.size()); assertEquals(tagInputB.getName(), tags.iterator().next().getTag().getName()); assertEquals(2, entityTagService.findEntityTags(su.getCompany(), tagInputB.getCode()).size()); // assertEquals("rlxA", tags.iterator().next().); }