]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
dbc9c018d31c50ecab08709d22217a7db8320d06
[tmp/jakarta-migration.git] /
1 /**\r
2  * This document is a part of the source code and related artifacts\r
3  * for CollectionSpace, an open source collections management system\r
4  * for museums and related institutions:\r
5  *\r
6  * http://www.collectionspace.org\r
7  * http://wiki.collectionspace.org\r
8  *\r
9  * Copyright (c) 2009 Regents of the University of California\r
10  *\r
11  * Licensed under the Educational Community License (ECL), Version 2.0.\r
12  * You may not use this file except in compliance with this License.\r
13  *\r
14  * You may obtain a copy of the ECL 2.0 License at\r
15  * https://source.collectionspace.org/collection-space/LICENSE.txt\r
16  *\r
17  *  Unless required by applicable law or agreed to in writing, software\r
18  *  distributed under the License is distributed on an "AS IS" BASIS,\r
19  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
20  *  See the License for the specific language governing permissions and\r
21  *  limitations under the License.\r
22  */\r
23 package org.collectionspace.services.IntegrationTests.test;\r
24 \r
25 import org.collectionspace.services.IntegrationTests.xmlreplay.TreeWalkResults;\r
26 import org.collectionspace.services.IntegrationTests.xmlreplay.XmlCompareJdom;\r
27 import org.testng.Assert;\r
28 import org.testng.annotations.Test;\r
29 \r
30 /**\r
31  * User: laramie\r
32  * $LastChangedRevision:  $\r
33  * $LastChangedDate:  $\r
34  */\r
35 public class XmlCompareJdomTest {\r
36 \r
37 \r
38     private void testBanner(String msg){\r
39         String BANNER ="-------------------------------------------------------";\r
40         System.out.println(BANNER+"\r\n"+this.getClass().getName()+"\r\n"+msg+"\r\n"+BANNER);\r
41     }\r
42     private void printTreeWalkResults(TreeWalkResults list){\r
43         for (TreeWalkResults.TreeWalkEntry entry : list){\r
44             System.out.println(entry.toString());\r
45         }\r
46     }\r
47 \r
48     private void assertTreeWalkResults(TreeWalkResults results,\r
49                                        int addedRight,\r
50                                        int missingRight,\r
51                                        int textMismatches,\r
52                                        boolean strictMatch,\r
53                                        boolean treesMatch){\r
54         System.out.println("assertTreeWalkResults: ");\r
55 \r
56         int addedr = results.countFor(TreeWalkResults.TreeWalkEntry.STATUS.R_ADDED);\r
57         int missingr = results.countFor(TreeWalkResults.TreeWalkEntry.STATUS.R_MISSING);\r
58         int tdiff = results.countFor(TreeWalkResults.TreeWalkEntry.STATUS.TEXT_DIFFERENT);\r
59         int badCount = results.getMismatchCount();\r
60         boolean strict = results.isStrictMatch();\r
61         boolean treeOK = results.treesMatch();\r
62 \r
63         String expected = "    expected: addedRight:"+addedRight+",missingRight:"+missingRight+",textMismatches:"+textMismatches\r
64                               +",strictMatch:"+strictMatch+",treesMatch:"+treesMatch;\r
65 \r
66         String actual   = "    actual:   addedRight:"+addedr+",missingRight:"+missingr+",textMismatches:"+tdiff\r
67                               +",strictMatch:"+strict+",treesMatch:"+treeOK;\r
68 \r
69         String exp_act = expected +"\r\n"+actual+"\r\n";\r
70         System.out.print(exp_act);\r
71 \r
72         printTreeWalkResults(results);\r
73 \r
74 \r
75         boolean done = false;\r
76         try {\r
77             Assert.assertEquals(addedr, addedRight, "assertTreeWalkResults:R_ADDED mismatch."+exp_act);\r
78 \r
79             Assert.assertEquals(missingr, missingRight, "assertTreeWalkResults:R_MISSING mismatch."+exp_act);\r
80 \r
81             Assert.assertEquals(tdiff, textMismatches, "assertTreeWalkResults:TEXT_DIFFERENT mismatch."+exp_act);\r
82 \r
83 \r
84             Assert.assertTrue((strict==strictMatch), "assertTreeWalkResults:strictMatch mismatch."+exp_act);\r
85 \r
86             Assert.assertTrue((treeOK==treesMatch), "assertTreeWalkResults:treesMatch mismatch."+exp_act);\r
87 \r
88             System.out.println("SUCCESS: assertTreeWalkResults done.\r\n");\r
89             done = true;\r
90         } finally {\r
91             if (!done) System.out.println("FAILURE: assertTreeWalkResults failed an assertion. See surefire report.\r\n");\r
92         }\r
93     }\r
94 \r
95     @Test\r
96     public void testXmlCompareJdom(){\r
97         testBanner("testXmlCompareJdom");\r
98         TreeWalkResults results =\r
99                     XmlCompareJdom.compareParts(expectedPartContent,\r
100                                         "expected",\r
101                                         partFromServer,\r
102                                         "from-server",\r
103                                         exPARTNAME);\r
104         assertTreeWalkResults(results,0,0,0,true,true);\r
105                                    // addedRight,missingRight,textMismatches,strictMatch,treesMatch\r
106     }\r
107 \r
108     @Test\r
109     public void testTextContentDifferent(){\r
110         testBanner("testTextContentDifferent");\r
111         TreeWalkResults results =\r
112             XmlCompareJdom.compareParts(expectedPartContent,\r
113                                         "expected",\r
114                                         srvHEAD+srvEN2+srvDEPOSITOR+srvFOOT,\r
115                                         "from-server",\r
116                                         exPARTNAME);\r
117         assertTreeWalkResults(results,0,0,1,false,true);\r
118                                    // addedRight,missingRight,textMismatches,strictMatch,treesMatch\r
119     }\r
120 \r
121 \r
122     @Test\r
123     public void testAddedR(){\r
124         testBanner("testAddedR");\r
125         TreeWalkResults results =\r
126             XmlCompareJdom.compareParts(expectedPartContent,\r
127                                         "expected",\r
128                                         srvHEAD+srvEN+exNEWTREE+srvDEPOSITOR+exNEW+srvFOOT,\r
129                                         "from-server",\r
130                                         exPARTNAME);\r
131         assertTreeWalkResults(results,2,0,0,false,false);\r
132                                    // addedRight,missingRight,textMismatches,strictMatch,treesMatch\r
133 \r
134     }\r
135 \r
136     @Test\r
137     public void testAddedL(){\r
138         testBanner("testAddedL");\r
139         TreeWalkResults results =\r
140             XmlCompareJdom.compareParts(exHEAD + exEN_WCH + exNEWTREE + exDEP  + exNEW + exFOOT,\r
141                                     "expected",\r
142                                     partFromServer,\r
143                                     "from-server",\r
144                                     exPARTNAME);\r
145         assertTreeWalkResults(results,0,3,0,false,false);\r
146                                    // addedRight,missingRight,textMismatches,strictMatch,treesMatch\r
147     }\r
148 \r
149     @Test\r
150     public void testChildrenReordered(){\r
151         testBanner("testChildrenReordered");\r
152         TreeWalkResults results =\r
153             XmlCompareJdom.compareParts(exHEAD  + exDEP + exEN + exFOOT,\r
154                                     "expected",\r
155                                     partFromServer,\r
156                                     "from-server",\r
157                                     exPARTNAME);\r
158         assertTreeWalkResults(results,0,0,0,true,true);\r
159                                    // addedRight,missingRight,textMismatches,strictMatch,treesMatch\r
160     }\r
161 \r
162     // ============  expected part, will be used as LEFT tree ==========================================================\r
163     private static String exPARTNAME = "objectexit_common";\r
164 \r
165     private static String exHEAD    ="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"\r
166                                     +"<document name=\"objectexit\">"\r
167                                     +"<ns2:objectexit_common \r\n"\r
168                                     +"    xmlns:ns2=\"http://collectionspace.org/services/objectexit\" \r\n"\r
169                                     +"    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \r\n"\r
170                                     +"    xsi:schemaLocation=\"http://collectionspace.org/services/objectexit http://services.collectionspace.org/objectexit/objectexit_common.xsd\">\r\n";\r
171     private static String exEN      =" <exitNumber>objectexitNumber-1290026472360</exitNumber>\r\n";\r
172     private static String exEN_WCH  =" <exitNumber>objectexitNumber-1290026472360\r\n"\r
173                                     +"    <enChild>\r\n"\r
174                                     +"        enChild content\r\n"\r
175                                     +"    </enChild>\r\n"\r
176                                     +" </exitNumber>\r\n";\r
177     private static String exNEWTREE =" <first>\r\n"\r
178                                     +"    <second>\r\n"\r
179                                     +"        second content\r\n"\r
180                                     +"    </second>\r\n"\r
181                                     +" </first>\r\n";\r
182     private static String exDEP     =" <depositor>urn:cspace:org.collectionspace.demo:orgauthority:name(TestOrgAuth):organization:name(Northern Climes Museum)'Northern Climes Museum'</depositor>\r\n";\r
183     private static String exNEW     =" <newField>objectexitNumber-1290026472360</newField>\r\n";\r
184     private static String exFOOT    ="</ns2:objectexit_common>"\r
185                                                      +"</document>";\r
186 \r
187     private static String expectedPartContent = exHEAD + exEN + exDEP  + exFOOT;\r
188 \r
189 \r
190     // ============  from-server part, will be used as RIGHT tree ==========================================================\r
191 \r
192     private static String srvHEAD =  "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"\r
193                                     +"<document name=\"objectexit\">"\r
194                                     +"<ns2:objectexit_common xmlns:ns2=\"http://collectionspace.org/services/objectexit\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://collectionspace.org/services/objectexit http://services.collectionspace.org/objectexit/objectexit_common.xsd\">\r\n";\r
195 \r
196     private static String srvEN    = "<exitNumber>objectexitNumber-1290026472360</exitNumber>\r\n";\r
197     private static String srvEN2   = "<exitNumber>objectexitNumber-9999999999999</exitNumber>\r\n";\r
198     private static String srvDEPOSITOR  = "<depositor>urn:cspace:org.collectionspace.demo:orgauthority:name(TestOrgAuth):organization:name(Northern Climes Museum)'Northern Climes Museum'</depositor>\r\n";\r
199     private static String srvFOOT =  "</ns2:objectexit_common>\r\n"\r
200                                                        +"</document>";\r
201 \r
202     private static String partFromServer = srvHEAD+srvEN+srvDEPOSITOR+srvFOOT;\r
203 \r
204 \r
205 \r
206 }\r