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.types;
21
22 import junit.framework.TestCase;
23
24 import org.apache.tools.ant.BuildException;
25 import org.apache.tools.ant.Project;
26
27
28
29
30 public class TestDefineArgument extends TestCase {
31 public TestDefineArgument(final String name) {
32 super(name);
33 }
34
35 public void testIsActive1() {
36 final DefineArgument arg = new DefineArgument();
37 final Project project = new Project();
38 try {
39 final boolean isActive = arg.isActive(project);
40 } catch (final BuildException ex) {
41 return;
42 }
43 fail("isActive should throw exception if name is not set");
44 }
45
46 public void testIsActive2() {
47 final DefineArgument arg = new DefineArgument();
48 arg.setName("TEST");
49 final Project project = new Project();
50 project.setProperty("cond", "");
51 arg.setIf("cond");
52 assertTrue(arg.isActive(project));
53 }
54
55 public void testIsActive3() {
56 final DefineArgument arg = new DefineArgument();
57 arg.setName("TEST");
58 final Project project = new Project();
59 arg.setIf("cond");
60 assertTrue(!arg.isActive(project));
61 }
62
63 public void testIsActive4() {
64 final DefineArgument arg = new DefineArgument();
65 arg.setName("TEST");
66 final Project project = new Project();
67 project.setProperty("cond", "false");
68 arg.setIf("cond");
69 try {
70 final boolean isActive = arg.isActive(project);
71 } catch (final BuildException ex) {
72 return;
73 }
74 fail("Should throw exception for suspicious value");
75 }
76
77 public void testIsActive5() {
78 final DefineArgument arg = new DefineArgument();
79 arg.setName("TEST");
80 final Project project = new Project();
81 project.setProperty("cond", "");
82 arg.setUnless("cond");
83 assertTrue(!arg.isActive(project));
84 }
85
86 public void testIsActive6() {
87 final DefineArgument arg = new DefineArgument();
88 arg.setName("TEST");
89 final Project project = new Project();
90 arg.setUnless("cond");
91 assertTrue(arg.isActive(project));
92 }
93
94 public void testIsActive7() {
95 final DefineArgument arg = new DefineArgument();
96 arg.setName("TEST");
97 final Project project = new Project();
98 project.setProperty("cond", "false");
99 arg.setUnless("cond");
100 try {
101 final boolean isActive = arg.isActive(project);
102 } catch (final BuildException ex) {
103 return;
104 }
105 fail("Should throw exception for suspicious value");
106 }
107
108 public void testIsActive8() {
109 final DefineArgument arg = new DefineArgument();
110 arg.setName("TEST");
111 final Project project = new Project();
112 project.setProperty("cond", "");
113 arg.setIf("cond");
114 arg.setUnless("cond");
115 assertTrue(!arg.isActive(project));
116 }
117
118 public void testMerge() {
119 final UndefineArgument[] base = new UndefineArgument[2];
120 final UndefineArgument[] specific = new UndefineArgument[2];
121 base[0] = new DefineArgument();
122 base[0].setName("foo");
123 base[1] = new UndefineArgument();
124 base[1].setName("hello");
125 specific[0] = new DefineArgument();
126 specific[0].setName("hello");
127 specific[1] = new UndefineArgument();
128 specific[1].setName("world");
129 final UndefineArgument[] merged = UndefineArgument.merge(base, specific);
130 assertEquals(3, merged.length);
131 assertEquals("foo", merged[0].getName());
132 assertEquals(true, merged[0].isDefine());
133 assertEquals("hello", merged[1].getName());
134 assertEquals(true, merged[1].isDefine());
135 assertEquals("world", merged[2].getName());
136 assertEquals(false, merged[2].isDefine());
137 }
138 }