1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package com.github.maven_nar.cpptasks;
21
22 import java.io.File;
23
24 import junit.framework.TestCase;
25
26 import org.apache.tools.ant.BuildException;
27
28 import com.github.maven_nar.cpptasks.compiler.CompilerConfiguration;
29 import com.github.maven_nar.cpptasks.compiler.ProgressMonitor;
30
31
32
33
34 public class TestTargetInfo extends TestCase {
35 private class DummyConfiguration implements CompilerConfiguration {
36 @Override
37 public int bid(final String filename) {
38 return 1;
39 }
40
41 public void close() {
42 }
43
44 @Override
45 public void compile(final CCTask task, final File workingDir, final String[] source, final boolean relentless,
46 final ProgressMonitor monitor) throws BuildException {
47 throw new BuildException("Not implemented");
48 }
49
50 @Override
51 public CompilerConfiguration[] createPrecompileConfigurations(final File file, final String[] exceptFiles) {
52 return null;
53 }
54
55 @Override
56 public String getIdentifier() {
57 return "dummy";
58 }
59
60 public String[] getIncludeDirectories() {
61 return new String[0];
62 }
63
64 @Override
65 public String getIncludePathIdentifier() {
66 return "dummyIncludePath";
67 }
68
69 @Override
70 public String[] getOutputFileNames(final String inputFile, final VersionInfo versionInfo) {
71 return new String[0];
72 }
73
74 @Override
75 public CompilerParam getParam(final String name) {
76 return null;
77 }
78
79 @Override
80 public ProcessorParam[] getParams() {
81 return new ProcessorParam[0];
82 }
83
84 @Override
85 public boolean getRebuild() {
86 return false;
87 }
88
89 @Override
90 public boolean isPrecompileGeneration() {
91 return true;
92 }
93
94 @Override
95 public DependencyInfo parseIncludes(final CCTask task, final File baseDir, final File file) {
96 return null;
97 }
98 }
99
100 public TestTargetInfo(final String name) {
101 super(name);
102 }
103
104 public void testConstructorNullConfig() {
105 try {
106 new TargetInfo(null, new File[] {
107 new File("")
108 }, null, new File(""), false);
109 fail("Didn't throw exception");
110 } catch (final NullPointerException ex) {
111 }
112 }
113
114 public void testConstructorNullOutput() {
115 final CompilerConfiguration config = new DummyConfiguration();
116 try {
117 new TargetInfo(config, new File[] {
118 new File("")
119 }, null, null, false);
120 fail("Didn't throw exception");
121 } catch (final NullPointerException ex) {
122 }
123 }
124
125 public void testConstructorNullSource() {
126 final CompilerConfiguration config = new DummyConfiguration();
127 try {
128 new TargetInfo(config, null, null, new File(""), false);
129 fail("Didn't throw exception");
130 } catch (final NullPointerException ex) {
131 }
132 }
133
134 public void testGetRebuild() {
135 final CompilerConfiguration config = new DummyConfiguration();
136 TargetInfo targetInfo = new TargetInfo(config, new File[] {
137 new File("FoO.BaR")
138 }, null, new File("foo.o"), false);
139 assertEquals(false, targetInfo.getRebuild());
140 targetInfo = new TargetInfo(config, new File[] {
141 new File("FoO.BaR")
142 }, null, new File("foo.o"), true);
143 assertEquals(true, targetInfo.getRebuild());
144 }
145
146 public void testGetSource() {
147 final CompilerConfiguration config = new DummyConfiguration();
148 final TargetInfo targetInfo = new TargetInfo(config, new File[] {
149 new File("FoO.BaR")
150 }, null, new File("foo.o"), false);
151 final String source = targetInfo.getSources()[0].getName();
152 assertEquals(source, "FoO.BaR");
153 }
154
155 public void testHasSameSource() {
156 final CompilerConfiguration config = new DummyConfiguration();
157 final TargetInfo targetInfo = new TargetInfo(config, new File[] {
158 new File("foo.bar")
159 }, null, new File("foo.o"), false);
160 boolean hasSame = targetInfo.getSources()[0].equals(new File("foo.bar"));
161 assertTrue(hasSame);
162 hasSame = targetInfo.getSources()[0].equals(new File("boo.far"));
163 assertEquals(hasSame, false);
164 }
165
166 public void testMustRebuild() {
167 final CompilerConfiguration config = new DummyConfiguration();
168 final TargetInfo targetInfo = new TargetInfo(config, new File[] {
169 new File("FoO.BaR")
170 }, null, new File("foo.o"), false);
171 assertEquals(false, targetInfo.getRebuild());
172 targetInfo.mustRebuild();
173 assertEquals(true, targetInfo.getRebuild());
174 }
175 }