forked from JavaOPs/topjava
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path3_07_add_junit.patch
More file actions
185 lines (175 loc) · 7.01 KB
/
3_07_add_junit.patch
File metadata and controls
185 lines (175 loc) · 7.01 KB
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
Index: src/test/java/ru/javawebinar/topjava/web/InMemoryAdminRestControllerTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/test/java/ru/javawebinar/topjava/web/InMemoryAdminRestControllerTest.java (date 1531052086529)
+++ src/test/java/ru/javawebinar/topjava/web/InMemoryAdminRestControllerTest.java (date 1531052086529)
@@ -0,0 +1,52 @@
+package ru.javawebinar.topjava.web;
+
+import org.junit.*;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import ru.javawebinar.topjava.UserTestData;
+import ru.javawebinar.topjava.model.User;
+import ru.javawebinar.topjava.repository.mock.InMemoryUserRepositoryImpl;
+import ru.javawebinar.topjava.util.exception.NotFoundException;
+import ru.javawebinar.topjava.web.user.AdminRestController;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import static ru.javawebinar.topjava.UserTestData.ADMIN;
+
+public class InMemoryAdminRestControllerTest {
+ private static ConfigurableApplicationContext appCtx;
+ private static AdminRestController controller;
+
+ @BeforeClass
+ public static void beforeClass() {
+ appCtx = new ClassPathXmlApplicationContext("spring/spring-app.xml");
+ System.out.println("\n" + Arrays.toString(appCtx.getBeanDefinitionNames()) + "\n");
+ controller = appCtx.getBean(AdminRestController.class);
+ }
+
+ @AfterClass
+ public static void afterClass() {
+ appCtx.close();
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ // re-initialize
+ InMemoryUserRepositoryImpl repository = appCtx.getBean(InMemoryUserRepositoryImpl.class);
+ repository.init();
+ }
+
+ @Test
+ public void testDelete() throws Exception {
+ controller.delete(UserTestData.USER_ID);
+ Collection<User> users = controller.getAll();
+ Assert.assertEquals(users.size(), 1);
+ Assert.assertEquals(users.iterator().next(), ADMIN);
+ }
+
+ @Test(expected = NotFoundException.class)
+ public void testDeleteNotFound() throws Exception {
+ controller.delete(10);
+ }
+}
\ No newline at end of file
Index: src/test/java/ru/javawebinar/topjava/UserTestData.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/test/java/ru/javawebinar/topjava/UserTestData.java (date 1531052086544)
+++ src/test/java/ru/javawebinar/topjava/UserTestData.java (date 1531052086544)
@@ -0,0 +1,12 @@
+package ru.javawebinar.topjava;
+
+import ru.javawebinar.topjava.model.Role;
+import ru.javawebinar.topjava.model.User;
+
+public class UserTestData {
+ public static final int USER_ID = 1;
+ public static final int ADMIN_ID = 2;
+
+ public static final User USER = new User(USER_ID, "User", "user@yandex.ru", "password", Role.ROLE_USER);
+ public static final User ADMIN = new User(ADMIN_ID, "Admin", "admin@gmail.com", "admin", Role.ROLE_ADMIN);
+}
Index: src/main/java/ru/javawebinar/topjava/repository/mock/InMemoryUserRepositoryImpl.java
===================================================================
--- src/main/java/ru/javawebinar/topjava/repository/mock/InMemoryUserRepositoryImpl.java (date 1531052024000)
+++ src/test/java/ru/javawebinar/topjava/repository/mock/InMemoryUserRepositoryImpl.java (date 1531052086516)
@@ -1,6 +1,7 @@
package ru.javawebinar.topjava.repository.mock;
import org.springframework.stereotype.Repository;
+import ru.javawebinar.topjava.UserTestData;
import ru.javawebinar.topjava.model.User;
import ru.javawebinar.topjava.repository.UserRepository;
@@ -11,14 +12,20 @@
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
+import static ru.javawebinar.topjava.UserTestData.ADMIN;
+import static ru.javawebinar.topjava.UserTestData.USER;
+
@Repository
public class InMemoryUserRepositoryImpl implements UserRepository {
- public static final int USER_ID = 1;
- public static final int ADMIN_ID = 2;
-
private Map<Integer, User> repository = new ConcurrentHashMap<>();
- private AtomicInteger counter = new AtomicInteger(0);
+ private AtomicInteger counter = new AtomicInteger(100);
+
+ public void init() {
+ repository.clear();
+ repository.put(UserTestData.USER_ID, USER);
+ repository.put(UserTestData.ADMIN_ID, ADMIN);
+ }
@Override
public User save(User user) {
Index: pom.xml
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- pom.xml (date 1531052024000)
+++ pom.xml (date 1531052205398)
@@ -21,6 +21,9 @@
<!-- Logging -->
<logback.version>1.2.3</logback.version>
<slf4j.version>1.7.25</slf4j.version>
+
+ <!-- Tests -->
+ <junit.version>4.12</junit.version>
</properties>
<build>
@@ -36,6 +39,14 @@
<target>${java.version}</target>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.22.0</version>
+ <configuration>
+ <argLine>-Dfile.encoding=UTF-8</argLine>
+ </configuration>
+ </plugin>
</plugins>
</build>
@@ -75,6 +86,14 @@
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
+
+ <!--Test-->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junit.version}</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<profiles>
Index: src/main/java/ru/javawebinar/topjava/SpringMain.java
===================================================================
--- src/main/java/ru/javawebinar/topjava/SpringMain.java (date 1531052024000)
+++ src/test/java/ru/javawebinar/topjava/SpringMain.java (date 1531048128205)
@@ -1,0 +1,0 @@
Index: src/main/java/ru/javawebinar/topjava/repository/mock/InMemoryMealRepositoryImpl.java
===================================================================
--- src/main/java/ru/javawebinar/topjava/repository/mock/InMemoryMealRepositoryImpl.java (date 1531052024000)
+++ src/test/java/ru/javawebinar/topjava/repository/mock/InMemoryMealRepositoryImpl.java (date 1531052086499)
@@ -22,8 +22,8 @@
import java.util.function.Predicate;
import java.util.stream.Collectors;
-import static ru.javawebinar.topjava.repository.mock.InMemoryUserRepositoryImpl.ADMIN_ID;
-import static ru.javawebinar.topjava.repository.mock.InMemoryUserRepositoryImpl.USER_ID;
+import static ru.javawebinar.topjava.UserTestData.ADMIN_ID;
+import static ru.javawebinar.topjava.UserTestData.USER_ID;
@Repository
public class InMemoryMealRepositoryImpl implements MealRepository {