|
24 | 24 | import javax.sql.DataSource;
|
25 | 25 |
|
26 | 26 | import junit.framework.TestCase;
|
27 |
| -import org.easymock.MockControl; |
28 | 27 |
|
| 28 | +import org.easymock.MockControl; |
29 | 29 | import org.springframework.core.io.ClassPathResource;
|
30 | 30 | import org.springframework.core.io.Resource;
|
31 | 31 |
|
| 32 | +import static org.hamcrest.CoreMatchers.*; |
| 33 | +import static org.junit.Assert.*; |
| 34 | + |
32 | 35 | /**
|
33 | 36 | * Tests for SQLErrorCodes loading.
|
34 | 37 | *
|
@@ -64,6 +67,40 @@ private void assertIsOracle(SQLErrorCodes sec) {
|
64 | 67 | assertFalse(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "9xx42") >= 0);
|
65 | 68 | }
|
66 | 69 |
|
| 70 | + private void assertIsSQLServer(SQLErrorCodes sec) { |
| 71 | + assertThat(sec.getDatabaseProductName(), equalTo("Microsoft SQL Server")); |
| 72 | + |
| 73 | + assertTrue(sec.getBadSqlGrammarCodes().length > 0); |
| 74 | + |
| 75 | + assertTrue(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "156") >= 0); |
| 76 | + assertTrue(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "170") >= 0); |
| 77 | + assertTrue(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "207") >= 0); |
| 78 | + assertTrue(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "208") >= 0); |
| 79 | + assertTrue(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "209") >= 0); |
| 80 | + assertFalse(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "9xx42") >= 0); |
| 81 | + |
| 82 | + assertTrue(sec.getPermissionDeniedCodes().length > 0); |
| 83 | + assertTrue(Arrays.binarySearch(sec.getPermissionDeniedCodes(), "229") >= 0); |
| 84 | + |
| 85 | + assertTrue(sec.getDuplicateKeyCodes().length > 0); |
| 86 | + assertTrue(Arrays.binarySearch(sec.getDuplicateKeyCodes(), "2601") >= 0); |
| 87 | + assertTrue(Arrays.binarySearch(sec.getDuplicateKeyCodes(), "2627") >= 0); |
| 88 | + |
| 89 | + assertTrue(sec.getDataIntegrityViolationCodes().length > 0); |
| 90 | + assertTrue(Arrays.binarySearch(sec.getDataIntegrityViolationCodes(), "544") >= 0); |
| 91 | + assertTrue(Arrays.binarySearch(sec.getDataIntegrityViolationCodes(), "8114") >= 0); |
| 92 | + assertTrue(Arrays.binarySearch(sec.getDataIntegrityViolationCodes(), "8115") >= 0); |
| 93 | + |
| 94 | + assertTrue(sec.getDataAccessResourceFailureCodes().length > 0); |
| 95 | + assertTrue(Arrays.binarySearch(sec.getDataAccessResourceFailureCodes(), "4060") >= 0); |
| 96 | + |
| 97 | + assertTrue(sec.getCannotAcquireLockCodes().length > 0); |
| 98 | + assertTrue(Arrays.binarySearch(sec.getCannotAcquireLockCodes(), "1222") >= 0); |
| 99 | + |
| 100 | + assertTrue(sec.getDeadlockLoserCodes().length > 0); |
| 101 | + assertTrue(Arrays.binarySearch(sec.getDeadlockLoserCodes(), "1205") >= 0); |
| 102 | + } |
| 103 | + |
67 | 104 | private void assertIsHsql(SQLErrorCodes sec) {
|
68 | 105 | assertTrue(sec.getBadSqlGrammarCodes().length > 0);
|
69 | 106 | assertTrue(sec.getDataIntegrityViolationCodes().length > 0);
|
@@ -252,6 +289,11 @@ private SQLErrorCodes getErrorCodesFromDataSource(String productName, SQLErrorCo
|
252 | 289 | return sec;
|
253 | 290 | }
|
254 | 291 |
|
| 292 | + public void testSQLServerRecognizedFromMetadata() throws Exception { |
| 293 | + SQLErrorCodes sec = getErrorCodesFromDataSource("MS-SQL", null); |
| 294 | + assertIsSQLServer(sec); |
| 295 | + } |
| 296 | + |
255 | 297 | public void testOracleRecognizedFromMetadata() throws Exception {
|
256 | 298 | SQLErrorCodes sec = getErrorCodesFromDataSource("Oracle", null);
|
257 | 299 | assertIsOracle(sec);
|
|
0 commit comments