From 9be95b321b5db314904fecbc21a5280c8b97e28d Mon Sep 17 00:00:00 2001 From: Calvin Date: Sun, 8 Apr 2012 15:25:08 +0800 Subject: [PATCH] =?UTF-8?q?#29=20Junit=20Rule=E5=A4=AA=E9=AB=98=E7=BA=A7?= =?UTF-8?q?=E4=BA=86,=E6=8D=A2=E4=BA=86=E4=B8=80=E4=B8=AASpring=E9=87=8C?= =?UTF-8?q?=E7=9A=84=E5=88=9D=E5=A7=8B=E5=8C=96Bean?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/applicationContext.xml | 5 +++ .../miniservice/dao/AccountDaoTest.java | 6 ---- .../miniservice/data/SampleDataRule.java | 33 ------------------- .../src/main/resources/applicationContext.xml | 5 +++ .../examples/miniweb/dao/JpaMappingTest.java | 7 ---- .../miniweb/dao/account/GroupDaoTest.java | 6 ---- .../miniweb/dao/account/UserDaoTest.java | 6 ---- .../examples/miniweb/data/SampleDataRule.java | 33 ------------------- .../src/main/resources/applicationContext.xml | 5 +++ .../showcase/data/SampleDataRule.java | 33 ------------------- .../showcase/schedule/JdkTimerJobTest.java | 7 ---- .../schedule/QuartzTimerClusterJobTest.java | 7 ---- .../test/data/DefaultDataInitializer.java | 26 +++++++++++++++ 13 files changed, 41 insertions(+), 138 deletions(-) delete mode 100644 examples/mini-service/src/test/java/org/springside/examples/miniservice/data/SampleDataRule.java delete mode 100644 examples/mini-web/src/test/java/org/springside/examples/miniweb/data/SampleDataRule.java delete mode 100644 examples/showcase/src/test/java/org/springside/examples/showcase/data/SampleDataRule.java create mode 100644 modules/core/src/main/java/org/springside/modules/test/data/DefaultDataInitializer.java diff --git a/examples/mini-service/src/main/resources/applicationContext.xml b/examples/mini-service/src/main/resources/applicationContext.xml index c17a2671..12344234 100644 --- a/examples/mini-service/src/main/resources/applicationContext.xml +++ b/examples/mini-service/src/main/resources/applicationContext.xml @@ -101,6 +101,11 @@ + + + + + diff --git a/examples/mini-service/src/test/java/org/springside/examples/miniservice/dao/AccountDaoTest.java b/examples/mini-service/src/test/java/org/springside/examples/miniservice/dao/AccountDaoTest.java index 58b8a6c0..36a72ab6 100644 --- a/examples/mini-service/src/test/java/org/springside/examples/miniservice/dao/AccountDaoTest.java +++ b/examples/mini-service/src/test/java/org/springside/examples/miniservice/dao/AccountDaoTest.java @@ -5,12 +5,10 @@ import static org.junit.Assert.*; import java.util.List; import java.util.Map; -import org.junit.Rule; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springside.examples.miniservice.data.AccountData; -import org.springside.examples.miniservice.data.SampleDataRule; import org.springside.examples.miniservice.entity.Department; import org.springside.examples.miniservice.entity.User; import org.springside.modules.test.spring.SpringTxTestCase; @@ -30,10 +28,6 @@ public class AccountDaoTest extends SpringTxTestCase { @Autowired private AccountDao accountDao; - @Rule - @Autowired - public SampleDataRule sampleDataRule; - @Test public void getDepartmentDetail() { Department department = accountDao.getDepartmentDetail(1L); diff --git a/examples/mini-service/src/test/java/org/springside/examples/miniservice/data/SampleDataRule.java b/examples/mini-service/src/test/java/org/springside/examples/miniservice/data/SampleDataRule.java deleted file mode 100644 index 5dc49e8c..00000000 --- a/examples/mini-service/src/test/java/org/springside/examples/miniservice/data/SampleDataRule.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.springside.examples.miniservice.data; - -import javax.sql.DataSource; - -import org.junit.rules.TestRule; -import org.junit.runner.Description; -import org.junit.runners.model.Statement; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springside.modules.test.data.Fixtures; - -@Component -public class SampleDataRule implements TestRule { - - public static boolean dataLoaded = false; - - @Autowired - public DataSource dataSource; - - @Override - public Statement apply(Statement base, Description description) { - if (!dataLoaded) { - try { - Fixtures.reloadData(dataSource, "/data/sample-data.xml"); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - dataLoaded = true; - } - return base; - } -} diff --git a/examples/mini-web/src/main/resources/applicationContext.xml b/examples/mini-web/src/main/resources/applicationContext.xml index 952a59e3..6723e1fe 100644 --- a/examples/mini-web/src/main/resources/applicationContext.xml +++ b/examples/mini-web/src/main/resources/applicationContext.xml @@ -116,6 +116,11 @@ + + + + + diff --git a/examples/mini-web/src/test/java/org/springside/examples/miniweb/dao/JpaMappingTest.java b/examples/mini-web/src/test/java/org/springside/examples/miniweb/dao/JpaMappingTest.java index a842c257..d6256f30 100644 --- a/examples/mini-web/src/test/java/org/springside/examples/miniweb/dao/JpaMappingTest.java +++ b/examples/mini-web/src/test/java/org/springside/examples/miniweb/dao/JpaMappingTest.java @@ -5,13 +5,10 @@ import javax.persistence.PersistenceContext; import javax.persistence.metamodel.EntityType; import javax.persistence.metamodel.Metamodel; -import org.junit.Rule; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; -import org.springside.examples.miniweb.data.SampleDataRule; import org.springside.modules.test.spring.SpringTxTestCase; @ContextConfiguration(locations = { "/applicationContext.xml" }) @@ -22,10 +19,6 @@ public class JpaMappingTest extends SpringTxTestCase { @PersistenceContext private EntityManager em; - @Rule - @Autowired - public SampleDataRule sampleDataRule; - @Test public void allClassMapping() throws Exception { Metamodel model = em.getEntityManagerFactory().getMetamodel(); diff --git a/examples/mini-web/src/test/java/org/springside/examples/miniweb/dao/account/GroupDaoTest.java b/examples/mini-web/src/test/java/org/springside/examples/miniweb/dao/account/GroupDaoTest.java index 9bf62c1f..3532c373 100644 --- a/examples/mini-web/src/test/java/org/springside/examples/miniweb/dao/account/GroupDaoTest.java +++ b/examples/mini-web/src/test/java/org/springside/examples/miniweb/dao/account/GroupDaoTest.java @@ -5,12 +5,10 @@ import static org.junit.Assert.*; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; -import org.junit.Rule; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springside.examples.miniweb.data.AccountData; -import org.springside.examples.miniweb.data.SampleDataRule; import org.springside.examples.miniweb.entity.account.Group; import org.springside.examples.miniweb.entity.account.User; import org.springside.modules.test.spring.SpringTxTestCase; @@ -32,10 +30,6 @@ public class GroupDaoTest extends SpringTxTestCase { @PersistenceContext private EntityManager em; - @Rule - @Autowired - public SampleDataRule sampleDataRule; - /** * 测试删除权限组时删除用户-权限组的中间表. * @throws Exception diff --git a/examples/mini-web/src/test/java/org/springside/examples/miniweb/dao/account/UserDaoTest.java b/examples/mini-web/src/test/java/org/springside/examples/miniweb/dao/account/UserDaoTest.java index 4398ea6e..d44ca965 100644 --- a/examples/mini-web/src/test/java/org/springside/examples/miniweb/dao/account/UserDaoTest.java +++ b/examples/mini-web/src/test/java/org/springside/examples/miniweb/dao/account/UserDaoTest.java @@ -5,12 +5,10 @@ import static org.junit.Assert.*; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; -import org.junit.Rule; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springside.examples.miniweb.data.AccountData; -import org.springside.examples.miniweb.data.SampleDataRule; import org.springside.examples.miniweb.entity.account.User; import org.springside.modules.test.spring.SpringTxTestCase; @@ -29,10 +27,6 @@ public class UserDaoTest extends SpringTxTestCase { @PersistenceContext private EntityManager em; - @Rule - @Autowired - public SampleDataRule sampleDataRule; - @Test //如果你需要真正插入数据库,将Rollback设为false //@Rollback(false) diff --git a/examples/mini-web/src/test/java/org/springside/examples/miniweb/data/SampleDataRule.java b/examples/mini-web/src/test/java/org/springside/examples/miniweb/data/SampleDataRule.java deleted file mode 100644 index f724ff88..00000000 --- a/examples/mini-web/src/test/java/org/springside/examples/miniweb/data/SampleDataRule.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.springside.examples.miniweb.data; - -import javax.sql.DataSource; - -import org.junit.rules.TestRule; -import org.junit.runner.Description; -import org.junit.runners.model.Statement; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springside.modules.test.data.Fixtures; - -@Component -public class SampleDataRule implements TestRule { - - public static boolean dataLoaded = false; - - @Autowired - public DataSource dataSource; - - @Override - public Statement apply(Statement base, Description description) { - if (!dataLoaded) { - try { - Fixtures.reloadData(dataSource, "/data/sample-data.xml"); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - dataLoaded = true; - } - return base; - } -} diff --git a/examples/showcase/src/main/resources/applicationContext.xml b/examples/showcase/src/main/resources/applicationContext.xml index e04af422..85e9c1b1 100644 --- a/examples/showcase/src/main/resources/applicationContext.xml +++ b/examples/showcase/src/main/resources/applicationContext.xml @@ -138,6 +138,11 @@ + + + + + diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/data/SampleDataRule.java b/examples/showcase/src/test/java/org/springside/examples/showcase/data/SampleDataRule.java deleted file mode 100644 index 2b621349..00000000 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/data/SampleDataRule.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.springside.examples.showcase.data; - -import javax.sql.DataSource; - -import org.junit.rules.TestRule; -import org.junit.runner.Description; -import org.junit.runners.model.Statement; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springside.modules.test.data.Fixtures; - -@Component -public class SampleDataRule implements TestRule { - - public static boolean dataLoaded = false; - - @Autowired - public DataSource dataSource; - - @Override - public Statement apply(Statement base, Description description) { - if (!dataLoaded) { - try { - Fixtures.reloadData(dataSource, "/data/sample-data.xml"); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - dataLoaded = true; - } - return base; - } -} diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/schedule/JdkTimerJobTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/schedule/JdkTimerJobTest.java index ceebe3f6..2137b5e9 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/schedule/JdkTimerJobTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/schedule/JdkTimerJobTest.java @@ -3,13 +3,10 @@ package org.springside.examples.showcase.schedule; import static org.junit.Assert.*; import org.junit.Ignore; -import org.junit.Rule; import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.transaction.TransactionConfiguration; -import org.springside.examples.showcase.data.SampleDataRule; import org.springside.modules.log.MockLog4jAppender; import org.springside.modules.test.spring.SpringTxTestCase; import org.springside.modules.utils.Threads; @@ -20,10 +17,6 @@ import org.springside.modules.utils.Threads; @TransactionConfiguration(transactionManager = "defaultTransactionManager") public class JdkTimerJobTest extends SpringTxTestCase { - @Rule - @Autowired - public SampleDataRule sampleDataRule; - @Test public void scheduleJob() throws Exception { diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/schedule/QuartzTimerClusterJobTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/schedule/QuartzTimerClusterJobTest.java index 98a177c9..489070a9 100644 --- a/examples/showcase/src/test/java/org/springside/examples/showcase/schedule/QuartzTimerClusterJobTest.java +++ b/examples/showcase/src/test/java/org/springside/examples/showcase/schedule/QuartzTimerClusterJobTest.java @@ -3,13 +3,10 @@ package org.springside.examples.showcase.schedule; import static org.junit.Assert.*; import org.junit.Ignore; -import org.junit.Rule; import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.transaction.TransactionConfiguration; -import org.springside.examples.showcase.data.SampleDataRule; import org.springside.modules.log.MockLog4jAppender; import org.springside.modules.test.spring.SpringTxTestCase; import org.springside.modules.utils.Threads; @@ -25,10 +22,6 @@ import org.springside.modules.utils.Threads; @TransactionConfiguration(transactionManager = "defaultTransactionManager") public class QuartzTimerClusterJobTest extends SpringTxTestCase { - @Rule - @Autowired - public SampleDataRule sampleDataRule; - @Test public void scheduleJob() throws Exception { diff --git a/modules/core/src/main/java/org/springside/modules/test/data/DefaultDataInitializer.java b/modules/core/src/main/java/org/springside/modules/test/data/DefaultDataInitializer.java new file mode 100644 index 00000000..5f2b7568 --- /dev/null +++ b/modules/core/src/main/java/org/springside/modules/test/data/DefaultDataInitializer.java @@ -0,0 +1,26 @@ +package org.springside.modules.test.data; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.InitializingBean; + +public class DefaultDataInitializer implements InitializingBean { + + private DataSource dataSource; + + private String defaultDataFile; + + public void setDataSource(DataSource dataSource) { + this.dataSource = dataSource; + } + + public void setDefaultDataFile(String defaultDataFile) { + this.defaultDataFile = defaultDataFile; + } + + @Override + public void afterPropertiesSet() throws Exception { + Fixtures.reloadData(dataSource, defaultDataFile); + } + +}