1 32 33 package com.jeantessier.dependency; 34 35 import java.io.*; 36 import java.util.*; 37 38 import junit.framework.*; 39 40 import org.apache.oro.text.perl.*; 41 42 public class TestClosureStopSelector extends TestCase { 43 private NodeFactory factory; 44 45 private PackageNode a; 46 private ClassNode a_A; 47 private FeatureNode a_A_a; 48 49 private PackageNode b; 50 private ClassNode b_B; 51 private FeatureNode b_B_b; 52 53 private PackageNode c; 54 private ClassNode c_C; 55 private FeatureNode c_C_c; 56 57 protected void setUp() throws Exception { 58 factory = new NodeFactory(); 59 60 a = factory.createPackage("a"); 61 a_A = factory.createClass("a.A"); 62 a_A_a = factory.createFeature("a.A.a"); 63 64 b = factory.createPackage("b"); 65 b_B = factory.createClass("b.B"); 66 b_B_b = factory.createFeature("b.B.b"); 67 68 c = factory.createPackage("c"); 69 c_C = factory.createClass("c.C"); 70 c_C_c = factory.createFeature("c.C.c"); 71 72 a_A_a.addDependency(b_B_b); 73 b_B_b.addDependency(c_C_c); 74 } 75 76 public void testEmpty() { 77 RegularExpressionSelectionCriteria localCriteria = new RegularExpressionSelectionCriteria(); 78 localCriteria.setGlobalIncludes("/b.B.b/"); 79 80 ClosureStopSelector selector = new ClosureStopSelector(localCriteria); 81 selector.traverseNodes(Collections.EMPTY_SET); 82 83 assertTrue("Failed to recognize empty collection", selector.isDone()); 84 } 85 86 public void testPositive() { 87 RegularExpressionSelectionCriteria localCriteria = new RegularExpressionSelectionCriteria(); 88 localCriteria.setGlobalIncludes("/b.B.b/"); 89 90 ClosureStopSelector selector = new ClosureStopSelector(localCriteria); 91 selector.traverseNodes(Collections.singleton(b_B_b)); 92 93 assertTrue("Failed to recognize target", selector.isDone()); 94 } 95 96 public void testNegative() { 97 RegularExpressionSelectionCriteria localCriteria = new RegularExpressionSelectionCriteria(); 98 localCriteria.setGlobalIncludes("/b.B.b/"); 99 100 ClosureStopSelector selector = new ClosureStopSelector(localCriteria); 101 selector.traverseNodes(Collections.singleton(a_A_a)); 102 103 assertFalse("Failed to ignore non-target", selector.isDone()); 104 } 105 106 public void testMultiple() { 107 RegularExpressionSelectionCriteria localCriteria = new RegularExpressionSelectionCriteria(); 108 localCriteria.setGlobalIncludes("/b.B.b/"); 109 110 Collection targets = new ArrayList(); 111 targets.add(a_A_a); 112 targets.add(b_B_b); 113 114 ClosureStopSelector selector = new ClosureStopSelector(localCriteria); 115 selector.traverseNodes(targets); 116 117 assertTrue("Failed to recognize target", selector.isDone()); 118 } 119 } 120 | Popular Tags |