1 53 package test.xmldb.other; 54 55 import test.xmldb.*; 56 import junit.framework.*; 57 58 import org.xmldb.api.base.*; 59 import org.xmldb.api.modules.*; 60 61 public class CollectionTest extends XMLDBTestCase { 62 public CollectionTest(String name) { 63 super(name); 64 } 65 66 public static Test suite() { 67 return new TestSuite(CollectionTest.class); 68 } 69 70 public void testGetName( ) { 71 try { 72 assertTrue(col.getName().equals("child1")); 73 } catch (Exception e) { 74 fail( e.getMessage( ) ); 75 } 76 } 77 78 public void testGetParentCollection() { 79 try { 80 Collection parent = col.getParentCollection(); 81 assertTrue(parent.getName().equals("data")); 82 assertTrue(parent.getParentCollection() == null); 83 } catch (Exception e) { 84 fail( e.getMessage( ) ); 85 } 86 } 87 88 public void testGetChildCollectionCount() { 89 try { 90 assertTrue(col.getChildCollectionCount() == 2); 91 } catch (Exception e) { 92 fail( e.getMessage( ) ); 93 } 94 } 95 96 public void testListChildCollections() { 97 try { 98 String [] children = col.listChildCollections(); 99 100 boolean match1 = false; 102 boolean match2 = false; 103 for ( int i = 0; i < children.length; i++ ) { 104 String child = children[i]; 105 if ( child.equals("subchild1") ) 106 match1 = true; 107 if ( child.equals("subchild2") ) 108 match2 = true; 109 } 110 111 assertTrue(match1 && match2); 112 113 try { 114 assertTrue(children[2] == null); 115 } 116 catch (ArrayIndexOutOfBoundsException e) { 117 } 119 } catch (Exception e) { 120 fail( e.getMessage( ) ); 121 } 122 } 123 124 125 public void testGetChildCollection() { 126 try { 127 Collection child = col.getChildCollection("subchild1"); 128 assertTrue(child.getName().equals("subchild1")); 129 } catch (Exception e) { 130 fail( e.getMessage( ) ); 131 } 132 } 133 134 public void testGetResourceCount() { 135 try { 136 assertTrue(col.getResourceCount() == 4); 139 } catch (Exception e) { 140 fail( e.getMessage( ) ); 141 } 142 } 143 144 public void testListResources() { 145 try { 146 String [] resources = col.listResources(); 147 boolean match1 = false; 149 boolean match2 = false; 150 boolean match3 = false; 151 for ( int i = 0; i < resources.length; i++ ) { 152 String res = resources[i]; 153 if ( res.equals("test1.xml") ) 154 match1 = true; 155 if ( res.equals("test2.xml") ) 156 match2 = true; 157 if ( res.equals("test3.xml") ) 158 match3 = true; 159 } 160 161 assertTrue(match1 && match2 && match3); 162 163 try { 164 assertTrue(resources[4] == null); 167 } 168 catch (ArrayIndexOutOfBoundsException e) { 169 } 171 } catch (Exception e) { 172 fail( e.getMessage( ) ); 173 } 174 } 175 176 public void testCreateResource() { 177 try { 178 XMLResource res = (XMLResource) col.createResource("test4.xml", 180 XMLResource.RESOURCE_TYPE); 181 assertTrue(res.getResourceType().equals(XMLResource.RESOURCE_TYPE)); 182 assertTrue(res.getId().equals("test4.xml")); 183 184 BinaryResource res2 = (BinaryResource) col.createResource("", 188 BinaryResource.RESOURCE_TYPE); 189 assertTrue(res2.getResourceType().equals(BinaryResource.RESOURCE_TYPE)); 190 assertTrue(! res2.getId().equals("")); 191 192 try { 194 Resource res3 = col.createResource("", "GoogleResource"); 195 assertTrue(false); 196 } 197 catch (XMLDBException e) { 198 assertTrue(e.errorCode == ErrorCodes.UNKNOWN_RESOURCE_TYPE); 199 } 200 } catch (Exception e) { 201 fail( e.getMessage( ) ); 202 } 203 } 204 205 206 public void testStoreResource() { 207 String content = "<?xml version=\"1.0\"?><tag1><tag2>value</tag2></tag1>"; 208 try { 209 XMLResource res = (XMLResource) col.createResource("", XMLResource.RESOURCE_TYPE); 210 res.setContent(content); 211 col.storeResource(res); 212 213 XMLResource res2 = (XMLResource) col.getResource(res.getId()); 214 assertTrue(res2 != null); 215 assertTrue(res2.getId().equals(res.getId())); 216 assertTrue(res2.getContent() != null); 217 218 col.removeResource(res); 219 } catch (Exception e) { 220 fail( e.getMessage( ) ); 221 } 222 } 223 224 public void testRemoveResource() { 225 String content = "<?xml version=\"1.0\"?><tag1><tag2>value</tag2></tag1>"; 226 try { 227 XMLResource res = (XMLResource) col.createResource("", XMLResource.RESOURCE_TYPE); 229 res.setContent(content); 230 col.storeResource(res); 231 232 XMLResource res2 = (XMLResource) col.getResource(res.getId()); 234 assertTrue(res2 != null); 235 assertTrue(res2.getId().equals(res.getId())); 236 assertTrue(res2.getContent() != null); 237 238 col.removeResource(res2); 240 Resource res3 = col.getResource(res.getId()); 241 assertTrue(res3 == null); 242 243 try { 245 col.removeResource(res); 246 } 247 catch (XMLDBException e) { 248 assertTrue(e.errorCode == ErrorCodes.NO_SUCH_RESOURCE); 249 } 250 } catch (Exception e) { 251 fail( e.getMessage( ) ); 252 } 253 } 254 255 public void testGetResource() { 256 try { 257 Resource res = col.getResource("test1.xml"); 259 assertTrue(res != null); 260 assertTrue(res.getResourceType().equals(XMLResource.RESOURCE_TYPE)); 261 assertTrue(res.getContent() != null); 262 263 res = col.getResource("image.gif"); 267 assertTrue(res != null); 268 assertTrue(res.getResourceType().equals(BinaryResource.RESOURCE_TYPE)); 269 assertTrue(res.getContent() != null); 270 271 res = col.getResource("missing.xml"); 273 assertTrue(res == null); 274 275 } catch (Exception e) { 276 fail( e.getMessage( ) ); 277 } 278 } 279 280 public void testXPathQueryService() { 281 try { 282 XPathQueryService serv = 283 (XPathQueryService) col.getService("XPathQueryService", "1.0"); 284 assertTrue(serv != null); 285 286 ResourceIterator result = serv.query("/data"); 287 int i = 0; 288 while (result.hasMoreResources()) { 289 result.nextResource(); 290 i++; 291 } 292 assertTrue(i == 3); 293 294 result = serv.query("/data/child/subchild[@name='subchild1']"); 295 i = 0; 296 while (result.hasMoreResources()) { 297 result.nextResource(); 298 i++; 299 } 300 assertTrue(i == 6); 301 302 result = serv.query("/data/child/subchild/subsubchild[@name='subsubchild1']"); 303 i = 0; 304 while (result.hasMoreResources()) { 305 result.nextResource(); 306 i++; 307 } 308 assertTrue(i == 1); 309 } catch (Exception e) { 310 fail( e.getMessage( ) ); 311 } 312 } 313 314 323 } 324 | Popular Tags |