Polishing tests in spring-test
This commit is contained in:
@@ -16,6 +16,10 @@
|
||||
|
||||
package org.springframework.test.context.jdbc;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.junit.Test;
|
||||
@@ -56,21 +60,21 @@ public class MultipleDataSourcesAndTransactionManagersSqlScriptsTests {
|
||||
@Test
|
||||
@Sql(scripts = "data-add-dogbert.sql", dataSource = "dataSource1", transactionManager = "txMgr1")
|
||||
public void database1() {
|
||||
assertUsersExist(new JdbcTemplate(dataSource1), "Dilbert", "Dogbert");
|
||||
assertUsers(new JdbcTemplate(dataSource1), "Dilbert", "Dogbert");
|
||||
}
|
||||
|
||||
@Test
|
||||
@Sql(scripts = "data-add-catbert.sql", dataSource = "dataSource2", transactionManager = "txMgr2")
|
||||
public void database2() {
|
||||
assertUsersExist(new JdbcTemplate(dataSource2), "Dilbert", "Catbert");
|
||||
assertUsers(new JdbcTemplate(dataSource2), "Dilbert", "Catbert");
|
||||
}
|
||||
|
||||
private void assertUsersExist(JdbcTemplate jdbcTemplate, String... users) {
|
||||
String query = "select count(name) from user where name =?";
|
||||
for (String user : users) {
|
||||
assertTrue("User [" + user + "] must exist.",
|
||||
jdbcTemplate.queryForObject(query, Integer.class, user).intValue() == 1);
|
||||
}
|
||||
private void assertUsers(JdbcTemplate jdbcTemplate, String... users) {
|
||||
List<String> expected = Arrays.asList(users);
|
||||
Collections.sort(expected);
|
||||
List<String> actual = jdbcTemplate.queryForList("select name from user", String.class);
|
||||
Collections.sort(actual);
|
||||
assertEquals("Users in database;", expected, actual);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -16,6 +16,10 @@
|
||||
|
||||
package org.springframework.test.context.jdbc;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.junit.Test;
|
||||
@@ -57,22 +61,22 @@ public class MultipleDataSourcesAndTransactionManagersTransactionalSqlScriptsTes
|
||||
@Transactional("txMgr1")
|
||||
@Sql(scripts = "data-add-dogbert.sql", dataSource = "dataSource1", transactionManager = "txMgr1")
|
||||
public void database1() {
|
||||
assertUsersExist(new JdbcTemplate(dataSource1), "Dilbert", "Dogbert");
|
||||
assertUsers(new JdbcTemplate(dataSource1), "Dilbert", "Dogbert");
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional("txMgr2")
|
||||
@Sql(scripts = "data-add-catbert.sql", dataSource = "dataSource2", transactionManager = "txMgr2")
|
||||
public void database2() {
|
||||
assertUsersExist(new JdbcTemplate(dataSource2), "Dilbert", "Catbert");
|
||||
assertUsers(new JdbcTemplate(dataSource2), "Dilbert", "Catbert");
|
||||
}
|
||||
|
||||
private void assertUsersExist(JdbcTemplate jdbcTemplate, String... users) {
|
||||
String query = "select count(name) from user where name =?";
|
||||
for (String user : users) {
|
||||
assertTrue("User [" + user + "] must exist.",
|
||||
jdbcTemplate.queryForObject(query, Integer.class, user).intValue() == 1);
|
||||
}
|
||||
private void assertUsers(JdbcTemplate jdbcTemplate, String... users) {
|
||||
List<String> expected = Arrays.asList(users);
|
||||
Collections.sort(expected);
|
||||
List<String> actual = jdbcTemplate.queryForList("select name from user", String.class);
|
||||
Collections.sort(actual);
|
||||
assertEquals("Users in database;", expected, actual);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -16,10 +16,9 @@
|
||||
|
||||
package org.springframework.test.context.testng.transaction.programmatic;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
@@ -45,8 +44,8 @@ import static org.junit.Assert.*;
|
||||
import static org.springframework.test.transaction.TransactionTestUtils.*;
|
||||
|
||||
/**
|
||||
* This class is a copy of {@link ProgrammaticTxMgmtTests} that has been modified
|
||||
* to run with TestNG.
|
||||
* This class is a copy of the JUnit-based {@link ProgrammaticTxMgmtTests} class
|
||||
* that has been modified to run with TestNG.
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @since 4.1
|
||||
@@ -54,12 +53,12 @@ import static org.springframework.test.transaction.TransactionTestUtils.*;
|
||||
@ContextConfiguration
|
||||
public class ProgrammaticTxMgmtTestNGTests extends AbstractTransactionalTestNGSpringContextTests {
|
||||
|
||||
private String testName;
|
||||
private String method;
|
||||
|
||||
|
||||
@Override
|
||||
public void run(IHookCallBack callBack, ITestResult testResult) {
|
||||
this.testName = testResult.getMethod().getMethodName();
|
||||
this.method = testResult.getMethod().getMethodName();
|
||||
super.run(callBack, testResult);
|
||||
}
|
||||
|
||||
@@ -71,20 +70,15 @@ public class ProgrammaticTxMgmtTestNGTests extends AbstractTransactionalTestNGSp
|
||||
|
||||
@AfterTransaction
|
||||
public void afterTransaction() {
|
||||
switch (testName) {
|
||||
case "commitTxAndStartNewTx": {
|
||||
assertUsers("Dogbert");
|
||||
break;
|
||||
}
|
||||
switch (method) {
|
||||
case "commitTxAndStartNewTx":
|
||||
case "commitTxButDoNotStartNewTx": {
|
||||
assertUsers("Dogbert");
|
||||
break;
|
||||
}
|
||||
case "rollbackTxAndStartNewTx": {
|
||||
assertUsers("Dilbert");
|
||||
break;
|
||||
}
|
||||
case "rollbackTxButDoNotStartNewTx": {
|
||||
case "rollbackTxAndStartNewTx":
|
||||
case "rollbackTxButDoNotStartNewTx":
|
||||
case "startTxWithExistingTransaction": {
|
||||
assertUsers("Dilbert");
|
||||
break;
|
||||
}
|
||||
@@ -92,12 +86,8 @@ public class ProgrammaticTxMgmtTestNGTests extends AbstractTransactionalTestNGSp
|
||||
assertUsers("Dilbert", "Dogbert");
|
||||
break;
|
||||
}
|
||||
case "startTxWithExistingTransaction": {
|
||||
assertUsers("Dilbert");
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
fail("missing 'after transaction' assertion for test method: " + testName);
|
||||
fail("missing 'after transaction' assertion for test method: " + method);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -258,12 +248,11 @@ public class ProgrammaticTxMgmtTestNGTests extends AbstractTransactionalTestNGSp
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
private void assertUsers(String... users) {
|
||||
List<Map<String, Object>> results = jdbcTemplate.queryForList("select name from user");
|
||||
List<String> names = new ArrayList<String>();
|
||||
for (Map<String, Object> map : results) {
|
||||
names.add((String) map.get("name"));
|
||||
}
|
||||
assertEquals(Arrays.asList(users), names);
|
||||
List<String> expected = Arrays.asList(users);
|
||||
Collections.sort(expected);
|
||||
List<String> actual = jdbcTemplate.queryForList("select name from user", String.class);
|
||||
Collections.sort(actual);
|
||||
assertEquals("Users in database;", expected, actual);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -16,10 +16,9 @@
|
||||
|
||||
package org.springframework.test.context.transaction.programmatic;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
@@ -44,8 +43,8 @@ import static org.junit.Assert.*;
|
||||
import static org.springframework.test.transaction.TransactionTestUtils.*;
|
||||
|
||||
/**
|
||||
* Integration tests that verify support for programmatic transaction management
|
||||
* within the <em>Spring TestContext Framework</em>.
|
||||
* JUnit-based integration tests that verify support for programmatic transaction
|
||||
* management within the <em>Spring TestContext Framework</em>.
|
||||
*
|
||||
* @author Sam Brannen
|
||||
* @since 4.1
|
||||
@@ -67,19 +66,14 @@ public class ProgrammaticTxMgmtTests extends AbstractTransactionalJUnit4SpringCo
|
||||
public void afterTransaction() {
|
||||
String method = testName.getMethodName();
|
||||
switch (method) {
|
||||
case "commitTxAndStartNewTx": {
|
||||
assertUsers("Dogbert");
|
||||
break;
|
||||
}
|
||||
case "commitTxAndStartNewTx":
|
||||
case "commitTxButDoNotStartNewTx": {
|
||||
assertUsers("Dogbert");
|
||||
break;
|
||||
}
|
||||
case "rollbackTxAndStartNewTx": {
|
||||
assertUsers("Dilbert");
|
||||
break;
|
||||
}
|
||||
case "rollbackTxButDoNotStartNewTx": {
|
||||
case "rollbackTxAndStartNewTx":
|
||||
case "rollbackTxButDoNotStartNewTx":
|
||||
case "startTxWithExistingTransaction": {
|
||||
assertUsers("Dilbert");
|
||||
break;
|
||||
}
|
||||
@@ -87,10 +81,6 @@ public class ProgrammaticTxMgmtTests extends AbstractTransactionalJUnit4SpringCo
|
||||
assertUsers("Dilbert", "Dogbert");
|
||||
break;
|
||||
}
|
||||
case "startTxWithExistingTransaction": {
|
||||
assertUsers("Dilbert");
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
fail("missing 'after transaction' assertion for test method: " + method);
|
||||
}
|
||||
@@ -253,12 +243,11 @@ public class ProgrammaticTxMgmtTests extends AbstractTransactionalJUnit4SpringCo
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
private void assertUsers(String... users) {
|
||||
List<Map<String, Object>> results = jdbcTemplate.queryForList("select name from user");
|
||||
List<String> names = new ArrayList<String>();
|
||||
for (Map<String, Object> map : results) {
|
||||
names.add((String) map.get("name"));
|
||||
}
|
||||
assertEquals(Arrays.asList(users), names);
|
||||
List<String> expected = Arrays.asList(users);
|
||||
Collections.sort(expected);
|
||||
List<String> actual = jdbcTemplate.queryForList("select name from user", String.class);
|
||||
Collections.sort(actual);
|
||||
assertEquals("Users in database;", expected, actual);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user