/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package sdb.test;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
//@Suite.SuiteClasses({ TestI18N.class, })
public class TestI18N extends TestStringBase
{
// static private final String emptyBase = "" ;
// static private final String whitespaceBase = " " ;
static private final String asciiBase = "abc" ;
static private final String latinBase = "Àéíÿ" ; // "fl" "ỹ" fails.
static private final String greekBase = "αβγ" ;
static private final String hewbrewBase = "אבג" ;
static private final String arabicBase = "ءآأ";
static private final String symbolsBase = "☺☻♪♫" ;
// TODO : Add Chinese, Japanese and Korean as \ u escapes
public TestI18N(String name, String baseString)
{
super(name, baseString, Env.test_jdbc, Env.test_params, Env.verbose) ;
}
// A bizaar way of calling the contructor to make "tests".
// JUnit4 is class-based, unlike Junit3 where there was a "test" instance
// underneath the reflection code that found "testXXX" methods.
// Could use @BeforeClass to pull the arguments from a helper.
//@RunWith(Suite.class)
//@SuiteClasses({ATest.class, BTest.class, CTest.class})
// ==> @Parameterized
//public class MyTests() {
// @BeforeClass public void setupDatabaseBeforeEverything() { ... }
// @AfterClass public void teardownDatabaseAfterEverything() { ... }
//}
@BeforeClass
static public void check()
{
if ( Env.test_jdbc == null )
System.err.println("JDBC connection is null") ;
if ( Env.test_params == null )
System.err.println("Test parameters are null") ;
}
@Parameters
public static Collection<Object[]> data()
{
List<Object[]> x = new ArrayList<Object[]>() ;
x.add(new Object[]{ "ASCII", asciiBase } ) ;
x.add(new Object[]{ "Accented Latin", latinBase } ) ;
x.add(new Object[]{ "Greek", greekBase } ) ;
x.add(new Object[]{"Arabic", arabicBase } ) ;
x.add(new Object[]{ "Hewbrew", hewbrewBase } ) ;
x.add(new Object[]{ "Symbols", symbolsBase} ) ;
return x ;
}
private static String longString(String base, int len)
{
if ( base.length() == 0 )
return base ;
StringBuilder value = new StringBuilder() ;
for ( int i = 0 ; i < len ; i++ )
{
value.append(base) ;
if ( value.length() > len )
break ;
}
// Trim.
if ( value.length() > len )
value = value.delete(len, value.length()) ;
return value.toString() ;
}
}