forked from akrotov-education/practice-autumn-2019
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTask26Test.java
123 lines (110 loc) · 4.72 KB
/
Task26Test.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package lesson02.part02;
import org.junit.*;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import util.SystemInGatewayUtil;
import util.SystemOutGatewayUtil;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@RunWith(JUnit4.class)
public class Task26Test {
private static String fileName = "./src/main/java/lesson02/part02/Task26.java";
@Before
public void setUp() throws Exception {
SystemOutGatewayUtil.setCustomOut();
}
@After
public void tearDown() throws Exception {
SystemOutGatewayUtil.setOriginalOut();
SystemInGatewayUtil.setOriginalIn();
SystemOutGatewayUtil.clearOutput();
}
@Test
public void task26ifPrintWasUsed() {
boolean isPrintUsed = false;
try (Stream<String> stream = Files.lines(Paths.get(fileName))) {
List<String> collect = stream.collect(Collectors.toList());
for (String s : collect) {
if (s.contains("System.out.println()") || s.contains("System.out.print()")) {
isPrintUsed = true;
break;
}
}
Assert.assertTrue("Программа должна содержать консольный вывод.",
isPrintUsed);
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void task26ifKeyboardInput() {
boolean isInputExist = false;
try (Stream<String> stream = Files.lines(Paths.get(fileName))) {
List<String> collect = stream.collect(Collectors.toList());
for (String s : collect) {
if (s.contains("nextInt()") || s.contains("nextLine()") || s.contains("readLine()")) {
isInputExist = true;
break;
}
}
Assert.assertTrue("Программа должна получать числа с клавиатуры",isInputExist);
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void task26isNegativeEven() throws Exception {
SystemInGatewayUtil.provideInput("-10\n");
Task26.main(null);
ByteArrayOutputStream stream = SystemOutGatewayUtil.getOutputArray();
String result = stream.toString();
Assert.assertEquals("Если число отрицательное и четное, вывести \"отрицательное четное число\".",
"отрицательное четное число\r\n",result);
stream.reset();
}
@Test
public void task26isNegativeOdd() throws Exception {
SystemInGatewayUtil.provideInput("-9\n");
Task26.main(null);
ByteArrayOutputStream stream = SystemOutGatewayUtil.getOutputArray();
String result = stream.toString();
Assert.assertEquals("Если число отрицательное и нечетное, вывести \"отрицательное нечетное число\".",
"отрицательное нечетное число\r\n",result);
stream.reset();
}
@Test
public void task26isZero() throws Exception {
SystemInGatewayUtil.provideInput("0\n");
Task26.main(null);
ByteArrayOutputStream stream = SystemOutGatewayUtil.getOutputArray();
String result = stream.toString();
Assert.assertEquals("Если число равно 0, вывести \"ноль\".",
"ноль\r\n",result);
stream.reset();
}
@Test
public void task26isPositiveEven() throws Exception {
SystemInGatewayUtil.provideInput("10\n");
Task26.main(null);
ByteArrayOutputStream stream = SystemOutGatewayUtil.getOutputArray();
String result = stream.toString();
Assert.assertEquals("Если число положительное и четное, вывести \"положительное четное число\".",
"положительное четное число\r\n",result);
stream.reset();
}
@Test
public void task26isPositiveOdd() throws Exception {
SystemInGatewayUtil.provideInput("11\n");
Task26.main(null);
ByteArrayOutputStream stream = SystemOutGatewayUtil.getOutputArray();
String result = stream.toString();
Assert.assertEquals("Если число положительное и нечетное, вывести \"положительное нечетное число\".",
"положительное нечетное число\r\n",result);
stream.reset();
}
}