KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > schema > model > impl > xdm > CopyPasteTest


1 package org.netbeans.modules.xml.schema.model.impl.xdm;
2
3 import java.io.BufferedReader JavaDoc;
4 import java.io.IOException JavaDoc;
5 import java.io.InputStreamReader JavaDoc;
6 import java.net.URL JavaDoc;
7 import java.util.Iterator JavaDoc;
8 import javax.swing.text.Document JavaDoc;
9 import junit.framework.*;
10 import org.netbeans.modules.xml.schema.model.*;
11 import org.netbeans.modules.xml.schema.model.impl.GlobalElementImpl;
12 import org.netbeans.modules.xml.schema.model.impl.LocalComplexTypeImpl;
13 import org.netbeans.modules.xml.schema.model.impl.LocalElementImpl;
14 import org.netbeans.modules.xml.schema.model.impl.SchemaImpl;
15 import org.netbeans.modules.xml.schema.model.impl.SequenceImpl;
16 import org.netbeans.modules.xml.xdm.XDMModel;
17 import org.netbeans.modules.xml.xdm.nodes.NodeImpl;
18 import org.w3c.dom.Element JavaDoc;
19 import org.w3c.dom.Node JavaDoc;
20
21 /**
22  *
23  * @author Ayub Khan
24  */

25 public class CopyPasteTest extends TestCase {
26     
27     public static final String JavaDoc TEST_XSD = "resources/PurchaseOrder.xsd";
28     public static final String JavaDoc TEST_XSD_OP = "resources/PurchaseOrderSyncTest.xsd";
29     
30     public CopyPasteTest(String JavaDoc testName) {
31         super(testName);
32     }
33     
34     protected void setUp() throws Exception JavaDoc {
35     }
36     
37     private String JavaDoc readFile(String JavaDoc filename) throws IOException JavaDoc {
38         URL JavaDoc url = getClass().getResource(filename);
39         BufferedReader JavaDoc br = new BufferedReader JavaDoc(new InputStreamReader JavaDoc(url.openStream(),"UTF-8"));
40         StringBuffer JavaDoc sbuf = new StringBuffer JavaDoc();
41         try {
42             int c = 0;
43             while((c = br.read()) != -1) {
44                 sbuf.append((char)c);
45             }
46         } finally {
47             br.close();
48         }
49         return sbuf.toString();
50     }
51     
52     /**
53      * Test of copy/paste operation
54      */

55     public void testCopyPasteLocalElement() throws Exception JavaDoc {
56         SchemaModel model = Util.loadSchemaModel("resources/CutPasteTest_before.xsd");
57         SchemaImpl schema = (SchemaImpl) model.getSchema();
58         Node JavaDoc schemaNode = schema.getPeer();
59         GlobalElementImpl gei = (GlobalElementImpl) schema.getElements().iterator().next();
60         LocalComplexTypeImpl lcti = (LocalComplexTypeImpl) gei.getInlineType();
61         SequenceImpl seq = (SequenceImpl) lcti.getDefinition();
62         Node JavaDoc seqNode = seq.getPeer();
63         LocalElementImpl leti = (LocalElementImpl) seq.getContent().get(1);
64         
65         assertEquals("testCutPasteByDocSync.localElement.size", 2, seq.getChildren().size());
66         assertEquals("testCutPasteByDocSync.localElement.nodes.size", 5, seqNode.getChildNodes().getLength());
67         
68         //Debug.log(Debug.LEVEL.ERROR, "Initial Document: ");
69
//Debug.logDocument(Debug.LEVEL.ERROR, schemaNode.getOwnerDocument());
70
//XDMModel.printChildren(Debug.LEVEL.ERROR, seqNode);
71

72         model.startTransaction();
73         LocalElementImpl clonedLeti = (LocalElementImpl) leti.copy(seq);
74         assertTrue("testCutPasteByDocSync.localElement", clonedLeti!=null);
75         seq.addContent(clonedLeti, 2);
76         model.endTransaction();
77         
78         SchemaImpl changedSchema1 = (SchemaImpl) model.getSchema();
79         Node JavaDoc changedSchemaNode1 = changedSchema1.getPeer();
80         GlobalElementImpl changedGei1 = (GlobalElementImpl) changedSchema1.getElements().iterator().next();
81         LocalComplexTypeImpl changedLcti1 = (LocalComplexTypeImpl) changedGei1.getInlineType();
82         SequenceImpl changedSeq1 = (SequenceImpl) changedLcti1.getDefinition();
83         Node JavaDoc changedSeqNode1 = changedSeq1.getPeer();
84         
85         assertEquals("testCutPasteByDocSync.localElement.nodes.size", 3, changedSeq1.getChildren().size());
86         Iterator JavaDoc it=changedSeq1.getChildren().iterator();
87         it.next();
88         LocalElementImpl le2=(LocalElementImpl) it.next();
89         LocalElementImpl le3=(LocalElementImpl) it.next();
90         assertTrue("testCutPasteByDocSync.localElement.isSame", le2.getName().equals(le3.getName()));
91         assertTrue("testCutPasteByDocSync.localElement.isIdNotSame",
92             ((NodeImpl)le2.getPeer()).getId()!=((NodeImpl)le3.getPeer()).getId());
93         assertEquals("testCutPasteByDocSync.localElement.nodes.size", 7, changedSeqNode1.getChildNodes().getLength());
94         
95         //Debug.log(Debug.LEVEL.ERROR, "After add: ");
96
//Debug.logDocument(Debug.LEVEL.ERROR, changedSchemaNode1.getOwnerDocument());
97
//XDMModel.printChildren(Debug.LEVEL.ERROR, changedSeqNode1);
98
}
99     
100     /**
101      * Test of copy/paste operation
102      */

103     public void testCopyPasteGlobalElement() throws Exception JavaDoc {
104         SchemaModel model = Util.loadSchemaModel("resources/CutPasteTest_before.xsd");
105         SchemaImpl schema = (SchemaImpl) model.getSchema();
106         Node JavaDoc schemaNode = schema.getPeer();
107         GlobalElement ge = (GlobalElement) schema.getElements().iterator().next();
108                 
109         assertEquals("testCutPasteByDocSync.localElement.size", 1, schema.getChildren().size());
110         assertEquals("testCutPasteByDocSync.localElement.nodes.size", 3, schemaNode.getChildNodes().getLength());
111         
112         //Debug.log(Debug.LEVEL.ERROR, "Initial Document: ");
113
//Debug.logDocument(Debug.LEVEL.ERROR, schemaNode.getOwnerDocument());
114
//XDMModel.printChildren(Debug.LEVEL.ERROR, schemaNode);
115
//Debug.log(Debug.LEVEL.ERROR, "\nchild of GlobalElement: ");
116
//XDMModel.printChildren(Debug.LEVEL.ERROR, ((GlobalElementImpl)ge).getPeer());
117

118         model.startTransaction();
119         GlobalElement clonedGe = (GlobalElement) ge.copy(schema);
120         assertTrue("testCutPasteByDocSync.globalElement", clonedGe!=null);
121         schema.addElement(clonedGe);
122         model.endTransaction();
123         
124         SchemaImpl changedSchema1 = (SchemaImpl) model.getSchema();
125         Node JavaDoc changedSchemaNode1 = changedSchema1.getPeer();
126         
127         assertEquals("testCutPasteByDocSync.localElement.nodes.size", 2, changedSchema1.getChildren().size());
128         Iterator JavaDoc it=changedSchema1.getChildren().iterator();
129         GlobalElement ge1=(GlobalElement) it.next();
130         GlobalElement ge2=(GlobalElement) it.next();
131         
132         assertTrue("testCutPasteByDocSync.localElement.isSame", ge1.getName().equals(ge2.getName()));
133         assertTrue("testCutPasteByDocSync.localElement.isIdNotSame",
134             ((NodeImpl)((GlobalElementImpl)ge1).getPeer()).getId()!=((NodeImpl)((GlobalElementImpl)ge2).getPeer()).getId());
135         assertEquals("testCutPasteByDocSync.localElement.nodes.size", 5, changedSchemaNode1.getChildNodes().getLength());
136         
137         //Debug.log(Debug.LEVEL.ERROR, "After add: ");
138
//Debug.logDocument(Debug.LEVEL.ERROR, changedSchemaNode1.getOwnerDocument());
139
//XDMModel.printChildren(Debug.LEVEL.ERROR, changedSchemaNode1);
140

141         LocalComplexType ge1Child = (LocalComplexType) ge1.getChildren().iterator().next();
142         Element JavaDoc ge1ChildNode = ((LocalComplexTypeImpl)ge1Child).getPeer();
143
144         LocalComplexType ge2Child = (LocalComplexType) ge2.getChildren().iterator().next();
145         Element JavaDoc ge2ChildNode = ((LocalComplexTypeImpl)ge2Child).getPeer();
146         
147         assertTrue("testCutPasteByDocSync.localElement.isIdNotSame",
148                 ((NodeImpl)ge1ChildNode).getId()!=((NodeImpl)ge2ChildNode).getId());
149         //Debug.log(Debug.LEVEL.ERROR, "\nchild of GlobalElement: ");
150
//XDMModel.printChildren(Debug.LEVEL.ERROR, ((GlobalElementImpl)ge1).getPeer());
151
//Debug.log(Debug.LEVEL.ERROR, "\nchild of new GlobalElement: ");
152
//XDMModel.printChildren(Debug.LEVEL.ERROR, ((GlobalElementImpl)ge2).getPeer());
153
}
154     
155     private Document JavaDoc sd;
156     private SchemaModel model;
157     
158 }
159
Popular Tags