@Test public void testIdMapAddMany() { XMLPersistenceMappingResource resource = new NodesResourceImpl(); String node1Name = "node1"; String node2Name = "node2"; Node node1 = NodesFactory.eINSTANCE.createNode(); node1.setName(node1Name); Node node2 = NodesFactory.eINSTANCE.createNode(); node2.setName(node2Name); List<Node> nodes = new ArrayList<Node>(2); nodes.add(node1); nodes.add(node2); assertNull(resource.getEObject(node1Name)); assertNull(resource.getID(node1)); assertNull(resource.getEObject(node2Name)); assertNull(resource.getID(node2)); resource.getContents().addAll(nodes); assertSame(node1, resource.getEObject(node1Name)); assertSame(node1Name, resource.getID(node1)); assertSame(node2, resource.getEObject(node2Name)); assertSame(node2Name, resource.getID(node2)); }
@Test public void testIdMapRemove() { XMLPersistenceMappingResource resource = new NodesResourceImpl(); String nodeName = "root"; String subNodeName = "subNode"; Node node = NodesFactory.eINSTANCE.createNode(); node.setName(nodeName); Node subNode = NodesFactory.eINSTANCE.createNode(); subNode.setName(subNodeName); node.getEReference_Contained0100Many().add(subNode); assertNull(resource.getEObject(nodeName)); assertNull(resource.getID(node)); assertNull(resource.getEObject(subNodeName)); assertNull(resource.getID(subNode)); resource.getContents().add(node); assertSame(node, resource.getEObject(nodeName)); assertSame(nodeName, resource.getID(node)); assertSame(subNode, resource.getEObject(subNodeName)); assertSame(subNodeName, resource.getID(subNode)); node.getEReference_Contained0100Many().remove(subNode); assertSame(node, resource.getEObject(nodeName)); assertSame(nodeName, resource.getID(node)); assertNull(resource.getEObject(subNodeName)); assertNull(resource.getID(subNode)); resource.getContents().remove(node); assertNull(resource.getEObject(nodeName)); assertNull(resource.getID(node)); assertNull(resource.getEObject(subNodeName)); assertNull(resource.getID(subNode)); }
@Test public void testIdMapRename() { XMLPersistenceMappingResource resource = new NodesResourceImpl(); String nodeName = "root"; String newNodeName = "new_root"; Node node = NodesFactory.eINSTANCE.createNode(); node.setName(nodeName); assertNull(resource.getEObject(nodeName)); assertNull(resource.getID(node)); resource.getContents().add(node); assertNull(resource.getEObject(newNodeName)); assertSame(node, resource.getEObject(nodeName)); assertSame(nodeName, resource.getID(node)); node.setName(newNodeName); assertNull(resource.getEObject(nodeName)); assertSame(node, resource.getEObject(newNodeName)); assertSame(newNodeName, resource.getID(node)); }
@Test public void testIdForNewObjectsAfterLoad2() { String inputFileName = INPUT_PATH + "minimal.xml"; try { EObject modelRoot = loadInputFile(inputFileName, new NodesResourceFactoryImpl(), null); assertTrue(modelRoot instanceof Node); Node rootNode = (Node) modelRoot; assertTrue(rootNode.eIsSet(NodesPackage.eINSTANCE.getNode_Name())); assertSame(1, ((XMLResource) modelRoot.eResource()).getEObjectToIDMap().size()); // test set Node sub1Node = NodesFactory.eINSTANCE.createNode(); Node sub2Node = NodesFactory.eINSTANCE.createNode(); Node sub3Node = NodesFactory.eINSTANCE.createNode(); Node sub4Node = NodesFactory.eINSTANCE.createNode(); sub4Node.setName("sub4Node"); sub1Node.setEReference_Contained0101Single(sub2Node); sub2Node.setEReference_Contained0101Single(sub3Node); sub3Node.setEReference_Contained0101Single(sub4Node); assertFalse(sub1Node.eIsSet(NodesPackage.eINSTANCE.getNode_Name())); assertFalse(sub2Node.eIsSet(NodesPackage.eINSTANCE.getNode_Name())); assertFalse(sub3Node.eIsSet(NodesPackage.eINSTANCE.getNode_Name())); assertTrue(sub4Node.eIsSet(NodesPackage.eINSTANCE.getNode_Name())); assertEquals("sub4Node", sub4Node.getName()); assertSame(1, ((XMLResource) modelRoot.eResource()).getEObjectToIDMap().size()); // set rootNode.setEReference_Contained0100Single(sub1Node); assertTrue(sub1Node.eIsSet(NodesPackage.eINSTANCE.getNode_Name())); assertTrue(sub2Node.eIsSet(NodesPackage.eINSTANCE.getNode_Name())); assertTrue(sub3Node.eIsSet(NodesPackage.eINSTANCE.getNode_Name())); assertTrue(sub4Node.eIsSet(NodesPackage.eINSTANCE.getNode_Name())); assertEquals("sub4Node", sub4Node.getName()); assertSame(5, ((XMLResource) modelRoot.eResource()).getEObjectToIDMap().size()); } catch (Exception ex) { assertTrue(ex.getMessage(), false); } }