Skip to content

Commit 40c8400

Browse files
committed
7_01_HW6_fix_tests
1 parent 43220fb commit 40c8400

File tree

9 files changed

+29
-18
lines changed

9 files changed

+29
-18
lines changed

src/test/java/ru/javawebinar/topjava/SpringMain.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
public class SpringMain {
1818
public static void main(String[] args) {
1919
// java 7 automatic resource management (ARM)
20-
try (ConfigurableApplicationContext appCtx = new ClassPathXmlApplicationContext("spring/spring-app.xml", "spring/inmemory.xml")) {
20+
try (ConfigurableApplicationContext appCtx = new ClassPathXmlApplicationContext("spring/inmemory.xml")) {
2121
System.out.println("Bean definition names: " + Arrays.toString(appCtx.getBeanDefinitionNames()));
2222
AdminRestController adminUserController = appCtx.getBean(AdminRestController.class);
2323
adminUserController.create(new User(null, "userName", "email@mail.ru", "password", Role.ADMIN));

src/test/java/ru/javawebinar/topjava/service/AbstractMealServiceTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package ru.javawebinar.topjava.service;
22

33
import org.junit.Assert;
4+
import org.junit.Assume;
45
import org.junit.Test;
56
import org.springframework.beans.factory.annotation.Autowired;
67
import org.springframework.dao.DataAccessException;
@@ -104,6 +105,7 @@ public void getBetweenWithNullDates() {
104105

105106
@Test
106107
public void createWithException() throws Exception {
108+
Assume.assumeTrue("Validation not supported (JPA only)", isJpaBased());
107109
validateRootCause(ConstraintViolationException.class, () -> service.create(new Meal(null, of(2015, Month.JUNE, 1, 18, 0), " ", 300), USER_ID));
108110
validateRootCause(ConstraintViolationException.class, () -> service.create(new Meal(null, null, "Description", 300), USER_ID));
109111
validateRootCause(ConstraintViolationException.class, () -> service.create(new Meal(null, of(2015, Month.JUNE, 1, 18, 0), "Description", 9), USER_ID));

src/test/java/ru/javawebinar/topjava/service/AbstractServiceTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,15 @@
55
import org.junit.rules.ExternalResource;
66
import org.junit.rules.Stopwatch;
77
import org.junit.runner.RunWith;
8+
import org.springframework.beans.factory.annotation.Autowired;
9+
import org.springframework.core.env.Environment;
810
import org.springframework.test.context.ActiveProfiles;
911
import org.springframework.test.context.ContextConfiguration;
1012
import org.springframework.test.context.jdbc.Sql;
1113
import org.springframework.test.context.jdbc.SqlConfig;
1214
import org.springframework.test.context.junit4.SpringRunner;
1315
import ru.javawebinar.topjava.ActiveDbProfileResolver;
16+
import ru.javawebinar.topjava.Profiles;
1417
import ru.javawebinar.topjava.TimingRules;
1518

1619
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
@@ -27,9 +30,17 @@ public abstract class AbstractServiceTest {
2730
@ClassRule
2831
public static ExternalResource summary = TimingRules.SUMMARY;
2932

33+
@Autowired
34+
private Environment env;
35+
3036
@Rule
3137
public Stopwatch stopwatch = TimingRules.STOPWATCH;
3238

39+
public boolean isJpaBased() {
40+
// return Arrays.stream(env.getActiveProfiles()).noneMatch(Profiles.JDBC::equals);
41+
return env.acceptsProfiles(org.springframework.core.env.Profiles.of(Profiles.JPA, Profiles.DATAJPA));
42+
}
43+
3344
// Check root cause with AssertJ: https://github.com/junit-team/junit-framework/issues/2129#issuecomment-565712630
3445
protected <T extends Throwable> void validateRootCause(Class<T> rootExceptionClass, Runnable runnable) {
3546
assertThatExceptionOfType(Throwable.class)

src/test/java/ru/javawebinar/topjava/service/AbstractUserServiceTest.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,22 @@
11
package ru.javawebinar.topjava.service;
22

3+
import org.junit.Assume;
34
import org.junit.Before;
45
import org.junit.Test;
56
import org.springframework.beans.factory.annotation.Autowired;
67
import org.springframework.cache.CacheManager;
8+
import org.springframework.context.annotation.Lazy;
79
import org.springframework.dao.DataAccessException;
810
import ru.javawebinar.topjava.UserTestData;
911
import ru.javawebinar.topjava.model.Role;
1012
import ru.javawebinar.topjava.model.User;
13+
import ru.javawebinar.topjava.repository.JpaUtil;
1114
import ru.javawebinar.topjava.util.exception.NotFoundException;
1215

1316
import javax.validation.ConstraintViolationException;
1417
import java.util.Date;
1518
import java.util.List;
1619
import java.util.Set;
17-
import ru.javawebinar.topjava.repository.JpaUtil;
1820

1921
import static org.junit.Assert.assertThrows;
2022
import static ru.javawebinar.topjava.UserTestData.*;
@@ -28,12 +30,15 @@ public abstract class AbstractUserServiceTest extends AbstractServiceTest {
2830
private CacheManager cacheManager;
2931

3032
@Autowired
33+
@Lazy
3134
protected JpaUtil jpaUtil;
3235

3336
@Before
3437
public void setup() {
3538
cacheManager.getCache("users").clear();
36-
jpaUtil.clear2ndLevelHibernateCache();
39+
if (isJpaBased()) {
40+
jpaUtil.clear2ndLevelHibernateCache();
41+
}
3742
}
3843

3944
@Test
@@ -95,6 +100,7 @@ public void getAll() {
95100

96101
@Test
97102
public void createWithException() throws Exception {
103+
Assume.assumeTrue("Validation not supported (JPA only)", isJpaBased());
98104
validateRootCause(ConstraintViolationException.class, () -> service.create(new User(null, " ", "mail@yandex.ru", "password", Role.USER)));
99105
validateRootCause(ConstraintViolationException.class, () -> service.create(new User(null, "User", " ", "password", Role.USER)));
100106
validateRootCause(ConstraintViolationException.class, () -> service.create(new User(null, "User", "mail@yandex.ru", " ", Role.USER)));
Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,10 @@
11
package ru.javawebinar.topjava.service.jdbc;
22

3-
import org.junit.Ignore;
4-
import org.junit.Test;
53
import org.springframework.test.context.ActiveProfiles;
64
import ru.javawebinar.topjava.service.AbstractMealServiceTest;
75

86
import static ru.javawebinar.topjava.Profiles.JDBC;
97

108
@ActiveProfiles(JDBC)
119
public class JdbcMealServiceTest extends AbstractMealServiceTest {
12-
@Override
13-
@Ignore
14-
@Test
15-
public void createWithException() throws Exception {
16-
}
1710
}
Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
package ru.javawebinar.topjava.service.jdbc;
22

3-
import org.junit.Ignore;
43
import org.springframework.test.context.ActiveProfiles;
54
import ru.javawebinar.topjava.service.AbstractUserServiceTest;
65

76
import static ru.javawebinar.topjava.Profiles.JDBC;
87

98
@ActiveProfiles(JDBC)
10-
@Ignore
119
public class JdbcUserServiceTest extends AbstractUserServiceTest {
1210
}

src/test/java/ru/javawebinar/topjava/web/user/InMemoryAdminRestControllerSpringTest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import org.junit.Assert;
44
import org.junit.Before;
5-
import org.junit.Ignore;
65
import org.junit.Test;
76
import org.junit.runner.RunWith;
87
import org.springframework.beans.factory.annotation.Autowired;
@@ -14,9 +13,8 @@
1413
import static ru.javawebinar.topjava.UserTestData.NOT_FOUND;
1514
import static ru.javawebinar.topjava.UserTestData.USER_ID;
1615

17-
@ContextConfiguration({"classpath:spring/spring-app.xml", "classpath:spring/inmemory.xml"})
16+
@ContextConfiguration({"classpath:spring/inmemory.xml"})
1817
@RunWith(SpringRunner.class)
19-
@Ignore
2018
public class InMemoryAdminRestControllerSpringTest {
2119

2220
@Autowired

src/test/java/ru/javawebinar/topjava/web/user/InMemoryAdminRestControllerTest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import static ru.javawebinar.topjava.UserTestData.NOT_FOUND;
1414
import static ru.javawebinar.topjava.UserTestData.USER_ID;
1515

16-
@Ignore
1716
public class InMemoryAdminRestControllerTest {
1817
private static final Logger log = LoggerFactory.getLogger(InMemoryAdminRestControllerTest.class);
1918

@@ -23,15 +22,17 @@ public class InMemoryAdminRestControllerTest {
2322

2423
@BeforeClass
2524
public static void beforeClass() {
26-
appCtx = new ClassPathXmlApplicationContext("spring/spring-app.xml", "spring/inmemory.xml");
25+
appCtx = new ClassPathXmlApplicationContext("spring/inmemory.xml");
2726
log.info("\n{}\n", Arrays.toString(appCtx.getBeanDefinitionNames()));
2827
controller = appCtx.getBean(AdminRestController.class);
2928
repository = appCtx.getBean(InMemoryUserRepository.class);
3029
}
3130

3231
@AfterClass
3332
public static void afterClass() {
34-
appCtx.close();
33+
// May cause during JUnit "Cache is not alive (STATUS_SHUTDOWN)" as JUnit share Spring context for speed
34+
// http://stackoverflow.com/questions/16281802/ehcache-shutdown-causing-an-exception-while-running-test-suite
35+
// appCtx.close();
3536
}
3637

3738
@Before

src/test/resources/spring/inmemory.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,6 @@
44
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
55

66
<context:component-scan base-package="ru.javawebinar.topjava.**.repository.inmemory"/>
7+
<context:component-scan base-package="ru.javawebinar.**.service"/>
8+
<context:component-scan base-package="ru.javawebinar.topjava.**.web"/>
79
</beans>

0 commit comments

Comments
 (0)