View Javadoc

1   /*
2    * #%L
3    * Native ARchive plugin for Maven
4    * %%
5    * Copyright (C) 2002 - 2014 NAR Maven Plugin developers.
6    * %%
7    * Licensed under the Apache License, Version 2.0 (the "License");
8    * you may not use this file except in compliance with the License.
9    * You may obtain a copy of the License at
10   * 
11   * http://www.apache.org/licenses/LICENSE-2.0
12   * 
13   * Unless required by applicable law or agreed to in writing, software
14   * distributed under the License is distributed on an "AS IS" BASIS,
15   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   * See the License for the specific language governing permissions and
17   * limitations under the License.
18   * #L%
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   * Tests for the DefineArgument class
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 }