You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by km...@apache.org on 2013/06/10 19:57:23 UTC
svn commit: r1491542 - in
/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests:
master/messageLocale.out suites/i18nTest.runall
tests/i18n/UrlLocaleTest.java tests/i18n/messageLocale.sql
tests/i18n/messageLocale_app.properties
Author: kmarsden
Date: Mon Jun 10 17:57:23 2013
New Revision: 1491542
URL: http://svn.apache.org/r1491542
Log:
DERBY-6255 convert i18n/messageLocale.sql
Removed:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/messageLocale.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/i18n/messageLocale.sql
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/i18n/messageLocale_app.properties
Modified:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/i18nTest.runall
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/i18n/UrlLocaleTest.java
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/i18nTest.runall
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/i18nTest.runall?rev=1491542&r1=1491541&r2=1491542&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/i18nTest.runall (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/i18nTest.runall Mon Jun 10 17:57:23 2013
@@ -1,3 +1,2 @@
i18n/I18NImportExport.sql
-i18n/messageLocale.sql
i18n/iepnegativetests_ES.sql
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/i18n/UrlLocaleTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/i18n/UrlLocaleTest.java?rev=1491542&r1=1491541&r2=1491542&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/i18n/UrlLocaleTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/i18n/UrlLocaleTest.java Mon Jun 10 17:57:23 2013
@@ -24,6 +24,7 @@ import java.net.MalformedURLException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
+import java.sql.SQLWarning;
import java.sql.Statement;
import junit.framework.Test;
@@ -31,6 +32,7 @@ import junit.framework.TestSuite;
import org.apache.derbyTesting.junit.BaseJDBCTestCase;
import org.apache.derbyTesting.junit.CleanDatabaseTestSetup;
+import org.apache.derbyTesting.junit.LocaleTestSetup;
import org.apache.derbyTesting.junit.SupportFilesSetup;
import org.apache.derbyTesting.junit.TestConfiguration;
@@ -120,7 +122,7 @@ public class UrlLocaleTest extends BaseJ
//Connection without territory specified in territory attribute
String url = TestConfiguration.getCurrent().getJDBCUrl("../extinout/fail1");
url += ";create=true;territory=";
- testInvalidTerritoryFormat(url);
+ checkInvalidTerritoryFormat(url);
//- database will not have been created so this connection will fail
url = TestConfiguration.getCurrent().getJDBCUrl("../extinout/fail1");
try {
@@ -130,13 +132,133 @@ public class UrlLocaleTest extends BaseJ
assertSQLState("XJ004", se);
}
//Invalid territory specification
- testInvalidTerritoryFormat("en_");
- testInvalidTerritoryFormat("en_d");
- testInvalidTerritoryFormat("en-US");
+ checkInvalidTerritoryFormat("en_");
+ checkInvalidTerritoryFormat("en_d");
+ checkInvalidTerritoryFormat("en-US");
}
+ /**
+ * Test valid message resolution for Locale
+ * converted from i18n/messageLocale.sql
+ *
+ */
+ public void testMessageLocale() throws SQLException {
+ // Test with unknown Locale. Should have all English messages
+ LocaleTestSetup.setDefaultLocale(
+ new java.util.Locale("rr", "TT"));
+ String url = getReadWriteJDBCURL("rrTTdb");
+ url += ";create=true";
+ Connection locConn = DriverManager.getConnection(url);
+ Statement s = locConn.createStatement();
+ createLocaleProcedures(locConn);
+ // check this current database was created with the default locale rr_TT
+ s.executeUpdate("call checkDefaultLoc()");
+ // check database Locale
+ s.executeUpdate("call checkDatabaseLoc('rr_TT')");
+ // Expect an error in English because rr_TT has no translated messages.
+ // Language is determined by choosing a random word (that we hope
+ // won't change) in the current
+ try {
+ s.executeUpdate("create table t1 oops (i int)");
+ } catch (SQLException se) {
+ assertSQLState("42X01", se);
+ assertTrue("Expected English Message with \"Encountered\" " ,
+ (se.getMessage().indexOf("Encountered") != -1));
+
+ }
+ // Setup for warning
+ s.executeUpdate("create table t2 (i int)");
+ s.executeUpdate("create index i2_a on t2(i)");
+
+ // Expect WARNING to also be English. Index is a duplicate
+ s.executeUpdate("create index i2_b on t2(i)");
+ SQLWarning sqlw = s.getWarnings();
+ assertSQLState("01504", sqlw);
+ assertTrue("Expected English warning",
+ sqlw.getMessage().indexOf("duplicate") != -1);
+
+ s.close();
+ locConn.close();
+
+
+ // Set default Locale to German
+ LocaleTestSetup.setDefaultLocale(new java.util.Locale("de","DE"));
+
+ //create a database with a locale that has a small
+ // number of messages. Missing ones will default to
+ // the locale of the default locale: German;
+ url = getReadWriteJDBCURL("qqPPdb");
+ url += ";create=true;territory=qq_PP_testOnly";
+ locConn = DriverManager.getConnection(url);
+ s = locConn.createStatement();
+ s.executeUpdate("create table t2 (i int)");
+ s.executeUpdate("create index i2_a on t2(i)");
+ // Error that is in qq_PP messages
+ try {
+ s.executeUpdate("create table t1 oops (i int)");
+ } catch (SQLException se) {
+ assertSQLState("42X01", se);
+ assertTrue("Expected qq_PP Message with \"Encountered\" " ,
+ (se.getMessage().indexOf("Encountered") != -1));
+
+ }
+
+ // Expect WARNING to be in German (default) because there is no
+ //qq_PP message. Index is a duplicate
+ s.executeUpdate("create index i2_b on t2(i)");
+ sqlw = s.getWarnings();
+ assertSQLState("01504", sqlw);
+ assertTrue("Expected German warning with Duplikat",
+ sqlw.getMessage().indexOf(" Duplikat") != -1);
+
+ // Error from default German Locale as it does not exist in qq_PP
+ // from default locale (German);
+ try {
+ s.executeUpdate("drop table t3");
+ } catch (SQLException se) {
+ assertSQLState("42Y55", se);
+ assertTrue("Expected German Message with vorhanden" ,
+ (se.getMessage().indexOf("vorhanden") != -1));
+
+ }
+
+ //Now all English messages
+ url = getReadWriteJDBCURL("enUSdb");
+ url += ";create=true;territory=en_US";
+ locConn = DriverManager.getConnection(url);
+ s = locConn.createStatement();
+ s.executeUpdate("create table t2 (i int)");
+ s.executeUpdate("create index i2_a on t2(i)");
- private void testInvalidTerritoryFormat(String territory) {
+ try {
+ s.executeUpdate("create table t1 oops (i int)");
+ } catch (SQLException se) {
+ assertSQLState("42X01", se);
+ assertTrue("Expected English message with \"Encountered\" " ,
+ (se.getMessage().indexOf("Encountered") != -1));
+
+ }
+
+ // Expect WARNING to be in English because it is English db
+ // Even though German default Locale still
+ s.executeUpdate("create index i2_b on t2(i)");
+ sqlw = s.getWarnings();
+ assertSQLState("01504", sqlw);
+ assertTrue("Expected English warning with duplicate",
+ sqlw.getMessage().indexOf("duplicate") != -1);
+
+ try {
+ s.executeUpdate("drop table t3");
+ } catch (SQLException se) {
+ assertSQLState("42Y55", se);
+ assertTrue("Expected English Message with performed" ,
+ (se.getMessage().indexOf("performed") != -1));
+
+ }
+
+ }
+
+ private void checkInvalidTerritoryFormat(String territory) {
try {
String url = TestConfiguration.getCurrent().getJDBCUrl("../extinout/fail3");
url += ";create=true;territory=" + territory;
@@ -173,7 +295,10 @@ public class UrlLocaleTest extends BaseJ
"style java language java external name " +
"'org.apache.derbyTesting.functionTests.tests.i18n." +
"DefaultLocale.checkRDefaultLocale'");
-
+ s.executeUpdate("create procedure checkDefaultLoc() parameter " +
+ "style java language java external name " +
+ "'org.apache.derbyTesting.functionTests.tests.i18n." +
+ "DefaultLocale.checkDefaultLocale'");
}
public static Test suite() {