diff --git a/.gitignore b/.gitignore index 8e291432..17696729 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,9 @@ bin .DS_Store .idea *.iml +*.ipr +*.iws +*/*.iml +*/*.iws +*/*.ipr + diff --git a/spring-test-dbunit-sample/src/test/java/com/github/springtestdbunit/sample/service/PersonServiceTest.java b/spring-test-dbunit-sample/src/test/java/com/github/springtestdbunit/sample/service/PersonServiceTest.java index 71220e54..234c86ca 100644 --- a/spring-test-dbunit-sample/src/test/java/com/github/springtestdbunit/sample/service/PersonServiceTest.java +++ b/spring-test-dbunit-sample/src/test/java/com/github/springtestdbunit/sample/service/PersonServiceTest.java @@ -18,7 +18,7 @@ import com.github.springtestdbunit.sample.entity.Person; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration +@ContextConfiguration({"classpath:com/github/springtestdbunit/sample/service/applicationContext.xml"}) @TestExecutionListeners({ DependencyInjectionTestExecutionListener.class, DbUnitTestExecutionListener.class }) public class PersonServiceTest { diff --git a/spring-test-dbunit-sample/src/test/java/com/github/springtestdbunit/sample/service/XlsDataLoaderTest.java b/spring-test-dbunit-sample/src/test/java/com/github/springtestdbunit/sample/service/XlsDataLoaderTest.java new file mode 100644 index 00000000..0765a9ea --- /dev/null +++ b/spring-test-dbunit-sample/src/test/java/com/github/springtestdbunit/sample/service/XlsDataLoaderTest.java @@ -0,0 +1,37 @@ +package com.github.springtestdbunit.sample.service; + +import com.github.springtestdbunit.DbUnitTestExecutionListener; +import com.github.springtestdbunit.annotation.DatabaseSetup; +import com.github.springtestdbunit.annotation.DbUnitConfiguration; +import com.github.springtestdbunit.dataset.XlsDataSetLoader; +import com.github.springtestdbunit.sample.entity.Person; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; + +import java.util.List; + +import static org.junit.Assert.assertEquals; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration({"classpath:com/github/springtestdbunit/sample/service/applicationContext.xml"}) +@DbUnitConfiguration(dataSetLoader= XlsDataSetLoader.class) +@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class, DbUnitTestExecutionListener.class }) +public class XlsDataLoaderTest { + + @Autowired + private PersonService personService; + + @Test + @DatabaseSetup("sampleData.xls") + public void testFind() throws Exception { + List personList = this.personService.find("wang"); + assertEquals(1, personList.size()); + assertEquals("wu", personList.get(0).getLastName()); + } + +} diff --git a/spring-test-dbunit-sample/src/test/resources/com/github/springtestdbunit/sample/service/PersonServiceTest-context.xml b/spring-test-dbunit-sample/src/test/resources/com/github/springtestdbunit/sample/service/applicationContext.xml similarity index 100% rename from spring-test-dbunit-sample/src/test/resources/com/github/springtestdbunit/sample/service/PersonServiceTest-context.xml rename to spring-test-dbunit-sample/src/test/resources/com/github/springtestdbunit/sample/service/applicationContext.xml diff --git a/spring-test-dbunit-sample/src/test/resources/com/github/springtestdbunit/sample/service/sampleData.xls b/spring-test-dbunit-sample/src/test/resources/com/github/springtestdbunit/sample/service/sampleData.xls new file mode 100644 index 00000000..8fe26ad3 Binary files /dev/null and b/spring-test-dbunit-sample/src/test/resources/com/github/springtestdbunit/sample/service/sampleData.xls differ diff --git a/spring-test-dbunit/src/main/java/com/github/springtestdbunit/dataset/XlsDataSetLoader.java b/spring-test-dbunit/src/main/java/com/github/springtestdbunit/dataset/XlsDataSetLoader.java new file mode 100644 index 00000000..0389e170 --- /dev/null +++ b/spring-test-dbunit/src/main/java/com/github/springtestdbunit/dataset/XlsDataSetLoader.java @@ -0,0 +1,23 @@ +package com.github.springtestdbunit.dataset; + +import org.dbunit.dataset.IDataSet; +import org.dbunit.dataset.excel.XlsDataSet; +import org.springframework.core.io.Resource; + +import java.io.InputStream; + +/** + * Created by yangjianzhou on 17-11-18. + */ +public class XlsDataSetLoader extends AbstractDataSetLoader { + + @Override + protected IDataSet createDataSet(Resource resource) throws Exception { + InputStream inputStream = resource.getInputStream(); + try { + return new XlsDataSet(inputStream); + } finally { + inputStream.close(); + } + } +}