1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.surefire.junitcore;
20
21 import java.util.HashMap;
22 import java.util.Map;
23
24 import org.junit.Test;
25
26 import static org.hamcrest.core.Is.is;
27 import static org.junit.Assert.assertFalse;
28 import static org.junit.Assert.assertThat;
29 import static org.junit.Assert.assertTrue;
30
31
32
33
34 @SuppressWarnings("checkstyle:magicnumber")
35 public class JUnitCoreParametersTest {
36 @Test
37 public void defaultParameters() {
38 assertFalse(newTestSetDefault().isParallelismSelected());
39 assertTrue(newTestSetDefault().isPerCoreThreadCount());
40 assertThat(newTestSetDefault().getThreadCount(), is(0));
41 assertThat(newTestSetDefault().getThreadCountMethods(), is(0));
42 assertThat(newTestSetDefault().getThreadCountClasses(), is(0));
43 assertThat(newTestSetDefault().getThreadCountSuites(), is(0));
44 assertFalse(newTestSetDefault().isUseUnlimitedThreads());
45 assertThat(newTestSetDefault().getParallelTestsTimeoutInSeconds(), is(0d));
46 assertThat(newTestSetDefault().getParallelTestsTimeoutForcedInSeconds(), is(0d));
47 assertTrue(newTestSetDefault().isParallelOptimization());
48 assertTrue(newTestSetDefault().isEnableOutErrElements());
49 assertTrue(newTestSetDefault().isEnablePropertiesElement());
50 }
51
52 @Test
53 public void optimizationParameter() {
54 assertFalse(newTestSetOptimization(false).isParallelOptimization());
55 }
56
57 @Test
58 public void timeoutParameters() {
59 JUnitCoreParameters parameters = newTestSetTimeouts(5.5d, 11.1d);
60 assertThat(parameters.getParallelTestsTimeoutInSeconds(), is(5.5d));
61 assertThat(parameters.getParallelTestsTimeoutForcedInSeconds(), is(11.1d));
62 }
63
64 @Test
65 public void isParallelMethod() {
66 assertFalse(newTestSetClasses().isParallelMethods());
67 assertTrue(newTestSetMethods().isParallelMethods());
68 assertTrue(newTestSetBoth().isParallelMethods());
69 }
70
71 @Test
72 public void isParallelClasses() {
73 assertTrue(newTestSetClasses().isParallelClasses());
74 assertFalse(newTestSetMethods().isParallelClasses());
75 assertTrue(newTestSetBoth().isParallelClasses());
76 }
77
78 @Test
79 public void isParallelBoth() {
80 assertFalse(isParallelMethodsAndClasses(newTestSetClasses()));
81 assertFalse(isParallelMethodsAndClasses(newTestSetMethods()));
82 assertTrue(isParallelMethodsAndClasses(newTestSetBoth()));
83 }
84
85 @Test
86 public void isPerCoreThreadCount() {
87 assertFalse(newTestSetClasses().isPerCoreThreadCount());
88 assertFalse(newTestSetMethods().isPerCoreThreadCount());
89 assertTrue(newTestSetBoth().isPerCoreThreadCount());
90 }
91
92 @Test
93 public void getThreadCount() {
94 assertFalse(newTestSetClasses().isPerCoreThreadCount());
95 assertFalse(newTestSetMethods().isPerCoreThreadCount());
96 assertTrue(newTestSetBoth().isPerCoreThreadCount());
97 }
98
99 @Test
100 public void isUseUnlimitedThreads() {
101 assertFalse(newTestSetClasses().isUseUnlimitedThreads());
102 assertTrue(newTestSetMethods().isUseUnlimitedThreads());
103 assertFalse(newTestSetBoth().isUseUnlimitedThreads());
104 }
105
106 @Test
107 public void isNoThreading() {
108 assertFalse(newTestSetClasses().isNoThreading());
109 assertFalse(newTestSetMethods().isNoThreading());
110 assertFalse(newTestSetBoth().isNoThreading());
111 }
112
113 @Test
114 public void isAnyParallelismSelected() {
115 assertTrue(newTestSetClasses().isParallelismSelected());
116 assertTrue(newTestSetMethods().isParallelismSelected());
117 assertTrue(newTestSetBoth().isParallelismSelected());
118 }
119
120 private Map<String, String> newDefaultProperties() {
121 return new HashMap<>();
122 }
123
124 private Map<String, String> newPropertiesClasses() {
125 Map<String, String> props = new HashMap<>();
126 props.put(JUnitCoreParameters.PARALLEL_KEY, "classes");
127 props.put(JUnitCoreParameters.PERCORETHREADCOUNT_KEY, "false");
128 props.put(JUnitCoreParameters.THREADCOUNT_KEY, "2");
129 props.put(JUnitCoreParameters.USEUNLIMITEDTHREADS_KEY, "false");
130 return props;
131 }
132
133 private Map<String, String> newPropertiesMethods() {
134 Map<String, String> props = new HashMap<>();
135 props.put(JUnitCoreParameters.PARALLEL_KEY, "methods");
136 props.put(JUnitCoreParameters.PERCORETHREADCOUNT_KEY, "false");
137 props.put(JUnitCoreParameters.THREADCOUNT_KEY, "2");
138 props.put(JUnitCoreParameters.USEUNLIMITEDTHREADS_KEY, "true");
139 return props;
140 }
141
142 private Map<String, String> newPropertiesBoth() {
143 Map<String, String> props = new HashMap<>();
144 props.put(JUnitCoreParameters.PARALLEL_KEY, "both");
145 props.put(JUnitCoreParameters.PERCORETHREADCOUNT_KEY, "true");
146 props.put(JUnitCoreParameters.THREADCOUNT_KEY, "7");
147 props.put(JUnitCoreParameters.USEUNLIMITEDTHREADS_KEY, "false");
148 return props;
149 }
150
151 private Map<String, String> newPropertiesTimeouts(double timeout, double forcedTimeout) {
152 Map<String, String> props = new HashMap<>();
153 props.put(JUnitCoreParameters.PARALLEL_TIMEOUT_KEY, Double.toString(timeout));
154 props.put(JUnitCoreParameters.PARALLEL_TIMEOUTFORCED_KEY, Double.toString(forcedTimeout));
155 return props;
156 }
157
158 private Map<String, String> newPropertiesOptimization(boolean optimize) {
159 Map<String, String> props = new HashMap<>();
160 props.put(JUnitCoreParameters.PARALLEL_OPTIMIZE_KEY, Boolean.toString(optimize));
161 return props;
162 }
163
164 private JUnitCoreParameters newTestSetDefault() {
165 return new JUnitCoreParameters(newDefaultProperties());
166 }
167
168 private JUnitCoreParameters newTestSetBoth() {
169 return new JUnitCoreParameters(newPropertiesBoth());
170 }
171
172 private JUnitCoreParameters newTestSetClasses() {
173 return new JUnitCoreParameters(newPropertiesClasses());
174 }
175
176 private JUnitCoreParameters newTestSetMethods() {
177 return new JUnitCoreParameters(newPropertiesMethods());
178 }
179
180 private JUnitCoreParameters newTestSetOptimization(boolean optimize) {
181 return new JUnitCoreParameters(newPropertiesOptimization(optimize));
182 }
183
184 private JUnitCoreParameters newTestSetTimeouts(double timeout, double forcedTimeout) {
185 return new JUnitCoreParameters(newPropertiesTimeouts(timeout, forcedTimeout));
186 }
187
188 private boolean isParallelMethodsAndClasses(JUnitCoreParameters jUnitCoreParameters) {
189 return jUnitCoreParameters.isParallelMethods() && jUnitCoreParameters.isParallelClasses();
190 }
191 }