1 17 18 package org.apache.tools.ant.types.selectors; 19 20 import org.apache.tools.ant.BuildException; 21 import org.apache.tools.ant.Project; 22 import org.apache.tools.ant.BuildFileTest; 23 import org.apache.tools.ant.types.Mapper; 24 import org.apache.tools.ant.util.FileNameMapper; 25 import org.apache.tools.ant.util.IdentityMapper; 26 import org.apache.tools.ant.util.GlobPatternMapper; 27 import org.apache.tools.ant.util.JavaEnvUtils; 28 29 import java.io.File ; 30 31 import junit.framework.TestCase; 32 import junit.framework.AssertionFailedError; 33 34 38 public class DependSelectorTest extends BaseSelectorTest { 39 40 private Project project; 41 42 public DependSelectorTest(String name) { 43 super(name); 44 } 45 46 50 public BaseSelector getInstance() { 51 return new DependSelector(); 52 } 53 54 57 public void testValidate() { 58 DependSelector s = (DependSelector)getInstance(); 59 try { 60 s.createMapper(); 61 s.createMapper(); 62 fail("DependSelector allowed more than one nested mapper."); 63 } catch (BuildException be1) { 64 assertEquals("Cannot define more than one mapper", 65 be1.getMessage()); 66 } 67 68 s = (DependSelector)getInstance(); 69 try { 70 s.isSelected(basedir,filenames[0],files[0]); 71 fail("DependSelector did not check for required fields"); 72 } catch (BuildException be2) { 73 assertEquals("The targetdir attribute is required.", 74 be2.getMessage()); 75 } 76 77 } 78 79 82 public void testSelectionBehaviour() { 83 DependSelector s; 84 String results; 85 File subdir; 86 Mapper m; 87 Mapper.MapperType identity = new Mapper.MapperType(); 88 identity.setValue("identity"); 89 Mapper.MapperType glob = new Mapper.MapperType(); 90 glob.setValue("glob"); 91 Mapper.MapperType merge = new Mapper.MapperType(); 92 merge.setValue("merge"); 93 94 try { 95 makeBed(); 96 97 s = (DependSelector)getInstance(); 98 s.setTargetdir(beddir); 99 results = selectionString(s); 100 assertEquals("FFFFFFFFFFFF", results); 101 102 s = (DependSelector)getInstance(); 103 s.setTargetdir(beddir); 104 m = s.createMapper(); 105 m.setType(identity); 106 results = selectionString(s); 107 assertEquals("FFFFFFFFFFFF", results); 108 109 if (!JavaEnvUtils.isJavaVersion(JavaEnvUtils.JAVA_1_1)) { 110 s = (DependSelector)getInstance(); 111 s.setTargetdir(beddir); 112 m = s.createMapper(); 113 m.setType(merge); 114 m.setTo("asf-logo.gif.gz"); 115 results = selectionString(s); 116 assertEquals("TFFFFTTTFFF", results.substring(0,11)); 117 118 s = (DependSelector)getInstance(); 119 s.setTargetdir(beddir); 120 m = s.createMapper(); 121 m.setType(merge); 122 m.setTo("asf-logo.gif.bz2"); 123 results = selectionString(s); 124 assertEquals("TTFTTTTTTTTT", results); 125 126 s = (DependSelector)getInstance(); 128 subdir = new File ("selectortest/tar/bz2"); 129 s.setTargetdir(subdir); 130 m = s.createMapper(); 131 m.setType(glob); 132 m.setFrom("*.bz2"); 133 m.setTo("*.tar.bz2"); 134 results = selectionString(s); 135 assertEquals("FFTFFFFFFTTF", results); 136 } 137 138 s = (DependSelector)getInstance(); 139 subdir = new File (beddir,"tar/bz2"); 140 s.setTargetdir(subdir); 141 m = s.createMapper(); 142 m.setType(glob); 143 m.setFrom("*.bz2"); 144 m.setTo("*.tar.bz2"); 145 results = selectionString(s); 146 assertEquals("FFFFFFFFFTTF", results); 147 148 try { 149 makeMirror(); 150 151 s = (DependSelector)getInstance(); 152 File testdir = getProject().resolveFile("selectortest2"); 153 s.setTargetdir(testdir); 154 results = selectionString(s); 155 assertEquals("FFFTTFFFFFFF", results); 156 157 s = (DependSelector)getInstance(); 158 testdir = getProject().resolveFile("selectortest2/tar/bz2"); 159 s.setTargetdir(testdir); 160 m = s.createMapper(); 161 m.setType(glob); 162 m.setFrom("*.bz2"); 163 m.setTo("*.tar.bz2"); 164 results = mirrorSelectionString(s); 165 assertEquals("FFFFFFFFFTTF", results); 166 results = selectionString(s); 167 assertEquals("FFFFFFFFFTTF", results); 168 } 169 finally { 170 cleanupMirror(); 171 } 172 173 } 174 finally { 175 cleanupBed(); 176 } 177 178 } 179 180 } 181 | Popular Tags |