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 }
49
50 @Test
51 public void optimizationParameter() {
52 assertFalse(newTestSetOptimization(false).isParallelOptimization());
53 }
54
55 @Test
56 public void timeoutParameters() {
57 JUnitCoreParameters parameters = newTestSetTimeouts(5.5d, 11.1d);
58 assertThat(parameters.getParallelTestsTimeoutInSeconds(), is(5.5d));
59 assertThat(parameters.getParallelTestsTimeoutForcedInSeconds(), is(11.1d));
60 }
61
62 @Test
63 public void isParallelMethod() {
64 assertFalse(newTestSetClasses().isParallelMethods());
65 assertTrue(newTestSetMethods().isParallelMethods());
66 assertTrue(newTestSetBoth().isParallelMethods());
67 }
68
69 @Test
70 public void isParallelClasses() {
71 assertTrue(newTestSetClasses().isParallelClasses());
72 assertFalse(newTestSetMethods().isParallelClasses());
73 assertTrue(newTestSetBoth().isParallelClasses());
74 }
75
76 @Test
77 public void isParallelBoth() {
78 assertFalse(isParallelMethodsAndClasses(newTestSetClasses()));
79 assertFalse(isParallelMethodsAndClasses(newTestSetMethods()));
80 assertTrue(isParallelMethodsAndClasses(newTestSetBoth()));
81 }
82
83 @Test
84 public void isPerCoreThreadCount() {
85 assertFalse(newTestSetClasses().isPerCoreThreadCount());
86 assertFalse(newTestSetMethods().isPerCoreThreadCount());
87 assertTrue(newTestSetBoth().isPerCoreThreadCount());
88 }
89
90 @Test
91 public void getThreadCount() {
92 assertFalse(newTestSetClasses().isPerCoreThreadCount());
93 assertFalse(newTestSetMethods().isPerCoreThreadCount());
94 assertTrue(newTestSetBoth().isPerCoreThreadCount());
95 }
96
97 @Test
98 public void isUseUnlimitedThreads() {
99 assertFalse(newTestSetClasses().isUseUnlimitedThreads());
100 assertTrue(newTestSetMethods().isUseUnlimitedThreads());
101 assertFalse(newTestSetBoth().isUseUnlimitedThreads());
102 }
103
104 @Test
105 public void isNoThreading() {
106 assertFalse(newTestSetClasses().isNoThreading());
107 assertFalse(newTestSetMethods().isNoThreading());
108 assertFalse(newTestSetBoth().isNoThreading());
109 }
110
111 @Test
112 public void isAnyParallelismSelected() {
113 assertTrue(newTestSetClasses().isParallelismSelected());
114 assertTrue(newTestSetMethods().isParallelismSelected());
115 assertTrue(newTestSetBoth().isParallelismSelected());
116 }
117
118 private Map<String, String> newDefaultProperties() {
119 return new HashMap<>();
120 }
121
122 private Map<String, String> newPropertiesClasses() {
123 Map<String, String> props = new HashMap<>();
124 props.put(JUnitCoreParameters.PARALLEL_KEY, "classes");
125 props.put(JUnitCoreParameters.PERCORETHREADCOUNT_KEY, "false");
126 props.put(JUnitCoreParameters.THREADCOUNT_KEY, "2");
127 props.put(JUnitCoreParameters.USEUNLIMITEDTHREADS_KEY, "false");
128 return props;
129 }
130
131 private Map<String, String> newPropertiesMethods() {
132 Map<String, String> props = new HashMap<>();
133 props.put(JUnitCoreParameters.PARALLEL_KEY, "methods");
134 props.put(JUnitCoreParameters.PERCORETHREADCOUNT_KEY, "false");
135 props.put(JUnitCoreParameters.THREADCOUNT_KEY, "2");
136 props.put(JUnitCoreParameters.USEUNLIMITEDTHREADS_KEY, "true");
137 return props;
138 }
139
140 private Map<String, String> newPropertiesBoth() {
141 Map<String, String> props = new HashMap<>();
142 props.put(JUnitCoreParameters.PARALLEL_KEY, "both");
143 props.put(JUnitCoreParameters.PERCORETHREADCOUNT_KEY, "true");
144 props.put(JUnitCoreParameters.THREADCOUNT_KEY, "7");
145 props.put(JUnitCoreParameters.USEUNLIMITEDTHREADS_KEY, "false");
146 return props;
147 }
148
149 private Map<String, String> newPropertiesTimeouts(double timeout, double forcedTimeout) {
150 Map<String, String> props = new HashMap<>();
151 props.put(JUnitCoreParameters.PARALLEL_TIMEOUT_KEY, Double.toString(timeout));
152 props.put(JUnitCoreParameters.PARALLEL_TIMEOUTFORCED_KEY, Double.toString(forcedTimeout));
153 return props;
154 }
155
156 private Map<String, String> newPropertiesOptimization(boolean optimize) {
157 Map<String, String> props = new HashMap<>();
158 props.put(JUnitCoreParameters.PARALLEL_OPTIMIZE_KEY, Boolean.toString(optimize));
159 return props;
160 }
161
162 private JUnitCoreParameters newTestSetDefault() {
163 return new JUnitCoreParameters(newDefaultProperties());
164 }
165
166 private JUnitCoreParameters newTestSetBoth() {
167 return new JUnitCoreParameters(newPropertiesBoth());
168 }
169
170 private JUnitCoreParameters newTestSetClasses() {
171 return new JUnitCoreParameters(newPropertiesClasses());
172 }
173
174 private JUnitCoreParameters newTestSetMethods() {
175 return new JUnitCoreParameters(newPropertiesMethods());
176 }
177
178 private JUnitCoreParameters newTestSetOptimization(boolean optimize) {
179 return new JUnitCoreParameters(newPropertiesOptimization(optimize));
180 }
181
182 private JUnitCoreParameters newTestSetTimeouts(double timeout, double forcedTimeout) {
183 return new JUnitCoreParameters(newPropertiesTimeouts(timeout, forcedTimeout));
184 }
185
186 private boolean isParallelMethodsAndClasses(JUnitCoreParameters jUnitCoreParameters) {
187 return jUnitCoreParameters.isParallelMethods() && jUnitCoreParameters.isParallelClasses();
188 }
189 }