1 32 33 package com.jeantessier.dependency; 34 35 import org.xml.sax.*; 36 import org.xml.sax.helpers.*; 37 38 import junit.framework.*; 39 40 public class TestNodeHandler extends TestCase { 41 private static final String MY_PACKAGE_NAME = "mypackage"; 42 private static final String MY_CLASS_NAME = "mypackage.MyClass"; 43 private static final String MY_FEATURE_NAME = "mypackage.MyClass.myFeature"; 44 private static final String OTHER_PACKAGE_NAME = "otherpackage"; 45 private static final String OTHER_CLASS_NAME = "otherpackage.OtherClass"; 46 private static final String OTHER_FEATURE_NAME = "otherpackage.OtherClass.otherFeature"; 47 48 private NodeHandler handler; 49 50 protected void setUp() throws Exception { 51 super.setUp(); 52 53 handler = new NodeHandler(); 54 } 55 56 public void testConstructor() { 57 assertEquals("nb packages", 0, handler.getFactory().getPackages().size()); 58 59 assertEquals("nb classes", 0, handler.getFactory().getClasses().size()); 60 61 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 62 } 63 64 public void testEmptyDocument() throws SAXException { 65 handler.startDocument(); 66 handler.endDocument(); 67 68 assertEquals("nb packages", 0, handler.getFactory().getPackages().size()); 69 70 assertEquals("nb classes", 0, handler.getFactory().getClasses().size()); 71 72 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 73 } 74 75 public void testEmptyTopNode() throws SAXException { 76 Attributes attsEmpty = new AttributesImpl(); 77 78 handler.startDocument(); 79 handler.startElement(null, null, "dependencies", attsEmpty); 80 handler.endElement(null, null, "dependencies"); 81 handler.endDocument(); 82 83 assertEquals("nb packages", 0, handler.getFactory().getPackages().size()); 84 85 assertEquals("nb classes", 0, handler.getFactory().getClasses().size()); 86 87 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 88 } 89 90 public void testUnspecifiedPackageNodeIsConfirmed() throws SAXException { 91 Attributes attsEmpty = new AttributesImpl(); 92 93 handler.startDocument(); 94 handler.startElement(null, null, "dependencies", attsEmpty); 95 handler.startElement(null, null, "package", attsEmpty); 96 handler.startElement(null, null, "name", attsEmpty); 97 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 98 handler.endElement(null, null, "name"); 99 handler.endElement(null, null, "package"); 100 handler.endElement(null, null, "dependencies"); 101 handler.endDocument(); 102 103 assertEquals("nb packages", 1, handler.getFactory().getPackages().size()); 104 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 105 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 106 107 assertEquals("nb classes", 0, handler.getFactory().getClasses().size()); 108 109 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 110 } 111 112 public void testInferredPackageNode() throws SAXException { 113 AttributesImpl attsEmpty = new AttributesImpl(); 114 AttributesImpl attsNo = new AttributesImpl(); 115 attsNo.addAttribute(null, null, "confirmed", null, "no"); 116 117 handler.startDocument(); 118 handler.startElement(null, null, "dependencies", attsEmpty); 119 handler.startElement(null, null, "package", attsNo); 120 handler.startElement(null, null, "name", attsEmpty); 121 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 122 handler.endElement(null, null, "name"); 123 handler.endElement(null, null, "package"); 124 handler.endElement(null, null, "dependencies"); 125 handler.endDocument(); 126 127 assertEquals("nb packages", 1, handler.getFactory().getPackages().size()); 128 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 129 assertFalse("package is confirmed", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 130 131 assertEquals("nb classes", 0, handler.getFactory().getClasses().size()); 132 133 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 134 } 135 136 public void testConfirmedPackageNode() throws SAXException { 137 AttributesImpl attsEmpty = new AttributesImpl(); 138 AttributesImpl attsYes = new AttributesImpl(); 139 attsYes.addAttribute(null, null, "confirmed", null, "yes"); 140 141 handler.startDocument(); 142 handler.startElement(null, null, "dependencies", attsEmpty); 143 handler.startElement(null, null, "package", attsYes); 144 handler.startElement(null, null, "name", attsEmpty); 145 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 146 handler.endElement(null, null, "name"); 147 handler.endElement(null, null, "package"); 148 handler.endElement(null, null, "dependencies"); 149 handler.endDocument(); 150 151 assertEquals("nb packages", 1, handler.getFactory().getPackages().size()); 152 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 153 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 154 155 assertEquals("nb classes", 0, handler.getFactory().getClasses().size()); 156 157 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 158 } 159 160 public void testUnspecifiedClassNodeIsConfirmed() throws SAXException { 161 Attributes attsEmpty = new AttributesImpl(); 162 163 handler.startDocument(); 164 handler.startElement(null, null, "dependencies", attsEmpty); 165 handler.startElement(null, null, "package", attsEmpty); 166 handler.startElement(null, null, "name", attsEmpty); 167 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 168 handler.endElement(null, null, "name"); 169 handler.startElement(null, null, "class", attsEmpty); 170 handler.startElement(null, null, "name", attsEmpty); 171 handler.characters(MY_CLASS_NAME.toCharArray(), 0, MY_CLASS_NAME.length()); 172 handler.endElement(null, null, "name"); 173 handler.endElement(null, null, "class"); 174 handler.endElement(null, null, "package"); 175 handler.endElement(null, null, "dependencies"); 176 handler.endDocument(); 177 178 assertEquals("nb packages", 1, handler.getFactory().getPackages().size()); 179 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 180 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 181 182 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 183 assertNotNull("missing class", handler.getFactory().getClasses().get(MY_CLASS_NAME)); 184 assertTrue("class is inferred", ((Node) handler.getFactory().getClasses().get(MY_CLASS_NAME)).isConfirmed()); 185 186 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 187 } 188 189 public void testInferredClassNode() throws SAXException { 190 AttributesImpl attsEmpty = new AttributesImpl(); 191 AttributesImpl attsNo = new AttributesImpl(); 192 attsNo.addAttribute(null, null, "confirmed", null, "no"); 193 194 handler.startDocument(); 195 handler.startElement(null, null, "dependencies", attsEmpty); 196 handler.startElement(null, null, "package", attsNo); 197 handler.startElement(null, null, "name", attsEmpty); 198 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 199 handler.endElement(null, null, "name"); 200 handler.startElement(null, null, "class", attsNo); 201 handler.startElement(null, null, "name", attsEmpty); 202 handler.characters(MY_CLASS_NAME.toCharArray(), 0, MY_CLASS_NAME.length()); 203 handler.endElement(null, null, "name"); 204 handler.endElement(null, null, "class"); 205 handler.endElement(null, null, "package"); 206 handler.endElement(null, null, "dependencies"); 207 handler.endDocument(); 208 209 assertEquals("nb packages", 1, handler.getFactory().getPackages().size()); 210 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 211 assertFalse("package is confirmed", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 212 213 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 214 assertNotNull("missing class", handler.getFactory().getClasses().get(MY_CLASS_NAME)); 215 assertFalse("class is confirmed", ((Node) handler.getFactory().getClasses().get(MY_CLASS_NAME)).isConfirmed()); 216 217 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 218 } 219 220 public void testConfirmedClassNode() throws SAXException { 221 AttributesImpl attsEmpty = new AttributesImpl(); 222 AttributesImpl attsYes = new AttributesImpl(); 223 224 handler.startDocument(); 225 handler.startElement(null, null, "dependencies", attsEmpty); 226 handler.startElement(null, null, "package", attsYes); 227 handler.startElement(null, null, "name", attsEmpty); 228 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 229 handler.endElement(null, null, "name"); 230 handler.startElement(null, null, "class", attsYes); 231 handler.startElement(null, null, "name", attsEmpty); 232 handler.characters(MY_CLASS_NAME.toCharArray(), 0, MY_CLASS_NAME.length()); 233 handler.endElement(null, null, "name"); 234 handler.endElement(null, null, "class"); 235 handler.endElement(null, null, "package"); 236 handler.endElement(null, null, "dependencies"); 237 handler.endDocument(); 238 239 assertEquals("nb packages", 1, handler.getFactory().getPackages().size()); 240 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 241 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 242 243 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 244 assertNotNull("missing class", handler.getFactory().getClasses().get(MY_CLASS_NAME)); 245 assertTrue("class is inferred", ((Node) handler.getFactory().getClasses().get(MY_CLASS_NAME)).isConfirmed()); 246 247 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 248 } 249 250 public void testUnspecifiedFeatureNodeIsConfirmed() throws SAXException { 251 Attributes attsEmpty = new AttributesImpl(); 252 253 handler.startDocument(); 254 handler.startElement(null, null, "dependencies", attsEmpty); 255 handler.startElement(null, null, "package", attsEmpty); 256 handler.startElement(null, null, "name", attsEmpty); 257 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 258 handler.endElement(null, null, "name"); 259 handler.startElement(null, null, "class", attsEmpty); 260 handler.startElement(null, null, "name", attsEmpty); 261 handler.characters(MY_CLASS_NAME.toCharArray(), 0, MY_CLASS_NAME.length()); 262 handler.endElement(null, null, "name"); 263 handler.startElement(null, null, "feature", attsEmpty); 264 handler.startElement(null, null, "name", attsEmpty); 265 handler.characters(MY_FEATURE_NAME.toCharArray(), 0, MY_FEATURE_NAME.length()); 266 handler.endElement(null, null, "name"); 267 handler.endElement(null, null, "feature"); 268 handler.endElement(null, null, "class"); 269 handler.endElement(null, null, "package"); 270 handler.endElement(null, null, "dependencies"); 271 handler.endDocument(); 272 273 assertEquals("nb packages", 1, handler.getFactory().getPackages().size()); 274 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 275 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 276 277 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 278 assertNotNull("missing class", handler.getFactory().getClasses().get(MY_CLASS_NAME)); 279 assertTrue("class is inferred", ((Node) handler.getFactory().getClasses().get(MY_CLASS_NAME)).isConfirmed()); 280 281 assertEquals("nb features", 1, handler.getFactory().getFeatures().size()); 282 assertNotNull("missing feature", handler.getFactory().getFeatures().get(MY_FEATURE_NAME)); 283 assertTrue("feature is inferred", ((Node) handler.getFactory().getFeatures().get(MY_FEATURE_NAME)).isConfirmed()); 284 } 285 286 public void testInferredFeatureNode() throws SAXException { 287 AttributesImpl attsEmpty = new AttributesImpl(); 288 AttributesImpl attsNo = new AttributesImpl(); 289 attsNo.addAttribute(null, null, "confirmed", null, "no"); 290 291 handler.startDocument(); 292 handler.startElement(null, null, "dependencies", attsEmpty); 293 handler.startElement(null, null, "package", attsNo); 294 handler.startElement(null, null, "name", attsEmpty); 295 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 296 handler.endElement(null, null, "name"); 297 handler.startElement(null, null, "class", attsNo); 298 handler.startElement(null, null, "name", attsEmpty); 299 handler.characters(MY_CLASS_NAME.toCharArray(), 0, MY_CLASS_NAME.length()); 300 handler.endElement(null, null, "name"); 301 handler.startElement(null, null, "feature", attsNo); 302 handler.startElement(null, null, "name", attsEmpty); 303 handler.characters(MY_FEATURE_NAME.toCharArray(), 0, MY_FEATURE_NAME.length()); 304 handler.endElement(null, null, "name"); 305 handler.endElement(null, null, "feature"); 306 handler.endElement(null, null, "class"); 307 handler.endElement(null, null, "package"); 308 handler.endElement(null, null, "dependencies"); 309 handler.endDocument(); 310 311 assertEquals("nb packages", 1, handler.getFactory().getPackages().size()); 312 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 313 assertFalse("package is confirmed", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 314 315 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 316 assertNotNull("missing class", handler.getFactory().getClasses().get(MY_CLASS_NAME)); 317 assertFalse("class is confirmed", ((Node) handler.getFactory().getClasses().get(MY_CLASS_NAME)).isConfirmed()); 318 319 assertEquals("nb features", 1, handler.getFactory().getFeatures().size()); 320 assertNotNull("missing feature", handler.getFactory().getFeatures().get(MY_FEATURE_NAME)); 321 assertFalse("feature is confirmed", ((Node) handler.getFactory().getFeatures().get(MY_FEATURE_NAME)).isConfirmed()); 322 } 323 324 public void testConfirmedFeatureNode() throws SAXException { 325 AttributesImpl attsEmpty = new AttributesImpl(); 326 AttributesImpl attsYes = new AttributesImpl(); 327 328 handler.startDocument(); 329 handler.startElement(null, null, "dependencies", attsEmpty); 330 handler.startElement(null, null, "package", attsYes); 331 handler.startElement(null, null, "name", attsEmpty); 332 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 333 handler.endElement(null, null, "name"); 334 handler.startElement(null, null, "class", attsYes); 335 handler.startElement(null, null, "name", attsEmpty); 336 handler.characters(MY_CLASS_NAME.toCharArray(), 0, MY_CLASS_NAME.length()); 337 handler.endElement(null, null, "name"); 338 handler.startElement(null, null, "feature", attsYes); 339 handler.startElement(null, null, "name", attsEmpty); 340 handler.characters(MY_FEATURE_NAME.toCharArray(), 0, MY_FEATURE_NAME.length()); 341 handler.endElement(null, null, "name"); 342 handler.endElement(null, null, "feature"); 343 handler.endElement(null, null, "class"); 344 handler.endElement(null, null, "package"); 345 handler.endElement(null, null, "dependencies"); 346 handler.endDocument(); 347 348 assertEquals("nb packages", 1, handler.getFactory().getPackages().size()); 349 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 350 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 351 352 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 353 assertNotNull("missing class", handler.getFactory().getClasses().get(MY_CLASS_NAME)); 354 assertTrue("class is inferred", ((Node) handler.getFactory().getClasses().get(MY_CLASS_NAME)).isConfirmed()); 355 356 assertEquals("nb features", 1, handler.getFactory().getFeatures().size()); 357 assertNotNull("missing feature", handler.getFactory().getFeatures().get(MY_FEATURE_NAME)); 358 assertTrue("feature is inferred", ((Node) handler.getFactory().getFeatures().get(MY_FEATURE_NAME)).isConfirmed()); 359 } 360 361 public void testUnspecifiedInboundPackageDependencyIsConfirmed() throws SAXException { 362 Attributes attsEmpty = new AttributesImpl(); 363 AttributesImpl attsPackage = new AttributesImpl(); 364 attsPackage.addAttribute(null, null, "type", null, "package"); 365 366 handler.startDocument(); 367 handler.startElement(null, null, "dependencies", attsEmpty); 368 handler.startElement(null, null, "package", attsEmpty); 369 handler.startElement(null, null, "name", attsEmpty); 370 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 371 handler.endElement(null, null, "name"); 372 handler.startElement(null, null, "inbound", attsPackage); 373 handler.characters(OTHER_PACKAGE_NAME.toCharArray(), 0, OTHER_PACKAGE_NAME.length()); 374 handler.endElement(null, null, "inbound"); 375 handler.endElement(null, null, "package"); 376 handler.endElement(null, null, "dependencies"); 377 handler.endDocument(); 378 379 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 380 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 381 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 382 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 383 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 384 385 assertEquals("nb classes", 0, handler.getFactory().getClasses().size()); 386 387 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 388 } 389 390 public void testInferredInboundPackageDependency() throws SAXException { 391 AttributesImpl attsEmpty = new AttributesImpl(); 392 AttributesImpl attsNo = new AttributesImpl(); 393 attsNo.addAttribute(null, null, "confirmed", null, "no"); 394 AttributesImpl attsPackageNo = new AttributesImpl(); 395 attsPackageNo.addAttribute(null, null, "type", null, "package"); 396 attsPackageNo.addAttribute(null, null, "confirmed", null, "no"); 397 398 handler.startDocument(); 399 handler.startElement(null, null, "dependencies", attsEmpty); 400 handler.startElement(null, null, "package", attsNo); 401 handler.startElement(null, null, "name", attsEmpty); 402 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 403 handler.endElement(null, null, "name"); 404 handler.startElement(null, null, "inbound", attsPackageNo); 405 handler.characters(OTHER_PACKAGE_NAME.toCharArray(), 0, OTHER_PACKAGE_NAME.length()); 406 handler.endElement(null, null, "inbound"); 407 handler.endElement(null, null, "package"); 408 handler.endElement(null, null, "dependencies"); 409 handler.endDocument(); 410 411 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 412 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 413 assertFalse("package is confirmed", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 414 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 415 assertFalse("package is confirmed", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 416 417 assertEquals("nb classes", 0, handler.getFactory().getClasses().size()); 418 419 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 420 } 421 422 public void testConfirmedInboundPackageDependency() throws SAXException { 423 AttributesImpl attsEmpty = new AttributesImpl(); 424 AttributesImpl attsYes = new AttributesImpl(); 425 attsYes.addAttribute(null, null, "confirmed", null, "yes"); 426 AttributesImpl attsPackageYes = new AttributesImpl(); 427 attsPackageYes.addAttribute(null, null, "type", null, "package"); 428 attsPackageYes.addAttribute(null, null, "confirmed", null, "yes"); 429 430 handler.startDocument(); 431 handler.startElement(null, null, "dependencies", attsEmpty); 432 handler.startElement(null, null, "package", attsYes); 433 handler.startElement(null, null, "name", attsEmpty); 434 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 435 handler.endElement(null, null, "name"); 436 handler.startElement(null, null, "inbound", attsPackageYes); 437 handler.characters(OTHER_PACKAGE_NAME.toCharArray(), 0, OTHER_PACKAGE_NAME.length()); 438 handler.endElement(null, null, "inbound"); 439 handler.endElement(null, null, "package"); 440 handler.endElement(null, null, "dependencies"); 441 handler.endDocument(); 442 443 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 444 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 445 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 446 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 447 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 448 449 assertEquals("nb classes", 0, handler.getFactory().getClasses().size()); 450 451 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 452 } 453 454 public void testUnspecifiedOutboundPackageDependencyIsConfirmed() throws SAXException { 455 Attributes attsEmpty = new AttributesImpl(); 456 AttributesImpl attsPackage = new AttributesImpl(); 457 attsPackage.addAttribute(null, null, "type", null, "package"); 458 459 handler.startDocument(); 460 handler.startElement(null, null, "dependencies", attsEmpty); 461 handler.startElement(null, null, "package", attsEmpty); 462 handler.startElement(null, null, "name", attsEmpty); 463 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 464 handler.endElement(null, null, "name"); 465 handler.startElement(null, null, "outbound", attsPackage); 466 handler.characters(OTHER_PACKAGE_NAME.toCharArray(), 0, OTHER_PACKAGE_NAME.length()); 467 handler.endElement(null, null, "outbound"); 468 handler.endElement(null, null, "package"); 469 handler.endElement(null, null, "dependencies"); 470 handler.endDocument(); 471 472 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 473 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 474 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 475 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 476 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 477 478 assertEquals("nb classes", 0, handler.getFactory().getClasses().size()); 479 480 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 481 } 482 483 public void testInferredOutboundPackageDependency() throws SAXException { 484 AttributesImpl attsEmpty = new AttributesImpl(); 485 AttributesImpl attsNo = new AttributesImpl(); 486 attsNo.addAttribute(null, null, "confirmed", null, "no"); 487 AttributesImpl attsPackageNo = new AttributesImpl(); 488 attsPackageNo.addAttribute(null, null, "type", null, "package"); 489 attsPackageNo.addAttribute(null, null, "confirmed", null, "no"); 490 491 handler.startDocument(); 492 handler.startElement(null, null, "dependencies", attsEmpty); 493 handler.startElement(null, null, "package", attsNo); 494 handler.startElement(null, null, "name", attsEmpty); 495 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 496 handler.endElement(null, null, "name"); 497 handler.startElement(null, null, "outbound", attsPackageNo); 498 handler.characters(OTHER_PACKAGE_NAME.toCharArray(), 0, OTHER_PACKAGE_NAME.length()); 499 handler.endElement(null, null, "outbound"); 500 handler.endElement(null, null, "package"); 501 handler.endElement(null, null, "dependencies"); 502 handler.endDocument(); 503 504 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 505 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 506 assertFalse("package is confirmed", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 507 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 508 assertFalse("package is confirmed", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 509 510 assertEquals("nb classes", 0, handler.getFactory().getClasses().size()); 511 512 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 513 } 514 515 public void testConfirmedOutboundPackageDependency() throws SAXException { 516 AttributesImpl attsEmpty = new AttributesImpl(); 517 AttributesImpl attsYes = new AttributesImpl(); 518 attsYes.addAttribute(null, null, "confirmed", null, "yes"); 519 AttributesImpl attsPackageYes = new AttributesImpl(); 520 attsPackageYes.addAttribute(null, null, "type", null, "package"); 521 attsPackageYes.addAttribute(null, null, "confirmed", null, "yes"); 522 523 handler.startDocument(); 524 handler.startElement(null, null, "dependencies", attsEmpty); 525 handler.startElement(null, null, "package", attsYes); 526 handler.startElement(null, null, "name", attsEmpty); 527 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 528 handler.endElement(null, null, "name"); 529 handler.startElement(null, null, "outbound", attsPackageYes); 530 handler.characters(OTHER_PACKAGE_NAME.toCharArray(), 0, OTHER_PACKAGE_NAME.length()); 531 handler.endElement(null, null, "outbound"); 532 handler.endElement(null, null, "package"); 533 handler.endElement(null, null, "dependencies"); 534 handler.endDocument(); 535 536 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 537 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 538 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 539 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 540 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 541 542 assertEquals("nb classes", 0, handler.getFactory().getClasses().size()); 543 544 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 545 } 546 547 public void testUnspecifiedInboundClassDependencyIsConfirmed() throws SAXException { 548 Attributes attsEmpty = new AttributesImpl(); 549 AttributesImpl attsClass = new AttributesImpl(); 550 attsClass.addAttribute(null, null, "type", null, "class"); 551 552 handler.startDocument(); 553 handler.startElement(null, null, "dependencies", attsEmpty); 554 handler.startElement(null, null, "package", attsEmpty); 555 handler.startElement(null, null, "name", attsEmpty); 556 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 557 handler.endElement(null, null, "name"); 558 handler.startElement(null, null, "inbound", attsClass); 559 handler.characters(OTHER_CLASS_NAME.toCharArray(), 0, OTHER_CLASS_NAME.length()); 560 handler.endElement(null, null, "inbound"); 561 handler.endElement(null, null, "package"); 562 handler.endElement(null, null, "dependencies"); 563 handler.endDocument(); 564 565 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 566 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 567 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 568 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 569 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 570 571 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 572 assertNotNull("missing class", handler.getFactory().getClasses().get(OTHER_CLASS_NAME)); 573 assertTrue("class is inferred", ((Node) handler.getFactory().getClasses().get(OTHER_CLASS_NAME)).isConfirmed()); 574 575 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 576 } 577 578 public void testInferredInboundClassDependency() throws SAXException { 579 AttributesImpl attsEmpty = new AttributesImpl(); 580 AttributesImpl attsNo = new AttributesImpl(); 581 attsNo.addAttribute(null, null, "confirmed", null, "no"); 582 AttributesImpl attsClassNo = new AttributesImpl(); 583 attsClassNo.addAttribute(null, null, "type", null, "class"); 584 attsClassNo.addAttribute(null, null, "confirmed", null, "no"); 585 586 handler.startDocument(); 587 handler.startElement(null, null, "dependencies", attsEmpty); 588 handler.startElement(null, null, "package", attsNo); 589 handler.startElement(null, null, "name", attsEmpty); 590 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 591 handler.endElement(null, null, "name"); 592 handler.startElement(null, null, "inbound", attsClassNo); 593 handler.characters(OTHER_CLASS_NAME.toCharArray(), 0, OTHER_CLASS_NAME.length()); 594 handler.endElement(null, null, "inbound"); 595 handler.endElement(null, null, "package"); 596 handler.endElement(null, null, "dependencies"); 597 handler.endDocument(); 598 599 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 600 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 601 assertFalse("package is confirmed", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 602 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 603 assertFalse("package is confirmed", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 604 605 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 606 assertNotNull("missing class", handler.getFactory().getClasses().get(OTHER_CLASS_NAME)); 607 assertFalse("class is confirmed", ((Node) handler.getFactory().getClasses().get(OTHER_CLASS_NAME)).isConfirmed()); 608 609 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 610 } 611 612 public void testConfirmedInboundClassDependency() throws SAXException { 613 AttributesImpl attsEmpty = new AttributesImpl(); 614 AttributesImpl attsYes = new AttributesImpl(); 615 attsYes.addAttribute(null, null, "confirmed", null, "yes"); 616 AttributesImpl attsClassYes = new AttributesImpl(); 617 attsClassYes.addAttribute(null, null, "type", null, "class"); 618 attsClassYes.addAttribute(null, null, "confirmed", null, "yes"); 619 620 handler.startDocument(); 621 handler.startElement(null, null, "dependencies", attsEmpty); 622 handler.startElement(null, null, "package", attsYes); 623 handler.startElement(null, null, "name", attsEmpty); 624 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 625 handler.endElement(null, null, "name"); 626 handler.startElement(null, null, "inbound", attsClassYes); 627 handler.characters(OTHER_CLASS_NAME.toCharArray(), 0, OTHER_CLASS_NAME.length()); 628 handler.endElement(null, null, "inbound"); 629 handler.endElement(null, null, "package"); 630 handler.endElement(null, null, "dependencies"); 631 handler.endDocument(); 632 633 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 634 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 635 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 636 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 637 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 638 639 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 640 assertNotNull("missing class", handler.getFactory().getClasses().get(OTHER_CLASS_NAME)); 641 assertTrue("class is inferred", ((Node) handler.getFactory().getClasses().get(OTHER_CLASS_NAME)).isConfirmed()); 642 643 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 644 } 645 646 public void testUnspecifiedOutboundClassDependencyIsConfirmed() throws SAXException { 647 Attributes attsEmpty = new AttributesImpl(); 648 AttributesImpl attsClass = new AttributesImpl(); 649 attsClass.addAttribute(null, null, "type", null, "class"); 650 651 handler.startDocument(); 652 handler.startElement(null, null, "dependencies", attsEmpty); 653 handler.startElement(null, null, "package", attsEmpty); 654 handler.startElement(null, null, "name", attsEmpty); 655 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 656 handler.endElement(null, null, "name"); 657 handler.startElement(null, null, "outbound", attsClass); 658 handler.characters(OTHER_CLASS_NAME.toCharArray(), 0, OTHER_CLASS_NAME.length()); 659 handler.endElement(null, null, "outbound"); 660 handler.endElement(null, null, "package"); 661 handler.endElement(null, null, "dependencies"); 662 handler.endDocument(); 663 664 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 665 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 666 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 667 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 668 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 669 670 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 671 assertNotNull("missing class", handler.getFactory().getClasses().get(OTHER_CLASS_NAME)); 672 assertTrue("class is inferred", ((Node) handler.getFactory().getClasses().get(OTHER_CLASS_NAME)).isConfirmed()); 673 674 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 675 } 676 677 public void testInferredOutboundClassDependency() throws SAXException { 678 AttributesImpl attsEmpty = new AttributesImpl(); 679 AttributesImpl attsNo = new AttributesImpl(); 680 attsNo.addAttribute(null, null, "confirmed", null, "no"); 681 AttributesImpl attsClassNo = new AttributesImpl(); 682 attsClassNo.addAttribute(null, null, "type", null, "class"); 683 attsClassNo.addAttribute(null, null, "confirmed", null, "no"); 684 685 handler.startDocument(); 686 handler.startElement(null, null, "dependencies", attsEmpty); 687 handler.startElement(null, null, "package", attsNo); 688 handler.startElement(null, null, "name", attsEmpty); 689 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 690 handler.endElement(null, null, "name"); 691 handler.startElement(null, null, "outbound", attsClassNo); 692 handler.characters(OTHER_CLASS_NAME.toCharArray(), 0, OTHER_CLASS_NAME.length()); 693 handler.endElement(null, null, "outbound"); 694 handler.endElement(null, null, "package"); 695 handler.endElement(null, null, "dependencies"); 696 handler.endDocument(); 697 698 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 699 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 700 assertFalse("package is confirmed", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 701 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 702 assertFalse("package is confirmed", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 703 704 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 705 assertNotNull("missing class", handler.getFactory().getClasses().get(OTHER_CLASS_NAME)); 706 assertFalse("class is confirmed", ((Node) handler.getFactory().getClasses().get(OTHER_CLASS_NAME)).isConfirmed()); 707 708 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 709 } 710 711 public void testConfirmedOutboundClassDependency() throws SAXException { 712 AttributesImpl attsEmpty = new AttributesImpl(); 713 AttributesImpl attsYes = new AttributesImpl(); 714 attsYes.addAttribute(null, null, "confirmed", null, "yes"); 715 AttributesImpl attsClassYes = new AttributesImpl(); 716 attsClassYes.addAttribute(null, null, "type", null, "class"); 717 attsClassYes.addAttribute(null, null, "confirmed", null, "yes"); 718 719 handler.startDocument(); 720 handler.startElement(null, null, "dependencies", attsEmpty); 721 handler.startElement(null, null, "package", attsYes); 722 handler.startElement(null, null, "name", attsEmpty); 723 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 724 handler.endElement(null, null, "name"); 725 handler.startElement(null, null, "outbound", attsClassYes); 726 handler.characters(OTHER_CLASS_NAME.toCharArray(), 0, OTHER_CLASS_NAME.length()); 727 handler.endElement(null, null, "outbound"); 728 handler.endElement(null, null, "package"); 729 handler.endElement(null, null, "dependencies"); 730 handler.endDocument(); 731 732 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 733 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 734 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 735 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 736 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 737 738 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 739 assertNotNull("missing class", handler.getFactory().getClasses().get(OTHER_CLASS_NAME)); 740 assertTrue("class is inferred", ((Node) handler.getFactory().getClasses().get(OTHER_CLASS_NAME)).isConfirmed()); 741 742 assertEquals("nb features", 0, handler.getFactory().getFeatures().size()); 743 } 744 745 747 748 public void testUnspecifiedInboundFeatureDependencyIsConfirmed() throws SAXException { 749 Attributes attsEmpty = new AttributesImpl(); 750 AttributesImpl attsFeature = new AttributesImpl(); 751 attsFeature.addAttribute(null, null, "type", null, "feature"); 752 753 handler.startDocument(); 754 handler.startElement(null, null, "dependencies", attsEmpty); 755 handler.startElement(null, null, "package", attsEmpty); 756 handler.startElement(null, null, "name", attsEmpty); 757 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 758 handler.endElement(null, null, "name"); 759 handler.startElement(null, null, "inbound", attsFeature); 760 handler.characters(OTHER_FEATURE_NAME.toCharArray(), 0, OTHER_FEATURE_NAME.length()); 761 handler.endElement(null, null, "inbound"); 762 handler.endElement(null, null, "package"); 763 handler.endElement(null, null, "dependencies"); 764 handler.endDocument(); 765 766 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 767 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 768 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 769 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 770 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 771 772 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 773 assertNotNull("missing class", handler.getFactory().getClasses().get(OTHER_CLASS_NAME)); 774 assertTrue("class is inferred", ((Node) handler.getFactory().getClasses().get(OTHER_CLASS_NAME)).isConfirmed()); 775 776 assertEquals("nb features", 1, handler.getFactory().getFeatures().size()); 777 assertNotNull("missing feature", handler.getFactory().getFeatures().get(OTHER_FEATURE_NAME)); 778 assertTrue("feature is inferred", ((Node) handler.getFactory().getFeatures().get(OTHER_FEATURE_NAME)).isConfirmed()); 779 } 780 781 public void testInferredInboundFeatureDependency() throws SAXException { 782 AttributesImpl attsEmpty = new AttributesImpl(); 783 AttributesImpl attsNo = new AttributesImpl(); 784 attsNo.addAttribute(null, null, "confirmed", null, "no"); 785 AttributesImpl attsFeatureNo = new AttributesImpl(); 786 attsFeatureNo.addAttribute(null, null, "type", null, "feature"); 787 attsFeatureNo.addAttribute(null, null, "confirmed", null, "no"); 788 789 handler.startDocument(); 790 handler.startElement(null, null, "dependencies", attsEmpty); 791 handler.startElement(null, null, "package", attsNo); 792 handler.startElement(null, null, "name", attsEmpty); 793 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 794 handler.endElement(null, null, "name"); 795 handler.startElement(null, null, "inbound", attsFeatureNo); 796 handler.characters(OTHER_FEATURE_NAME.toCharArray(), 0, OTHER_FEATURE_NAME.length()); 797 handler.endElement(null, null, "inbound"); 798 handler.endElement(null, null, "package"); 799 handler.endElement(null, null, "dependencies"); 800 handler.endDocument(); 801 802 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 803 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 804 assertFalse("package is confirmed", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 805 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 806 assertFalse("package is confirmed", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 807 808 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 809 assertNotNull("missing class", handler.getFactory().getClasses().get(OTHER_CLASS_NAME)); 810 assertFalse("class is confirmed", ((Node) handler.getFactory().getClasses().get(OTHER_CLASS_NAME)).isConfirmed()); 811 812 assertEquals("nb features", 1, handler.getFactory().getFeatures().size()); 813 assertNotNull("missing feature", handler.getFactory().getFeatures().get(OTHER_FEATURE_NAME)); 814 assertFalse("feature is confirmed", ((Node) handler.getFactory().getFeatures().get(OTHER_FEATURE_NAME)).isConfirmed()); 815 } 816 817 public void testConfirmedInboundFeatureDependency() throws SAXException { 818 AttributesImpl attsEmpty = new AttributesImpl(); 819 AttributesImpl attsYes = new AttributesImpl(); 820 attsYes.addAttribute(null, null, "confirmed", null, "yes"); 821 AttributesImpl attsFeatureYes = new AttributesImpl(); 822 attsFeatureYes.addAttribute(null, null, "type", null, "feature"); 823 attsFeatureYes.addAttribute(null, null, "confirmed", null, "yes"); 824 825 handler.startDocument(); 826 handler.startElement(null, null, "dependencies", attsEmpty); 827 handler.startElement(null, null, "package", attsYes); 828 handler.startElement(null, null, "name", attsEmpty); 829 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 830 handler.endElement(null, null, "name"); 831 handler.startElement(null, null, "inbound", attsFeatureYes); 832 handler.characters(OTHER_FEATURE_NAME.toCharArray(), 0, OTHER_FEATURE_NAME.length()); 833 handler.endElement(null, null, "inbound"); 834 handler.endElement(null, null, "package"); 835 handler.endElement(null, null, "dependencies"); 836 handler.endDocument(); 837 838 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 839 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 840 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 841 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 842 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 843 844 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 845 assertNotNull("missing class", handler.getFactory().getClasses().get(OTHER_CLASS_NAME)); 846 assertTrue("class is inferred", ((Node) handler.getFactory().getClasses().get(OTHER_CLASS_NAME)).isConfirmed()); 847 848 assertEquals("nb features", 1, handler.getFactory().getFeatures().size()); 849 assertNotNull("missing feature", handler.getFactory().getFeatures().get(OTHER_FEATURE_NAME)); 850 assertTrue("feature is inferred", ((Node) handler.getFactory().getFeatures().get(OTHER_FEATURE_NAME)).isConfirmed()); 851 } 852 853 public void testUnspecifiedOutboundFeatureDependencyIsConfirmed() throws SAXException { 854 Attributes attsEmpty = new AttributesImpl(); 855 AttributesImpl attsFeature = new AttributesImpl(); 856 attsFeature.addAttribute(null, null, "type", null, "feature"); 857 858 handler.startDocument(); 859 handler.startElement(null, null, "dependencies", attsEmpty); 860 handler.startElement(null, null, "package", attsEmpty); 861 handler.startElement(null, null, "name", attsEmpty); 862 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 863 handler.endElement(null, null, "name"); 864 handler.startElement(null, null, "outbound", attsFeature); 865 handler.characters(OTHER_FEATURE_NAME.toCharArray(), 0, OTHER_FEATURE_NAME.length()); 866 handler.endElement(null, null, "outbound"); 867 handler.endElement(null, null, "package"); 868 handler.endElement(null, null, "dependencies"); 869 handler.endDocument(); 870 871 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 872 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 873 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 874 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 875 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 876 877 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 878 assertNotNull("missing class", handler.getFactory().getClasses().get(OTHER_CLASS_NAME)); 879 assertTrue("class is inferred", ((Node) handler.getFactory().getClasses().get(OTHER_CLASS_NAME)).isConfirmed()); 880 881 assertEquals("nb features", 1, handler.getFactory().getFeatures().size()); 882 assertNotNull("missing feature", handler.getFactory().getFeatures().get(OTHER_FEATURE_NAME)); 883 assertTrue("feature is inferred", ((Node) handler.getFactory().getFeatures().get(OTHER_FEATURE_NAME)).isConfirmed()); 884 } 885 886 public void testInferredOutboundFeatureDependency() throws SAXException { 887 AttributesImpl attsEmpty = new AttributesImpl(); 888 AttributesImpl attsNo = new AttributesImpl(); 889 attsNo.addAttribute(null, null, "confirmed", null, "no"); 890 AttributesImpl attsFeatureNo = new AttributesImpl(); 891 attsFeatureNo.addAttribute(null, null, "type", null, "feature"); 892 attsFeatureNo.addAttribute(null, null, "confirmed", null, "no"); 893 894 handler.startDocument(); 895 handler.startElement(null, null, "dependencies", attsEmpty); 896 handler.startElement(null, null, "package", attsNo); 897 handler.startElement(null, null, "name", attsEmpty); 898 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 899 handler.endElement(null, null, "name"); 900 handler.startElement(null, null, "outbound", attsFeatureNo); 901 handler.characters(OTHER_FEATURE_NAME.toCharArray(), 0, OTHER_FEATURE_NAME.length()); 902 handler.endElement(null, null, "outbound"); 903 handler.endElement(null, null, "package"); 904 handler.endElement(null, null, "dependencies"); 905 handler.endDocument(); 906 907 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 908 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 909 assertFalse("package is confirmed", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 910 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 911 assertFalse("package is confirmed", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 912 913 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 914 assertNotNull("missing class", handler.getFactory().getClasses().get(OTHER_CLASS_NAME)); 915 assertFalse("class is confirmed", ((Node) handler.getFactory().getClasses().get(OTHER_CLASS_NAME)).isConfirmed()); 916 917 assertEquals("nb features", 1, handler.getFactory().getFeatures().size()); 918 assertNotNull("missing feature", handler.getFactory().getFeatures().get(OTHER_FEATURE_NAME)); 919 assertFalse("feature is confirmed", ((Node) handler.getFactory().getFeatures().get(OTHER_FEATURE_NAME)).isConfirmed()); 920 } 921 922 public void testConfirmedOutboundFeatureDependency() throws SAXException { 923 AttributesImpl attsEmpty = new AttributesImpl(); 924 AttributesImpl attsYes = new AttributesImpl(); 925 attsYes.addAttribute(null, null, "confirmed", null, "yes"); 926 AttributesImpl attsFeatureYes = new AttributesImpl(); 927 attsFeatureYes.addAttribute(null, null, "type", null, "feature"); 928 attsFeatureYes.addAttribute(null, null, "confirmed", null, "yes"); 929 930 handler.startDocument(); 931 handler.startElement(null, null, "dependencies", attsEmpty); 932 handler.startElement(null, null, "package", attsYes); 933 handler.startElement(null, null, "name", attsEmpty); 934 handler.characters(MY_PACKAGE_NAME.toCharArray(), 0, MY_PACKAGE_NAME.length()); 935 handler.endElement(null, null, "name"); 936 handler.startElement(null, null, "outbound", attsFeatureYes); 937 handler.characters(OTHER_FEATURE_NAME.toCharArray(), 0, OTHER_FEATURE_NAME.length()); 938 handler.endElement(null, null, "outbound"); 939 handler.endElement(null, null, "package"); 940 handler.endElement(null, null, "dependencies"); 941 handler.endDocument(); 942 943 assertEquals("nb packages", 2, handler.getFactory().getPackages().size()); 944 assertNotNull("missing package", handler.getFactory().getPackages().get(MY_PACKAGE_NAME)); 945 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(MY_PACKAGE_NAME)).isConfirmed()); 946 assertNotNull("missing package", handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)); 947 assertTrue("package is inferred", ((Node) handler.getFactory().getPackages().get(OTHER_PACKAGE_NAME)).isConfirmed()); 948 949 assertEquals("nb classes", 1, handler.getFactory().getClasses().size()); 950 assertNotNull("missing class", handler.getFactory().getClasses().get(OTHER_CLASS_NAME)); 951 assertTrue("class is inferred", ((Node) handler.getFactory().getClasses().get(OTHER_CLASS_NAME)).isConfirmed()); 952 953 assertEquals("nb features", 1, handler.getFactory().getFeatures().size()); 954 assertNotNull("missing feature", handler.getFactory().getFeatures().get(OTHER_FEATURE_NAME)); 955 assertTrue("feature is inferred", ((Node) handler.getFactory().getFeatures().get(OTHER_FEATURE_NAME)).isConfirmed()); 956 } 957 } 958 | Popular Tags |