This is an automated email from the ASF dual-hosted git repository.

damjan pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/openoffice.git

commit 2f709283d1bd576d3b419fe5eab3c9c4e094bc79
Author: Damjan Jovanovic <[email protected]>
AuthorDate: Thu May 8 04:39:39 2025 +0200

    Integrate the i18n unit tests with their new test framework,
    eliminate most method order dependencies, and other
    test fixes.
    
    Patch by: me
---
 .../source/api/i18n/XBreakIteratorTest.java        | 228 +++++++++------
 test/testuno/source/api/i18n/XCalendarTest.java    | 312 +++++++++------------
 .../api/i18n/XCharacterClassificationTest.java     | 122 +++++---
 test/testuno/source/api/i18n/XCollatorTest.java    | 108 ++++---
 .../source/api/i18n/XExtendedCalendarTest.java     |  61 ++--
 .../api/i18n/XExtendedIndexEntrySupplierTest.java  | 130 ++++++---
 .../api/i18n/XExtendedTransliterationTest.java     |  49 +++-
 .../source/api/i18n/XIndexEntrySupplierTest.java   |  64 ++++-
 test/testuno/source/api/i18n/XLocaleDataTest.java  | 175 +++++++-----
 .../source/api/i18n/XNumberFormatCodeTest.java     |  62 +++-
 .../source/api/i18n/XTransliterationTest.java      | 141 ++++++----
 11 files changed, 899 insertions(+), 553 deletions(-)

diff --git a/test/testuno/source/api/i18n/XBreakIteratorTest.java 
b/test/testuno/source/api/i18n/XBreakIteratorTest.java
index 84aecc1c18..252793d006 100644
--- a/test/testuno/source/api/i18n/XBreakIteratorTest.java
+++ b/test/testuno/source/api/i18n/XBreakIteratorTest.java
@@ -21,14 +21,17 @@
 
 
 
-package ifc.i18n;
+package api.i18n;
 
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Vector;
 
-import lib.MultiMethodTest;
-import lib.Status;
-import lib.StatusException;
-
+import com.sun.star.beans.PropertyState;
+import com.sun.star.beans.PropertyValue;
 import com.sun.star.i18n.Boundary;
 import com.sun.star.i18n.LineBreakHyphenationOptions;
 import com.sun.star.i18n.LineBreakResults;
@@ -37,6 +40,19 @@ import com.sun.star.i18n.ScriptType;
 import com.sun.star.i18n.WordType;
 import com.sun.star.i18n.XBreakIterator;
 import com.sun.star.lang.Locale;
+import com.sun.star.lang.XComponent;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextRange;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openoffice.test.common.Testspace;
+import org.openoffice.test.uno.UnoApp;
 
 /**
 * Testing <code>com.sun.star.i18n.XBreakIterator</code>
@@ -76,31 +92,55 @@ import com.sun.star.lang.Locale;
 * <ul> <p>
 * @see com.sun.star.i18n.XBreakIterator
 */
-public class _XBreakIterator extends MultiMethodTest {
+public class XBreakIteratorTest {
+    private static final UnoApp app = new UnoApp();
+    private static final String iteratorPath = "api/i18n/Iterator.sxw";
+    private static String UnicodeString;
 
+    private XComponentContext xContext = null;
     public XBreakIterator oObj = null;
 
     Locale locale = null;
-    String UnicodeString = null;
 
     short wordType = WordType.ANYWORD_IGNOREWHITESPACES;
 
+    // setup and close connections
+    @BeforeClass
+    public static void setUpConnection() throws Exception
+    {
+        app.start();
+        UnicodeString = readFileContents(iteratorPath);
+    }
+
+    @AfterClass
+    public static void tearDownConnection() throws InterruptedException, 
com.sun.star.uno.Exception
+    {
+        app.close();
+    }
+
     /**
      * Retrieves object relations.
      * @throws StatusException If one of relations not found.
      */
-    protected void before() {
-        locale = (Locale)tEnv.getObjRelation("Locale");
-        if (locale == null) {
-            throw new StatusException
-                (Status.failed("Relation 'Locale' not found")) ;
-        }
+    @Before
+    public void before() throws Exception {
+        xContext = app.getComponentContext();
+        oObj = UnoRuntime.queryInterface(
+            XBreakIterator.class,
+            
xContext.getServiceManager().createInstanceWithContext("com.sun.star.i18n.BreakIterator",
 xContext)
+        );
+
+        locale = new Locale("en", "US", "");
+    }
 
-        UnicodeString = (String)tEnv.getObjRelation("UnicodeString");
-        if (UnicodeString == null) {
-            throw new StatusException(Status.failed
-                ("Relation 'UnicodeString' not found")) ;
-        }
+    private static String readFileContents(String path) throws Exception {
+        String sample = Testspace.prepareData(path);
+        PropertyValue[] properties = new PropertyValue[1];
+        properties[0] = new PropertyValue("Hidden", -1, true, 
PropertyState.DIRECT_VALUE);
+        XComponent docComponent = app.loadDocument(sample, properties);
+        XTextDocument textDocument = (XTextDocument) 
UnoRuntime.queryInterface(XTextDocument.class, docComponent);
+        XTextRange xTextRange = (XTextRange)textDocument.getText();
+        return xTextRange.getString();
     }
 
     /**
@@ -109,6 +149,7 @@ public class _XBreakIterator extends MultiMethodTest {
      * Has <b>OK</b> status if position after travel and traveled length
      * has expected values.
      */
+    @Test
     public void _nextCharacters() {
         short nCharacterIteratorMode =
             com.sun.star.i18n.CharacterIteratorMode.SKIPCHARACTER;
@@ -127,16 +168,16 @@ public class _XBreakIterator extends MultiMethodTest {
             int[] lDone = new int[1];
             long lRes = oObj.nextCharacters(UnicodeString, 
nextCharacters[i][0],
                 locale, nCharacterIteratorMode, nextCharacters[i][1], lDone);
-            log.println("Expected result is: lRes = " + nextCharacters[i][2] +
+            System.out.println("Expected result is: lRes = " + 
nextCharacters[i][2] +
                         "; lDone = " + nextCharacters[i][3] );
-            log.println("Actual result is: lRes = " + lRes +
+            System.out.println("Actual result is: lRes = " + lRes +
                         "; lDone = " + lDone[0] );
 
             bRes = bRes && lRes == nextCharacters[i][2];
             bRes = bRes && lDone[0] == nextCharacters[i][3];
         }
 
-        tRes.tested("nextCharacters()", bRes);
+        Assert.assertTrue("nextCharacters()", bRes);
     }
 
     /**
@@ -145,6 +186,7 @@ public class _XBreakIterator extends MultiMethodTest {
      * Has <b>OK</b> status if position after travel and traveled length
      * has expected values.
      */
+    @Test
     public void _previousCharacters() {
         short nCharacterIteratorMode =
             com.sun.star.i18n.CharacterIteratorMode.SKIPCHARACTER;
@@ -163,42 +205,46 @@ public class _XBreakIterator extends MultiMethodTest {
                 previousCharacters[i][0],
                 locale, nCharacterIteratorMode,
                 previousCharacters[i][1], lDone);
-            log.println("Expected result is: lRes = " + 
previousCharacters[i][2]
+            System.out.println("Expected result is: lRes = " + 
previousCharacters[i][2]
                 + "; lDone = " + previousCharacters[i][3] );
-            log.println("Actual result is: lRes = " + lRes
+            System.out.println("Actual result is: lRes = " + lRes
                 + "; lDone = " + lDone[0]);
 
             bRes = bRes && lRes == previousCharacters[i][2];
             bRes = bRes && lDone[0] == previousCharacters[i][3];
         }
 
-        tRes.tested("previousCharacters()", bRes);
+        Assert.assertTrue("previousCharacters()", bRes);
     }
 
-    Vector vBounds = new Vector();
-
     /**
     * Saves bounds of all returned words for the future tests. <p>
     * Has <b>OK</b> status.
     */
+    @Test
     public void _nextWord() {
-        int i = 0;
+        ArrayList<Boundary> vBounds = nextWord();
+        Assert.assertTrue("nextWord()", vBounds != null && vBounds.size() > 0);
+    }
 
+    private ArrayList<Boundary> nextWord() {
+        int i = 0;
+        ArrayList<Boundary> vBounds = new ArrayList<>();
         while( i < UnicodeString.length() - 1 ) {
             Boundary bounds = oObj.nextWord
                 (UnicodeString, i, locale, wordType);
             if (bounds.endPos - bounds.startPos > 3) {
                 vBounds.add( bounds );
-                log.println("Word " + vBounds.size() + "("
+                System.out.println("Word " + vBounds.size() + "("
                     + bounds.startPos + "," + bounds.endPos + "): '" +
                     UnicodeString.substring(bounds.startPos,
                                             bounds.endPos) + "'");
             }
             i = bounds.endPos - 1;
         }
-        log.println("In text there are " + vBounds.size()
+        System.out.println("In text there are " + vBounds.size()
             + " words, if count from left to right");
-        tRes.tested("nextWord()", true);
+        return vBounds;
     }
 
     /**
@@ -206,26 +252,27 @@ public class _XBreakIterator extends MultiMethodTest {
     * by the method _nextWord().<p>
     * Has <b>OK</b> status if number of word bounds are equal.
     */
+    @Test
     public void _previousWord() {
-        requiredMethod("nextWord()");
+        ArrayList<Boundary> vBounds = nextWord();
 
         int i = UnicodeString.length() - 1;
-        Vector vPrevBounds = new Vector();
+        ArrayList<Boundary> vPrevBounds = new ArrayList<>();
         while( i > 0  ) {
             Boundary bounds =
                 oObj.previousWord(UnicodeString, i, locale, wordType);
             if (bounds.endPos - bounds.startPos > 3) {
                 vPrevBounds.add( bounds );
-                log.println("Word " + vPrevBounds.size() + "("
+                System.out.println("Word " + vPrevBounds.size() + "("
                     + bounds.startPos + "," + bounds.endPos + "): '"
                     + UnicodeString.substring(bounds.startPos, bounds.endPos)
                     + "'");
             }
             i = bounds.startPos;
         }
-        log.println("In text there are " + vPrevBounds.size()
+        System.out.println("In text there are " + vPrevBounds.size()
             + " words, if count from right to left");
-        tRes.tested("previousWord()", vPrevBounds.size() == vBounds.size() );
+        Assert.assertTrue("previousWord()", vPrevBounds.size() == 
vBounds.size() );
     }
 
     /**
@@ -235,8 +282,9 @@ public class _XBreakIterator extends MultiMethodTest {
      * Has <b>OK</b> status if bounds calculated by 
<code>getWordBoundary()</code>
      * method are the same as bounds obtained by <code>nextWord</code> method.
      */
+    @Test
     public void _getWordBoundary() {
-        requiredMethod("nextWord()");
+        ArrayList<Boundary> vBounds = nextWord();
 
         boolean bRes = true;
 
@@ -247,9 +295,9 @@ public class _XBreakIterator extends MultiMethodTest {
                         + iBounds.startPos;
             Boundary bounds = oObj.getWordBoundary(UnicodeString, iPos,
                 locale, wordType, true);
-            log.println("Expected result is: startPos = " + iBounds.startPos +
+            System.out.println("Expected result is: startPos = " + 
iBounds.startPos +
                                  "; endPos = " + iBounds.endPos);
-            log.println("Actual result is: startPos = " + bounds.startPos
+            System.out.println("Actual result is: startPos = " + 
bounds.startPos
                 + "; endPos = " + bounds.endPos + " Word is: '"
                 + UnicodeString.substring(bounds.startPos, bounds.endPos) + 
"'");
 
@@ -257,7 +305,7 @@ public class _XBreakIterator extends MultiMethodTest {
             bRes = bRes && iBounds.endPos == bounds.endPos;
         }
 
-        tRes.tested("getWordBoundary()", bRes);
+        Assert.assertTrue("getWordBoundary()", bRes);
     }
 
     /**
@@ -266,8 +314,9 @@ public class _XBreakIterator extends MultiMethodTest {
      *
      * Has <b>OK</b> status if every word has type 
<code>WordType.ANY_WORD</code>
      */
+    @Test
     public void _getWordType() {
-        requiredMethod("nextWord()");
+        ArrayList<Boundary> vBounds = nextWord();
 
         boolean bRes = true;
 
@@ -282,7 +331,7 @@ public class _XBreakIterator extends MultiMethodTest {
             bRes = bRes && type == WordType.ANY_WORD;
         }
 
-        tRes.tested("getWordType()", bRes);
+        Assert.assertTrue("getWordType()", bRes);
     }
 
     /**
@@ -293,8 +342,9 @@ public class _XBreakIterator extends MultiMethodTest {
      * Has <b>OK</b> status if in the first case <code>true</code>
      * returned and in the second - <code>false</code> for every word.
      */
+    @Test
     public void _isBeginWord() {
-        requiredMethod("nextWord()");
+        ArrayList<Boundary> vBounds = nextWord();
 
         boolean bRes = true;
 
@@ -303,17 +353,19 @@ public class _XBreakIterator extends MultiMethodTest {
             boolean isBegin = oObj.isBeginWord(UnicodeString, iBounds.startPos,
                                                locale, WordType.ANY_WORD);
             bRes = bRes && isBegin;
+            Assert.assertTrue("isBeginWord is wrong at position " + 
iBounds.startPos + ", string len " + UnicodeString.length(), isBegin);
             boolean isNotBegin = !oObj.isBeginWord(UnicodeString,
                     iBounds.startPos + 1, locale, WordType.ANY_WORD);
             bRes = bRes && isNotBegin;
+            Assert.assertTrue("isBeginWord is wrong at position " + 
(iBounds.startPos + 1) + " for bounds (" + iBounds.startPos + "," + 
iBounds.endPos, isNotBegin);
 
-            log.println("At position + " + iBounds.startPos
+            System.out.println("At position + " + iBounds.startPos
                 + " isBeginWord? " + isBegin);
-            log.println("At position + " + (iBounds.startPos + 1)
+            System.out.println("At position + " + (iBounds.startPos + 1)
                 + " isBeginWord? " + !isNotBegin);
         }
 
-        tRes.tested("isBeginWord()", bRes);
+        Assert.assertTrue("isBeginWord()", bRes);
     }
 
     /**
@@ -325,8 +377,9 @@ public class _XBreakIterator extends MultiMethodTest {
      * Has <b>OK</b> status if in the first case <code>true</code>
      * returned and in the second - <code>false</code> for every word.
      */
+    @Test
     public void _isEndWord() {
-        requiredMethod("nextWord()");
+        ArrayList<Boundary> vBounds = nextWord();
 
         boolean bRes = true;
 
@@ -339,13 +392,13 @@ public class _XBreakIterator extends MultiMethodTest {
                 iBounds.endPos - 1, locale, WordType.ANY_WORD);
             bRes = bRes && isNotEnd;
 
-            log.println("At position + " + iBounds.endPos
+            System.out.println("At position + " + iBounds.endPos
                 + " isEndWord? " + isEnd);
-            log.println("At position + " + (iBounds.endPos - 1)
+            System.out.println("At position + " + (iBounds.endPos - 1)
                 + " isEndWord? " + !isNotEnd);
         }
 
-        tRes.tested("isEndWord()", bRes);
+        Assert.assertTrue("isEndWord()", bRes);
     }
 
     Vector vSentenceStart = new Vector();
@@ -356,6 +409,7 @@ public class _XBreakIterator extends MultiMethodTest {
      *
      * Has <b>OK</b> status if -1 is returned for wrong position arguments.
      */
+    @Test
     public void _beginOfSentence() {
         int iPos = 0;
         while( iPos < UnicodeString.length() ) {
@@ -363,7 +417,7 @@ public class _XBreakIterator extends MultiMethodTest {
                 iPos, locale) );
             if (start.intValue() >= 0 && !vSentenceStart.contains(start) ) {
                 vSentenceStart.add( start );
-                log.println("Sentence " + vSentenceStart.size()
+                System.out.println("Sentence " + vSentenceStart.size()
                     + " : start from position " + start);
             }
             iPos++;
@@ -375,10 +429,10 @@ public class _XBreakIterator extends MultiMethodTest {
             UnicodeString.length() + 1, locale) == -1;
 
         if (!bRes) {
-            log.println("When invalid position, returned value isn't equal to 
-1");
+            System.out.println("When invalid position, returned value isn't 
equal to -1");
         }
 
-        tRes.tested("beginOfSentence()", bRes);
+        Assert.assertTrue("beginOfSentence()", bRes);
     }
 
     /**
@@ -391,13 +445,14 @@ public class _XBreakIterator extends MultiMethodTest {
      * Has <b>OK</b> status if the end position of every sentence
      * greater than starting and -1 returned for invalid arguments.
      */
+    @Test
     public void _endOfSentence() {
         boolean bRes = true;
         for(int i = 0; i < vSentenceStart.size(); i++) {
             int start = ((Integer)vSentenceStart.get(i)).intValue();
             int end = oObj.endOfSentence(UnicodeString, start, locale);
             bRes &= end > start;
-            log.println("Sentence " + i + " range is [" + start + ", "
+            System.out.println("Sentence " + i + " range is [" + start + ", "
                 + end + "]");
         }
 
@@ -407,10 +462,10 @@ public class _XBreakIterator extends MultiMethodTest {
             UnicodeString.length() + 1, locale) == -1;
 
         if (!bInvRes) {
-            log.println("When invalid position, returned value isn't equal to 
-1");
+            System.out.println("When invalid position, returned value isn't 
equal to -1");
         }
 
-        tRes.tested("endOfSentence()", bRes && bInvRes);
+        Assert.assertTrue("endOfSentence()", bRes && bInvRes);
     }
 
     /**
@@ -420,6 +475,7 @@ public class _XBreakIterator extends MultiMethodTest {
     * Has <b>OK</b> status if non-zero break position was found and it is
     * less or equal than position we trying to break.
     */
+    @Test
     public void _getLineBreak() {
         boolean bRes = true;
         LineBreakResults lineBreakResults;
@@ -445,11 +501,11 @@ public class _XBreakIterator extends MultiMethodTest {
         bRes = breakPos <= pos && breakPos > 0;
 
         if (!bRes) {
-            log.println("The last position was: " + pos
+            System.out.println("The last position was: " + pos
                 + ", and the break position was: " + breakPos);
         }
 
-        tRes.tested("getLineBreak()", bRes);
+        Assert.assertTrue("getLineBreak()", bRes);
     }
 
     // Asian type script
@@ -464,14 +520,15 @@ public class _XBreakIterator extends MultiMethodTest {
     * relatively to position passed. <p>
     * Has <b>OK</b> status if the starting position of script is returned.
     */
+    @Test
     public void _beginOfScript() {
         String multiScript = "ab" + katakana  ;
 
         int pos = oObj.beginOfScript(multiScript, 3, ScriptType.ASIAN) ;
 
-        log.println("Position = " + pos) ;
+        System.out.println("Position = " + pos) ;
 
-        tRes.tested("beginOfScript()", pos == 2) ;
+        Assert.assertTrue("beginOfScript()", pos == 2) ;
     }
 
     /**
@@ -479,14 +536,15 @@ public class _XBreakIterator extends MultiMethodTest {
     * relatively to position passed. <p>
     * Has <b>OK</b> status if the end position of script is returned.
     */
+    @Test
     public void _endOfScript() {
         String multiScript = "ab" + katakana + "cd" ;
 
         int pos = oObj.endOfScript(multiScript, 2, ScriptType.ASIAN) ;
 
-        log.println("Position = " + pos) ;
+        System.out.println("Position = " + pos) ;
 
-        tRes.tested("endOfScript()", pos == 4) ;
+        Assert.assertTrue("endOfScript()", pos == 4) ;
     }
 
     /**
@@ -494,14 +552,15 @@ public class _XBreakIterator extends MultiMethodTest {
     * relatively to position passed. <p>
     * Has <b>OK</b> status if the appropriate position is returned.
     */
+    @Test
     public void _nextScript() {
         String multiScript = "ab" + katakana + "cd"  ;
 
         int pos = oObj.nextScript(multiScript, 0, ScriptType.LATIN) ;
 
-        log.println("Position = " + pos) ;
+        System.out.println("Position = " + pos) ;
 
-        tRes.tested("nextScript()", pos == 4) ;
+        Assert.assertTrue("nextScript()", pos == 4) ;
     }
 
     /**
@@ -509,14 +568,15 @@ public class _XBreakIterator extends MultiMethodTest {
     * relatively to position passed. <p>
     * Has <b>OK</b> status if the appropriate position is returned.
     */
+    @Test
     public void _previousScript() {
         String multiScript = "ab" + katakana + "cd"  ;
 
         int pos = oObj.previousScript(multiScript, 5, ScriptType.ASIAN) ;
 
-        log.println("Position = " + pos) ;
+        System.out.println("Position = " + pos) ;
 
-        tRes.tested("previousScript()", pos == 2) ;
+        Assert.assertTrue("previousScript()", pos == 2) ;
     }
 
     /**
@@ -527,6 +587,7 @@ public class _XBreakIterator extends MultiMethodTest {
     * codepoints and <code>WEAK</code> for codepoints from Arrows
     * Unicode block.
     */
+    @Test
     public void _getScriptType() {
         boolean res = true ;
 
@@ -535,11 +596,9 @@ public class _XBreakIterator extends MultiMethodTest {
         res &= oObj.getScriptType(arabic, 0) == ScriptType.COMPLEX ;
         res &= oObj.getScriptType(arrows, 0) == ScriptType.WEAK ;
 
-        tRes.tested("getScriptType()", res) ;
+        Assert.assertTrue("getScriptType()", res) ;
     }
 
-    boolean bCharBlockRes = true;
-
     protected short getCharBlockType(int pos) {
         short i = 1;
         short cType = 0;
@@ -567,7 +626,13 @@ public class _XBreakIterator extends MultiMethodTest {
      * has position 0 and the end of the last block is at the end
      * of the whole string.
      */
+    @Test
     public void _beginOfCharBlock() {
+        Assert.assertTrue("beginOfCharBlock()", beginOfCharBlock());
+    }
+
+    private boolean beginOfCharBlock() {
+        boolean bCharBlockRes = true;
         int iPos = 0;
 
         while( iPos < UnicodeString.length() && iPos > -1) {
@@ -578,7 +643,7 @@ public class _XBreakIterator extends MultiMethodTest {
                 locale, charType);
             iPos = endPos;
             vCharBlockBounds.add(new Boundary(startPos, endPos));
-            log.println("" + vCharBlockBounds.size() + "). Bounds: ["
+            System.out.println("" + vCharBlockBounds.size() + "). Bounds: ["
                 + startPos + "," + endPos + "]; Type = " + charType);
             vCharBlockTypes.add(new Short(charType));
         }
@@ -589,16 +654,16 @@ public class _XBreakIterator extends MultiMethodTest {
             bCharBlockRes &= endPos == startPos;
         }
 
-        log.println("Testing for no intersections : " + bCharBlockRes);
+        System.out.println("Testing for no intersections : " + bCharBlockRes);
         int startPos = ((Boundary)vCharBlockBounds.get(0)).startPos;
         bCharBlockRes &= startPos == 0;
         int endPos = ((Boundary)vCharBlockBounds.get
             (vCharBlockBounds.size() - 1)).endPos;
         bCharBlockRes &= endPos == UnicodeString.length();
-        log.println("Regions should starts with 0 and ends with "
+        System.out.println("Regions should starts with 0 and ends with "
             + UnicodeString.length());
 
-        tRes.tested("beginOfCharBlock()", bCharBlockRes);
+        return bCharBlockRes;
     }
 
     /**
@@ -608,8 +673,7 @@ public class _XBreakIterator extends MultiMethodTest {
      * Has the status same as <code>beginOfCharBlock()</code> method status.
      */
     public void _endOfCharBlock() {
-        requiredMethod("beginOfCharBlock()");
-        tRes.tested("endOfCharBlock()", bCharBlockRes);
+        Assert.assertTrue("endOfCharBlock()", beginOfCharBlock());
     }
 
     /**
@@ -622,7 +686,7 @@ public class _XBreakIterator extends MultiMethodTest {
      * equal to this block boundary start.
      */
     public void _nextCharBlock() {
-        requiredMethod("beginOfCharBlock()");
+        beginOfCharBlock();
 
         boolean bRes = true;
         for(int i = 0; i < vCharBlockBounds.size(); i++) {
@@ -633,14 +697,14 @@ public class _XBreakIterator extends MultiMethodTest {
                 locale, type.shortValue());
             if (iPos != bounds.startPos) {
                 bRes = false;
-                log.println("nextCharBlock(UnicodeString, "
+                System.out.println("nextCharBlock(UnicodeString, "
                     + (bounds.startPos - 1) + ", locale, " + type
                     + ") should return " + bounds.startPos);
-                log.println("... and actual value is " + iPos);
+                System.out.println("... and actual value is " + iPos);
             }
         }
 
-        tRes.tested("nextCharBlock()", bRes);
+        Assert.assertTrue("nextCharBlock()", bRes);
     }
 
     /**
@@ -653,7 +717,7 @@ public class _XBreakIterator extends MultiMethodTest {
      * equal to this block boundary start.
      */
     public void _previousCharBlock() {
-        requiredMethod("beginOfCharBlock()");
+        beginOfCharBlock();
 
         boolean bRes = true;
         for(int i = 0; i < vCharBlockBounds.size(); i++) {
@@ -663,14 +727,14 @@ public class _XBreakIterator extends MultiMethodTest {
                 bounds.endPos + 1, locale, type.shortValue());
             if (iPos != bounds.startPos) {
                 bRes = false;
-                log.println("previousCharBlock(UnicodeString, "
+                System.out.println("previousCharBlock(UnicodeString, "
                     + (bounds.endPos + 1) + ", locale, " + type
                     + ") should return " + bounds.startPos);
-                log.println("... and actual value is " + iPos);
+                System.out.println("... and actual value is " + iPos);
             }
         }
 
-        tRes.tested("previousCharBlock()", bRes);
+        Assert.assertTrue("previousCharBlock()", bRes);
     }
 
 }
diff --git a/test/testuno/source/api/i18n/XCalendarTest.java 
b/test/testuno/source/api/i18n/XCalendarTest.java
index 6c3acd102a..1c63861032 100644
--- a/test/testuno/source/api/i18n/XCalendarTest.java
+++ b/test/testuno/source/api/i18n/XCalendarTest.java
@@ -21,9 +21,7 @@
 
 
 
-package ifc.i18n;
-
-import lib.MultiMethodTest;
+package api.i18n;
 
 import com.sun.star.i18n.CalendarDisplayIndex;
 import com.sun.star.i18n.CalendarFieldIndex;
@@ -33,6 +31,14 @@ import com.sun.star.i18n.XLocaleData;
 import com.sun.star.lang.Locale;
 import com.sun.star.lang.XMultiServiceFactory;
 import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openoffice.test.uno.UnoApp;
 
 /**
 * Testing <code>com.sun.star.i18n.XCalendar</code>
@@ -62,42 +68,61 @@ import com.sun.star.uno.UnoRuntime;
 * Test is <b> NOT </b> multithread compliant. <p>
 * @see com.sun.star.i18n.XCalendar
 */
-public class _XCalendar extends MultiMethodTest {
+public class XCalendarTest {
+    private static final UnoApp app = new UnoApp();
+
+    private XComponentContext xContext = null;
     private boolean debug = false;
     public XCalendar oObj = null;
-    public String[][] calendars;
-    public int[] count;
     public double newDTime = 1000.75;
     public short newValue = 2;
-    public short firstDay = 2;
+    public final short firstDay = 2;
     public short mdfw = 3;
     double aOriginalDTime = 0;
     Locale[] installed_locales;
 
-    public void before() {
-        XLocaleData locData = null;
-        try {
-            locData = (XLocaleData) UnoRuntime.queryInterface(
-                XLocaleData.class,
-                    ((XMultiServiceFactory)tParam.getMSF()).createInstance(
-                    "com.sun.star.i18n.LocaleData"));
-        } catch (com.sun.star.uno.Exception e) {
+    static class CalendarData {
+        String[][] calendars;
+        int[] count;
+    };
 
-        }
+
+    @BeforeClass
+    public static void setUp() throws Exception {
+        app.start();
+    }
+
+    @AfterClass
+    public static void tearDown() throws Exception {
+        app.close();
+    }
+
+    @Before
+    public void before() throws Exception {
+        xContext = app.getComponentContext();
+
+        XLocaleData locData = null;
+        locData = UnoRuntime.queryInterface(
+            XLocaleData.class,
+            
xContext.getServiceManager().createInstanceWithContext("com.sun.star.i18n.LocaleData",
 xContext)
+        );
+        oObj = UnoRuntime.queryInterface(
+            XCalendar.class,
+            
xContext.getServiceManager().createInstanceWithContext("com.sun.star.i18n.LocaleCalendar",
 xContext)
+        );
         installed_locales = locData.getAllInstalledLocaleNames();
-        calendars = new String[installed_locales.length][];
-        count = new int[installed_locales.length];
         oObj.loadDefaultCalendar(installed_locales[0]);
         aOriginalDTime = oObj.getDateTime();
         
-        debug = tParam.getBool("DebugIsActive");
+        debug = false;
     }
 
     /**
      * Restore the changed time during the test to the original value of the
      * machine: has to be correct for the following interface tests.
      */
-    public void after() {
+    @After
+    public void after() throws Exception {
         oObj.loadDefaultCalendar(installed_locales[0]);
         oObj.setDateTime(aOriginalDTime);
     }
@@ -107,23 +132,15 @@ public class _XCalendar extends MultiMethodTest {
     * Has <b> OK </b> status if method loads calendar, that is
     * default for a given locale.
     */
+    @Test
     public void _loadDefaultCalendar() {
-        boolean res = true;
-
         for (int i=0; i<installed_locales.length; i++) {
             String lang = "Language: "+installed_locales[i].Language +
                           ", Country: "+ installed_locales[i].Country +
-                          ", Variant: "+ installed_locales[i].Country;
+                          ", Variant: "+ installed_locales[i].Variant;
             oObj.loadDefaultCalendar(installed_locales[i]);
-            if (oObj.getLoadedCalendar().Default) {
-                //log.println(lang + " ... OK");
-            } else {
-                log.println(lang + " ... FAILED");
-            }
-            res &= oObj.getLoadedCalendar().Default;
+            Assert.assertTrue(lang, oObj.getLoadedCalendar().Default);
         }
-
-        tRes.tested("loadDefaultCalendar()", res);
     }
 
     /**
@@ -131,23 +148,24 @@ public class _XCalendar extends MultiMethodTest {
     * Has <b> OK </b> status if the method returns more than zero calendars for
     * every locale.
     */
+    @Test
     public void _getAllCalendars() {
-        boolean res = true;
+        getAllCalendars();
+    }
 
+    private CalendarData getAllCalendars() {
+        CalendarData data = new CalendarData();
+        data.calendars = new String[installed_locales.length][];
+        data.count = new int[installed_locales.length];
         for (int i=0; i<installed_locales.length; i++) {
             String lang = "Language: "+installed_locales[i].Language +
                           ", Country: "+ installed_locales[i].Country +
-                          ", Variant: "+ installed_locales[i].Country;
-            calendars[i] = oObj.getAllCalendars(installed_locales[i]);
-            count[i] = calendars[i].length-1;
-            if (calendars[i].length > 0) {
-                //log.println(lang + " ... OK");
-            } else {
-                log.println(lang + " ... FAILED");
-            }
-            res &= (calendars[i].length > 0);
+                          ", Variant: "+ installed_locales[i].Variant;
+            data.calendars[i] = oObj.getAllCalendars(installed_locales[i]);
+            data.count[i] = data.calendars[i].length-1;
+            Assert.assertTrue(lang, data.calendars[i].length > 0);
         }
-        tRes.tested("getAllCalendars()", res);
+        return data;
     }
 
     /**
@@ -160,24 +178,21 @@ public class _XCalendar extends MultiMethodTest {
     *  locale </li>
     * </ul>
     */
+    @Test
     public void _loadCalendar() {
-        boolean res = true;
-        requiredMethod("getAllCalendars()");
+        loadCalendar();
+    }
 
+    private CalendarData loadCalendar() {
+        CalendarData data = getAllCalendars();
         for (int i=0; i<installed_locales.length; i++) {
             String lang = "Language: "+installed_locales[i].Language +
                           ", Country: "+ installed_locales[i].Country +
-                          ", Variant: "+ installed_locales[i].Country;
-            oObj.loadCalendar(calendars[i][0], installed_locales[i]);
-            if (calendars[i][0].equals(oObj.getLoadedCalendar().Name)) {
-                //log.println(lang + " ... OK");
-            } else {
-                log.println(lang + " ... FAILED");
-            }
-            res &= calendars[i][0].equals(oObj.getLoadedCalendar().Name);
+                          ", Variant: "+ installed_locales[i].Variant;
+            oObj.loadCalendar(data.calendars[i][0], installed_locales[i]);
+            Assert.assertEquals(lang, data.calendars[i][0], 
oObj.getLoadedCalendar().Name);
         }
-
-        tRes.tested("loadCalendar()", res);
+        return data;
     }
 
     /**
@@ -190,23 +205,16 @@ public class _XCalendar extends MultiMethodTest {
     *  and locale </li>
     * </ul>
     */
+    @Test
     public void _getLoadedCalendar() {
-        boolean res = true;
-
-        requiredMethod("loadCalendar()");
+        CalendarData data = loadCalendar();
         for (int i=0; i<installed_locales.length; i++) {
             String lang = "Language: "+installed_locales[i].Language +
                           ", Country: "+ installed_locales[i].Country +
-                          ", Variant: "+ installed_locales[i].Country;
-            oObj.loadCalendar(calendars[i][0], installed_locales[i]);
-            if (calendars[i][0].equals(oObj.getLoadedCalendar().Name)) {
-                //log.println(lang + " ... OK");
-            } else {
-                log.println(lang + " ... FAILED");
-            }
-            res &= calendars[i][0].equals(oObj.getLoadedCalendar().Name);
+                          ", Variant: "+ installed_locales[i].Variant;
+            oObj.loadCalendar(data.calendars[i][0], installed_locales[i]);
+            Assert.assertEquals(lang, data.calendars[i][0], 
oObj.getLoadedCalendar().Name);
         }
-        tRes.tested("getLoadedCalendar()", res);
     }
 
     /**
@@ -219,23 +227,17 @@ public class _XCalendar extends MultiMethodTest {
     *  and locale </li>
     * </ul>
     */
+    @Test
     public void _getUniqueID() {
-        boolean res = true;
+        CalendarData data = getAllCalendars();
         for (int i=0; i<installed_locales.length; i++) {
             String lang = "Language: "+installed_locales[i].Language +
                           ", Country: "+ installed_locales[i].Country +
-                          ", Variant: "+ installed_locales[i].Country;
-            oObj.loadCalendar(calendars[i][0], installed_locales[i]);
+                          ", Variant: "+ installed_locales[i].Variant;
+            oObj.loadCalendar(data.calendars[i][0], installed_locales[i]);
             String uID = oObj.getUniqueID();
-            if (uID.equals(calendars[i][0])) {
-                //log.println(lang + " ... OK");
-            } else {
-                log.println(lang + " ... FAILED");
-            }
-            res &= uID.equals(calendars[i][0]);
+            Assert.assertEquals(lang, uID, data.calendars[i][0]);
         }
-
-        tRes.tested("getUniqueID()",res);
     }
 
     /**
@@ -243,25 +245,16 @@ public class _XCalendar extends MultiMethodTest {
     * Has <b> OK </b> status if the method returns value, that's equal to
     * value set before. <p>
     */
-
+    @Test
     public void _setDateTime() {
-        boolean res = true;
-        
         for (int i=0; i<installed_locales.length; i++) {
             String lang = "Language: "+installed_locales[i].Language +
                           ", Country: "+ installed_locales[i].Country +
-                          ", Variant: "+ installed_locales[i].Country;
+                          ", Variant: "+ installed_locales[i].Variant;
             oObj.setDateTime(newDTime);
             double aDTime = oObj.getDateTime();
-            if (aDTime == newDTime) {
-                //log.println(lang + " ... OK");
-            } else {
-                log.println(lang + " ... FAILED");
-            }
-            res &= (aDTime == newDTime);
+            Assert.assertTrue(lang, aDTime == newDTime);
         }
-
-        tRes.tested("setDateTime()", res);
     }
 
     /**
@@ -269,24 +262,16 @@ public class _XCalendar extends MultiMethodTest {
     * Has <b> OK </b> status if the method returns value, that's equal to
     * value set before. <p>
     */
-
+    @Test
     public void _getDateTime() {
-        boolean res = true;
-
         for (int i=0; i<installed_locales.length; i++) {
             String lang = "Language: "+installed_locales[i].Language +
                           ", Country: "+ installed_locales[i].Country +
-                          ", Variant: "+ installed_locales[i].Country;
+                          ", Variant: "+ installed_locales[i].Variant;
             oObj.setDateTime(newDTime);
             double aDTime = oObj.getDateTime();
-            if (aDTime == newDTime) {
-                //log.println(lang + " ... OK");
-            } else {
-                log.println(lang + " ... FAILED");
-            }
-            res &= (aDTime == newDTime);
+            Assert.assertTrue(lang, aDTime == newDTime);
         }
-        tRes.tested("getDateTime()", res);
     }
 
     /**
@@ -294,19 +279,19 @@ public class _XCalendar extends MultiMethodTest {
     * Has <b> OK </b> status if the method returns value, that's equal to
     * value set before. <p>
     */
-
+    @Test
     public void _setValue() {
-        boolean res = true;
+        CalendarData data = getAllCalendars();
         for (int i=0; i<installed_locales.length; i++) {
             String error = "";
             String lang = "Language: "+installed_locales[i].Language +
                           ", Country: "+ installed_locales[i].Country +
                           ", Variant: "+ installed_locales[i].Variant +
-                          ", Name: "+calendars[i][count[i]];
+                          ", Name: "+data.calendars[i][data.count[i]];
             String[] names = new String[]{"DAY_OF_MONTH",
                 "HOUR","MINUTE","SECOND","MILLISECOND",
                 "YEAR","MONTH"};
-            oObj.loadCalendar(calendars[i][count[i]],installed_locales[i]);
+            
oObj.loadCalendar(data.calendars[i][data.count[i]],installed_locales[i]);
             short[] fields = new short[]{CalendarFieldIndex.DAY_OF_MONTH,
                                          CalendarFieldIndex.HOUR,
                                          CalendarFieldIndex.MINUTE,
@@ -331,30 +316,22 @@ public class _XCalendar extends MultiMethodTest {
                 short get = oObj.getValue(fields[k]);
                 if (get != set) {
                     if (debug)
-                        log.println("ERROR occur: tried to set " + names[k] + 
" to value " + set);
-                        log.println("list of values BEFORE set " + names[k] + 
" to value " + set + ":");
+                        System.out.println("ERROR occur: tried to set " + 
names[k] + " to value " + set);
+                        System.out.println("list of values BEFORE set " + 
names[k] + " to value " + set + ":");
                         for (int n=0; n < oldValues.length; n++){
-                            log.println(names[n] + ":" + oldValues[n]);
+                            System.out.println(names[n] + ":" + oldValues[n]);
                         }
-                        log.println("list of values AFTER set " + names[k] + " 
to value " + set + ":");
+                        System.out.println("list of values AFTER set " + 
names[k] + " to value " + set + ":");
                         for (int n=0; n < fields.length;n++){
-                            log.println(names[n] + ":" + 
oObj.getValue(fields[n]));
+                            System.out.println(names[n] + ":" + 
oObj.getValue(fields[n]));
                         }
                         
                     error += "failed for "+names[k]+" expected "+
                                 set+" gained "+get+" ; \n";
                 }
             }
-            if (error.equals("")) {
-                log.println(lang + " ... OK");
-            } else {
-                log.println("*** "+lang + " ... FAILED ***");
-                log.println(error);
-            }
-            res &= (error.equals(""));
+            Assert.assertTrue(error, error.equals(""));
         }
-
-        tRes.tested("setValue()", res);
     }
 
     /**
@@ -362,18 +339,14 @@ public class _XCalendar extends MultiMethodTest {
     * Has <b> OK </b> status if the method returns value, that's equal to
     * value set before. <p>
     */
-
+    @Test
     public void _getValue() {
-        boolean res = true;
-
-        requiredMethod("setValue()");
+        _setValue();
         short aValue = oObj.getValue(CalendarFieldIndex.MONTH);
-        res &= (aValue == newValue);
-        if (!res){
-            log.println("the returned value is not the expected value:");
-            log.println("expexted: " + newValue + "  returned value: " + 
aValue);
-        }
-        tRes.tested("getValue()", res);
+        Assert.assertEquals(
+            "the returned value is not the expected value:" +
+            "expected: " + newValue + "  returned value: " + aValue,
+            aValue, newValue);
     }
 
     /**
@@ -386,18 +359,15 @@ public class _XCalendar extends MultiMethodTest {
     *  <li> <code> getValue() </code> : gets the value of a field </li>
     * </ul>
     */
+    @Test
     public void _addValue() {
-        boolean res = true;
-
-        requiredMethod("getValue()");
+        _setValue();
         oObj.addValue(CalendarFieldIndex.MONTH, 1);
         short aValue = oObj.getValue(CalendarFieldIndex.MONTH);
-        res &= (aValue > newValue);
-        if (!res){
-            log.println("the returned value is not the expected value:");
-            log.println("expexted: " + newValue + "  returned value: " + 
aValue);
-        }
-        tRes.tested("addValue()", res);
+        Assert.assertTrue(
+            "the returned value is not the expected value:" +
+            "expected: " + newValue + "  returned value: " + aValue,
+            aValue > newValue);
     }
 
     /**
@@ -405,12 +375,9 @@ public class _XCalendar extends MultiMethodTest {
     * Has <b> OK </b> status if the method successfully returns
     * and no exceptions were thrown.
     */
+    @Test
     public void _setFirstDayOfWeek() {
-        boolean res = true;
-
         oObj.setFirstDayOfWeek(firstDay);
-        res &= true;
-        tRes.tested("setFirstDayOfWeek()", res);
     }
 
     /**
@@ -423,13 +390,11 @@ public class _XCalendar extends MultiMethodTest {
     *  week</li>
     * </ul>
     */
+    @Test
     public void _getFirstDayOfWeek() {
-        boolean res = true;
-
-        requiredMethod("setFirstDayOfWeek()");
+        _setFirstDayOfWeek();
         short aFirstDayOfWeek = oObj.getFirstDayOfWeek();
-        res &= (aFirstDayOfWeek == firstDay);
-        tRes.tested("getFirstDayOfWeek()", res);
+        Assert.assertEquals("getFirstDayOfWeek()", aFirstDayOfWeek, firstDay);
     }
 
     /**
@@ -437,12 +402,9 @@ public class _XCalendar extends MultiMethodTest {
     * Has <b> OK </b> status if the method successfully returns
     * and no exceptions were thrown.
     */
+    @Test
     public void _setMinimumNumberOfDaysForFirstWeek() {
-        boolean res = true;
-
         oObj.setMinimumNumberOfDaysForFirstWeek(mdfw);
-        res &= true;
-        tRes.tested("setMinimumNumberOfDaysForFirstWeek()", res);
     }
 
     /**
@@ -455,75 +417,64 @@ public class _XCalendar extends MultiMethodTest {
     *  many days of a week must reside in the first week of a year</li>
     * </ul>
     */
+    @Test
     public void _getMinimumNumberOfDaysForFirstWeek() {
-        boolean res = true;
-
-        requiredMethod("setMinimumNumberOfDaysForFirstWeek()");
+        _setMinimumNumberOfDaysForFirstWeek();
         short aShort = oObj.getMinimumNumberOfDaysForFirstWeek();
-        res &= (aShort == mdfw);
-        tRes.tested("getMinimumNumberOfDaysForFirstWeek()", res);
+        Assert.assertEquals("getMinimumNumberOfDaysForFirstWeek()", aShort, 
mdfw);
     }
 
     /**
     * Test calls the method, then result is checked. <p>
     * Has <b> OK </b> status if the method returns 12.
     */
+    @Test
     public void _getNumberOfMonthsInYear() {
-        boolean res = true;
         short aShort = oObj.getNumberOfMonthsInYear();
-
-        res &= (aShort == (short) 12);
-        tRes.tested("getNumberOfMonthsInYear()", res);
+        Assert.assertTrue("getNumberOfMonthsInYear()", (aShort == (short) 12));
     }
 
     /**
     * Test calls the method, then result is checked. <p>
     * Has <b> OK </b> status if the method returns 7.
     */
+    @Test
     public void _getNumberOfDaysInWeek() {
-        boolean res = true;
         short aShort = oObj.getNumberOfDaysInWeek();
-
-        res &= (aShort == (short) 7);
-        tRes.tested("getNumberOfDaysInWeek()", res);
+        Assert.assertTrue("getNumberOfDaysInWeek()", (aShort == (short) 7));
     }
 
     /**
     * Test calls the method, then result is checked. <p>
     * Has <b> OK </b> status if length of array, returned by the method is 12.
     */
+    @Test
     public void _getMonths() {
-        boolean res = true;
         CalendarItem[] months = oObj.getMonths();
-
-        res &= (months.length == 12);
-        tRes.tested("getMonths()", res);
+        Assert.assertTrue("getMonths()", months.length == 12);
     }
 
     /**
     * Test calls the method, then result is checked. <p>
     * Has <b> OK </b> status if length of array, returned by the method is 7.
     */
+    @Test
     public void _getDays() {
-        boolean res = true;
         CalendarItem[] Days = oObj.getDays();
-
-        res &= (Days.length == 7);
-        tRes.tested("getDays()", res);
+        Assert.assertTrue("getDays()", Days.length == 7);
     }
 
     /**
     * After loading calendar, test calls the method, then result is checked.<p>
     * Has <b> OK </b> status if length of string, returned by the method is 3.
     */
+    @Test
     public void _getDisplayName() {
-        boolean res = true;
-
-        oObj.loadCalendar(calendars[0][0],installed_locales[0]);
+        CalendarData data = getAllCalendars();
+        oObj.loadCalendar(data.calendars[0][0],installed_locales[0]);
         String DisplayName = oObj.getDisplayName(CalendarDisplayIndex.MONTH,
             newValue, (short) 0);
-        res &= (DisplayName.length() == 3);
-        tRes.tested("getDisplayName()", res);
+        Assert.assertTrue("getDisplayName()", DisplayName.length() == 3);
     }
 
 
@@ -533,16 +484,13 @@ public class _XCalendar extends MultiMethodTest {
     * Has <b> OK </b> status if the method returns true when valid month is
     * set, and if the method returns false when set month is not valid.
     */
+    @Test
     public void _isValid() {
-        boolean res = true;
-        
         oObj.loadDefaultCalendar(installed_locales[0]);
         oObj.setValue(CalendarFieldIndex.MONTH, (short) 37);
-        res &= !oObj.isValid();
+        Assert.assertTrue(!oObj.isValid());
         oObj.setValue(CalendarFieldIndex.MONTH, (short) 10);
-        res &= oObj.isValid();
-
-        tRes.tested("isValid()", res);
+        Assert.assertTrue(oObj.isValid());
     }
 
     /**
diff --git a/test/testuno/source/api/i18n/XCharacterClassificationTest.java 
b/test/testuno/source/api/i18n/XCharacterClassificationTest.java
index 427f36cbb0..507a6c53f8 100644
--- a/test/testuno/source/api/i18n/XCharacterClassificationTest.java
+++ b/test/testuno/source/api/i18n/XCharacterClassificationTest.java
@@ -21,15 +21,22 @@
 
 
 
-package ifc.i18n;
-
-import lib.MultiMethodTest;
+package api.i18n;
 
 import com.sun.star.i18n.KParseTokens;
 import com.sun.star.i18n.KParseType;
 import com.sun.star.i18n.ParseResult;
 import com.sun.star.i18n.XCharacterClassification;
 import com.sun.star.lang.Locale;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openoffice.test.uno.UnoApp;
 
 /**
  * Testing <code>com.sun.star.i18n.XCharacterClassification</code>
@@ -49,7 +56,10 @@ import com.sun.star.lang.Locale;
  * Test is <b> NOT </b> multithread compliant. <p>
  * @see com.sun.star.i18n.XCharacterClassification
  */
-public class _XCharacterClassification extends MultiMethodTest {
+public class XCharacterClassificationTest {
+    private static final UnoApp app = new UnoApp();
+
+    private XComponentContext xContext = null;
     public XCharacterClassification oObj = null;
     public String[] languages = new 
String[]{"de","en","es","fr","ja","ko","zh"};
     public String[] countries = new 
String[]{"DE","US","ES","FR","JP","KR","CN"};
@@ -97,6 +107,28 @@ public class _XCharacterClassification extends 
MultiMethodTest {
         
"U_CJK_COMPATIBILITY_FORMS","U_SMALL_FORM_VARIANTS","U_ARABIC_PRESENTATION_FORMS_B",
         
"U_SPECIALS","U_HALFWIDTH_AND_FULLWIDTH_FORMS","U_CHAR_SCRIPT_COUNT","U_NO_SCRIPT"};
 
+    // setup and close connections
+    @BeforeClass
+    public static void setUpConnection() throws Exception
+    {
+        app.start();
+    }
+
+    @AfterClass
+    public static void tearDownConnection() throws InterruptedException, 
com.sun.star.uno.Exception
+    {
+        app.close();
+    }
+
+    @Before
+    public void before() throws Exception {
+        xContext = app.getComponentContext();
+        oObj = UnoRuntime.queryInterface(
+            XCharacterClassification.class,
+            
xContext.getServiceManager().createInstanceWithContext("com.sun.star.i18n.CharacterClassification",
 xContext)
+        );
+    }
+
     /**
     * Test calls the method for different locales. Then each result is compared
     * with a string, converted to a upper case using
@@ -104,6 +136,7 @@ public class _XCharacterClassification extends 
MultiMethodTest {
     * Has <b> OK </b> status if string, returned by the method is equal to
     * a string that is returned by String.toUpperCase() for all locales.
     */
+    @Test
     public void _toUpper() {
         boolean res = true;
         char[] characters = new char[]{586,65,97,498,721,4588,772,8413,3404};
@@ -117,13 +150,13 @@ public class _XCharacterClassification extends 
MultiMethodTest {
                 new java.util.Locale(languages[i], countries[i]));
             res &= get.equals(exp);
             if (!res) {
-                log.println("FAILED for: language=" + languages[i] +
+                System.out.println("FAILED for: language=" + languages[i] +
                     " ; country=" + countries[i]);
-                log.println("Expected: " + exp);
-                log.println("Gained : " + get);
+                System.out.println("Expected: " + exp);
+                System.out.println("Gained : " + get);
             }
         }
-        tRes.tested("toUpper()", res);
+        Assert.assertTrue("toUpper()", res);
     }
 
     /**
@@ -133,6 +166,7 @@ public class _XCharacterClassification extends 
MultiMethodTest {
     * Has <b> OK </b> status if string, returned by the method is equal to
     * a string that is returned by String.toLowerCase() for all locales.
     */
+    @Test
     public void _toLower() {
         boolean res = true;
         char[] characters = new char[]{586,65,97,498,721,4588,772,8413,3404};
@@ -146,13 +180,13 @@ public class _XCharacterClassification extends 
MultiMethodTest {
                 new java.util.Locale(languages[i],countries[i]));
             res &= get.equals(exp);
             if (!res) {
-                log.println("FAILED for: language=" + languages[i]
+                System.out.println("FAILED for: language=" + languages[i]
                     + " ; country=" + countries[i]);
-                log.println("Expected: " + exp);
-                log.println("Gained : " + get);
+                System.out.println("Expected: " + exp);
+                System.out.println("Gained : " + get);
             }
         }
-        tRes.tested("toLower()", res);
+        Assert.assertTrue("toLower()", res);
     }
 
     /**
@@ -162,6 +196,7 @@ public class _XCharacterClassification extends 
MultiMethodTest {
     * Has <b> OK </b> status if string, returned by the method is equal to
     * a string that was converted using Character.toTitleCase() for all 
locales.
     */
+    @Test
     public void _toTitle() {
         boolean res = true;
         String toCheck = new String(new char[]{8112});
@@ -174,13 +209,13 @@ public class _XCharacterClassification extends 
MultiMethodTest {
                 new char[]{Character.toTitleCase(toCheck.toCharArray()[0])});
             res &= get.equals(exp);
             if (!res) {
-                log.println("FAILED for: language=" + languages[i]
+                System.out.println("FAILED for: language=" + languages[i]
                     + " ; country=" + countries[i]);
-                log.println("Expected: " + exp);
-                log.println("Gained : " + get);
+                System.out.println("Expected: " + exp);
+                System.out.println("Gained : " + get);
             }
         }
-        tRes.tested("toTitle()", res);
+        Assert.assertTrue("toTitle()", res);
     }
 
     /**
@@ -192,6 +227,7 @@ public class _XCharacterClassification extends 
MultiMethodTest {
     * is equal to an element number.<p>
     * @see com.sun.star.i18n.CharType
     */
+    @Test
     public void _getType() {
         boolean res = true;
         char[] characters = new char[]{586,65,97,498,721,4588,772,8413,3404,
@@ -206,12 +242,12 @@ public class _XCharacterClassification extends 
MultiMethodTest {
             int get = oObj.getType(toCheck, i);
             res &= (charstyles_office[get] == charstyles_office[i]);
             if (!res) {
-                log.println("Code :" + Integer.toHexString(charsInt[i]));
-                log.println("Gained: " + charstyles_office[get]);
-                log.println("Expected : " + charstyles_office[i]);
+                System.out.println("Code :" + 
Integer.toHexString(charsInt[i]));
+                System.out.println("Gained: " + charstyles_office[get]);
+                System.out.println("Expected : " + charstyles_office[i]);
             }
         }
-        tRes.tested("getType()", res);
+        Assert.assertTrue("getType()", res);
     }
 
     /**
@@ -220,6 +256,7 @@ public class _XCharacterClassification extends 
MultiMethodTest {
     * Has <b> OK </b> status if the method returns type, expected for a given
     * character and locale.
     */
+    @Test
     public void _getCharacterType() {
         boolean res = true;
         String toCheck = "Ab0)";
@@ -230,15 +267,15 @@ public class _XCharacterClassification extends 
MultiMethodTest {
                 int get = oObj.getCharacterType(toCheck, i, getLocale(j));
                 res &= (get == expected[i]);
                 if (!res) {
-                    log.println("FAILED for: language=" + languages[j] +
+                    System.out.println("FAILED for: language=" + languages[j] +
                         " ; country=" + countries[j]);
-                    log.println("Sysmbol :" + toCheck.toCharArray()[i]);
-                    log.println("Gained: " + get);
-                    log.println("Expected : " + expected[i]);
+                    System.out.println("Sysmbol :" + toCheck.toCharArray()[i]);
+                    System.out.println("Gained: " + get);
+                    System.out.println("Expected : " + expected[i]);
                 }
             }
         }
-        tRes.tested("getCharacterType()", res);
+        Assert.assertTrue("getCharacterType()", res);
     }
 
     /**
@@ -247,6 +284,7 @@ public class _XCharacterClassification extends 
MultiMethodTest {
     * Has <b> OK </b> status if the method returns type, expected for a given
     * string and locale.
     */
+    @Test
     public void _getStringType() {
         boolean res = true;
         String[] toCheck = new String[]{"01234","AAAAA","bbbbb","AA()bb"};
@@ -258,14 +296,14 @@ public class _XCharacterClassification extends 
MultiMethodTest {
                     toCheck[j].length(), getLocale(i));
                 res &= (get == exp[j]);
                 if (!res) {
-                    log.println("FAILED for: language=" + languages[i] +
+                    System.out.println("FAILED for: language=" + languages[i] +
                         " ; country=" + countries[i]);
-                    log.println("Expected: " + exp[j]);
-                    log.println("Gained : " + get);
+                    System.out.println("Expected: " + exp[j]);
+                    System.out.println("Gained : " + get);
                 }
             }
         }
-        tRes.tested("getStringType()", res);
+        Assert.assertTrue("getStringType()", res);
     }
 
     /**
@@ -276,6 +314,7 @@ public class _XCharacterClassification extends 
MultiMethodTest {
     * Has <b> OK </b> status if the method returns direction, that's equal to
     * a symbol position in the string.
     */
+    @Test
     public void _getCharacterDirection() {
         boolean res = true;
         String toCheck = new String(new char[]{65,1470,48,47,35,1632,44,10,
@@ -284,12 +323,12 @@ public class _XCharacterClassification extends 
MultiMethodTest {
             short get = oObj.getCharacterDirection(toCheck, i);
             res &= (get == i);
             if (!res) {
-                log.println("Code :" + toCheck.toCharArray()[i]);
-                log.println("Gained: " + get);
-                log.println("Expected: " + i);
+                System.out.println("Code :" + toCheck.toCharArray()[i]);
+                System.out.println("Gained: " + get);
+                System.out.println("Expected: " + i);
             }
         }
-        tRes.tested("getCharacterDirection()", res);
+        Assert.assertTrue("getCharacterDirection()", res);
     }
 
     /**
@@ -303,6 +342,7 @@ public class _XCharacterClassification extends 
MultiMethodTest {
     * since it hasn't the right neighborhood.<p>
     * @see "http://ppewww.ph.gla.ac.uk/~flavell/unicode/unidata.html";
     */
+    @Test
     public void _getScript() {
         boolean res = true;
         char[] characters = new 
char[]{65,128,256,384,592,750,773,924,1030,1331,1448,
@@ -328,13 +368,13 @@ public class _XCharacterClassification extends 
MultiMethodTest {
             //neighborhood
             if (toCheck.substring(i, i + 1).hashCode() == 55296) res = true;
             if (!res) {
-                log.println("-- " + toCheck.substring(i, i + 1).hashCode());
-                log.println("Code: " + Integer.toHexString(charsInt[i]));
-                log.println("Gained: " + unicode_script[get]);
-                log.println("Expected: " + unicode_script[i]);
+                System.out.println("-- " + toCheck.substring(i, i + 
1).hashCode());
+                System.out.println("Code: " + 
Integer.toHexString(charsInt[i]));
+                System.out.println("Gained: " + unicode_script[get]);
+                System.out.println("Expected: " + unicode_script[i]);
             }
         }
-        tRes.tested("getScript()", res);
+        Assert.assertTrue("getScript()", res);
     }
 
     /**
@@ -344,6 +384,7 @@ public class _XCharacterClassification extends 
MultiMethodTest {
     * Has <b> OK </b> status if the method returns right results all three
     * times.
     */
+    @Test
     public void _parseAnyToken() {
         int nStartFlags = KParseTokens.ANY_ALPHA | KParseTokens.ASC_UNDERSCORE;
         int nContFlags = KParseTokens.ANY_ALNUM | KParseTokens.ASC_UNDERSCORE
@@ -369,7 +410,7 @@ public class _XCharacterClassification extends 
MultiMethodTest {
                   && (pRes.TokenType==1)
                   && (pRes.Value==0.0) );
         }
-        tRes.tested("parseAnyToken()", res);
+        Assert.assertTrue("parseAnyToken()", res);
     }
 
     /**
@@ -378,6 +419,7 @@ public class _XCharacterClassification extends 
MultiMethodTest {
     * checking result after every call. <p>
     * Has <b> OK </b> status if the method returns right results.
     */
+    @Test
     public void _parsePredefinedToken() {
         int nStartFlags = KParseTokens.ANY_ALPHA | KParseTokens.ASC_UNDERSCORE;
         int nContFlags = nStartFlags;
@@ -395,7 +437,7 @@ public class _XCharacterClassification extends 
MultiMethodTest {
                   && (pRes.TokenType==4)
                   && (pRes.Value==0.0) );
         }
-        tRes.tested("parsePredefinedToken()", res);
+        Assert.assertTrue("parsePredefinedToken()", res);
     }
 
 
diff --git a/test/testuno/source/api/i18n/XCollatorTest.java 
b/test/testuno/source/api/i18n/XCollatorTest.java
index dbeea9ee6f..8e82411513 100644
--- a/test/testuno/source/api/i18n/XCollatorTest.java
+++ b/test/testuno/source/api/i18n/XCollatorTest.java
@@ -21,15 +21,21 @@
 
 
 
-package ifc.i18n;
+package api.i18n;
 
 import java.text.Collator;
 
-import lib.MultiMethodTest;
-
 import com.sun.star.i18n.CollatorOptions;
 import com.sun.star.i18n.XCollator;
 import com.sun.star.lang.Locale;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openoffice.test.uno.UnoApp;
 
 /**
 * Testing <code>com.sun.star.i18n.XCollator</code>
@@ -46,26 +52,52 @@ import com.sun.star.lang.Locale;
 * Test is <b> NOT </b> multithread compliant. <p>
 * @see com.sun.star.i18n.XCollator
 */
-public class _XCollator extends MultiMethodTest {
-    public XCollator oObj = null;
+public class XCollatorTest {
+    private static final UnoApp app = new UnoApp();
+
+    private XComponentContext xContext = null;
+    private XCollator oObj = null;
     private String[] alg = null ;
     private int[] opt = null ;
     Locale loc = new Locale("en", "EN", "");
 
+    // setup and close connections
+    @BeforeClass
+    public static void setUpConnection() throws Exception
+    {
+        app.start();
+    }
+
+    @AfterClass
+    public static void tearDownConnection() throws InterruptedException, 
com.sun.star.uno.Exception
+    {
+        app.close();
+    }
+
+    @Before
+    public void before() throws Exception, java.lang.Exception
+    {
+        xContext = app.getComponentContext();
+        final Object object = 
xContext.getServiceManager().createInstanceWithContext("com.sun.star.i18n.Collator",
 xContext);
+        oObj = UnoRuntime.queryInterface(XCollator.class, object);
+        alg = oObj.listCollatorAlgorithms(loc);
+    }
+
     /**
     * Just retrieves a list of algorithms. <p>
     * Has <b>OK</b> status if non-zero length array returned.
     */
+    @Test
     public void _listCollatorAlgorithms() {
-        alg = oObj.listCollatorAlgorithms(loc) ;
-        log.println("Collator algorithms :");
-        if (alg != null) {
+        String[] algorithms = oObj.listCollatorAlgorithms(loc) ;
+        System.out.println("Collator algorithms :");
+        if (algorithms != null) {
             for (int i = 0; i < alg.length; i++) {
-                log.println("  '" + alg[i] + "'") ;
+                System.out.println("  '" + algorithms[i] + "'") ;
             }
-            tRes.tested("listCollatorAlgorithms()", alg.length > 0) ;
+            Assert.assertTrue("listCollatorAlgorithms()", algorithms.length > 
0) ;
         } else {
-            tRes.tested("listCollatorAlgorithms()", false) ;
+            Assert.fail("listCollatorAlgorithms()");
         }
     }
 
@@ -78,17 +110,17 @@ public class _XCollator extends MultiMethodTest {
     *    algorithm name. </li>
     * </ul>
     */
+    @Test
     public void _listCollatorOptions() {
-        requiredMethod("listCollatorAlgorithms()") ;
         opt = oObj.listCollatorOptions(alg[0]) ;
-        log.println("Collator '" + alg[0] + "' options :");
+        System.out.println("Collator '" + alg[0] + "' options :");
         if (opt != null) {
             for (int i = 0; i < opt.length; i++) {
-                log.println("  " + opt[i]) ;
+                System.out.println("  " + opt[i]) ;
             }
-            tRes.tested("listCollatorOptions()", true) ;
+            Assert.assertTrue("listCollatorOptions()", true) ;
         } else {
-            tRes.tested("listCollatorOptions()", false) ;
+            Assert.fail("listCollatorOptions()") ;
         }
     }
 
@@ -97,13 +129,14 @@ public class _XCollator extends MultiMethodTest {
     * compares strings.<p>
     * Has <b>OK</b> status if compareString() returned correct values.
     */
+    @Test
     public void _loadDefaultCollator() {
         oObj.loadDefaultCollator(loc, 0);
         boolean res = oObj.compareString("A", "a") != 0;
         oObj.loadDefaultCollator(loc,
             CollatorOptions.CollatorOptions_IGNORE_CASE);
         res &= oObj.compareString("a", "A") == 0;
-        tRes.tested("loadDefaultCollator()", res) ;
+        Assert.assertTrue("loadDefaultCollator()", res) ;
     }
 
     /**
@@ -116,14 +149,14 @@ public class _XCollator extends MultiMethodTest {
     *    algorithm name. </li>
     * </ul>
     */
+    @Test
     public void _loadCollatorAlgorithm() {
-        requiredMethod("listCollatorAlgorithms()");
         oObj.loadCollatorAlgorithm(alg[0], loc,
             CollatorOptions.CollatorOptions_IGNORE_CASE);
         boolean res = oObj.compareString("A", "a") == 0;
         oObj.loadCollatorAlgorithm(alg[0], loc, 0);
         res &= oObj.compareString("a", "A") != 0;
-        tRes.tested("loadCollatorAlgorithm()", res);
+        Assert.assertTrue("loadCollatorAlgorithm()", res);
     }
 
     /**
@@ -136,15 +169,15 @@ public class _XCollator extends MultiMethodTest {
     *    algorithm name. </li>
     * </ul>
     */
+    @Test
     public void _loadCollatorAlgorithmWithEndUserOption() {
-        requiredMethod("listCollatorAlgorithms()");
         oObj.loadCollatorAlgorithmWithEndUserOption(alg[0], loc,
             new int[] {0});
         boolean res = oObj.compareString("A", "a") != 0;
         oObj.loadCollatorAlgorithmWithEndUserOption(alg[0], loc,
             new int[] {CollatorOptions.CollatorOptions_IGNORE_CASE});
         res = oObj.compareString("A", "a") == 0;
-        tRes.tested("loadCollatorAlgorithmWithEndUserOption()", res);
+        Assert.assertTrue("loadCollatorAlgorithmWithEndUserOption()", res);
     }
 
     /**
@@ -158,12 +191,13 @@ public class _XCollator extends MultiMethodTest {
     * of two equal strings returns 0. The such comparing is performed
     * for one character strings.
     */
+    @Test
     public void _compareSubstring() {
         boolean result = true ;
         char[] chars = new char[2] ;
         Collator col = null ;
 
-        log.println(" #### Testing English locale ####") ;
+        System.out.println(" #### Testing English locale ####") ;
         oObj.loadDefaultCollator(loc, 0) ;
         col = Collator.getInstance(new java.util.Locale("en", "EN")) ;
         for (char ch = 0x0020; ch < 0x007F; ch ++) {
@@ -171,7 +205,7 @@ public class _XCollator extends MultiMethodTest {
             result &= testCompareSubstring(chars, col) ;
         }
 
-        log.println(" #### Testing Russian locale ####") ;
+        System.out.println(" #### Testing Russian locale ####") ;
         oObj.loadDefaultCollator(
             new com.sun.star.lang.Locale("ru", "RU", ""), 0) ;
         col = Collator.getInstance(new java.util.Locale("ru", "RU")) ;
@@ -180,7 +214,7 @@ public class _XCollator extends MultiMethodTest {
             result &= testCompareSubstring(chars, col) ;
         }
 
-        log.println(" #### Testing Japan locale ####") ;
+        System.out.println(" #### Testing Japan locale ####") ;
         oObj.loadDefaultCollator(
             new com.sun.star.lang.Locale("ja", "JP", ""), 0) ;
         col = Collator.getInstance(new java.util.Locale("ja", "JP")) ;
@@ -189,7 +223,7 @@ public class _XCollator extends MultiMethodTest {
             result &= testCompareSubstring(chars, col) ;
         }
 
-        log.println(" #### Testing China locale ####") ;
+        System.out.println(" #### Testing China locale ####") ;
         oObj.loadDefaultCollator(new Locale("zh", "CN", ""), 0) ;
         col = Collator.getInstance(new java.util.Locale("zh", "CN")) ;
         for (char ch = 0x4E00; ch < 0x4EFD; ch ++) {
@@ -197,7 +231,7 @@ public class _XCollator extends MultiMethodTest {
             result &= testCompareSubstring(chars, col) ;
         }
 
-        log.println(" #### Testing Korean locale ####") ;
+        System.out.println(" #### Testing Korean locale ####") ;
         oObj.loadDefaultCollator(new Locale("ko", "KR", ""), 0) ;
         col = Collator.getInstance(new java.util.Locale("ko", "KR")) ;
         for (char ch = 0x4E00; ch < 0x4EFD; ch ++) {
@@ -205,7 +239,7 @@ public class _XCollator extends MultiMethodTest {
             result &= testCompareSubstring(chars, col) ;
         }
 
-        tRes.tested("compareSubstring()", result) ;
+        Assert.assertTrue("compareSubstring()", result) ;
     }
 
     /**
@@ -219,11 +253,12 @@ public class _XCollator extends MultiMethodTest {
     * of two equal strings returns 0. The such comparing is performed
     * for one character strings.
     */
+    @Test
     public void _compareString() {
         boolean result = true ;
         char[] chars = new char[2] ;
         Collator col = null ;
-        log.println(" #### Testing English locale ####") ;
+        System.out.println(" #### Testing English locale ####") ;
         oObj.loadDefaultCollator(
             new com.sun.star.lang.Locale("en", "EN", ""), 0) ;
         col = Collator.getInstance(new java.util.Locale("en", "EN")) ;
@@ -232,7 +267,7 @@ public class _XCollator extends MultiMethodTest {
             result &= testCompareString(chars, col) ;
         }
 
-        log.println(" #### Testing Russian locale ####") ;
+        System.out.println(" #### Testing Russian locale ####") ;
         oObj.loadDefaultCollator(
             new com.sun.star.lang.Locale("ru", "RU", ""), 0) ;
         col = Collator.getInstance(new java.util.Locale("ru", "RU")) ;
@@ -241,7 +276,7 @@ public class _XCollator extends MultiMethodTest {
             result &= testCompareString(chars, col) ;
         }
 
-        log.println(" #### Testing Japan locale ####") ;
+        System.out.println(" #### Testing Japan locale ####") ;
         oObj.loadDefaultCollator(
             new com.sun.star.lang.Locale("ja", "JP", ""), 0) ;
         col = Collator.getInstance(new java.util.Locale("ja", "JP")) ;
@@ -250,7 +285,7 @@ public class _XCollator extends MultiMethodTest {
             result &= testCompareString(chars, col) ;
         }
 
-        log.println(" #### Testing China locale ####") ;
+        System.out.println(" #### Testing China locale ####") ;
         oObj.loadDefaultCollator(new Locale("zh", "CN", ""), 0) ;
         col = Collator.getInstance(new java.util.Locale("zh", "CN")) ;
         for (char ch = 0x4E00; ch < 0x4EFD; ch ++) {
@@ -258,7 +293,7 @@ public class _XCollator extends MultiMethodTest {
             result &= testCompareString(chars, col) ;
         }
 
-        log.println(" #### Testing Korean locale ####") ;
+        System.out.println(" #### Testing Korean locale ####") ;
         oObj.loadDefaultCollator(new Locale("ko", "KR", ""), 0) ;
         col = Collator.getInstance(new java.util.Locale("ko", "KR")) ;
         for (char ch = 0x4E00; ch < 0x4EFD; ch ++) {
@@ -266,10 +301,9 @@ public class _XCollator extends MultiMethodTest {
             result &= testCompareString(chars, col) ;
         }
 
-        tRes.tested("compareString()", result) ;
+        Assert.assertTrue("compareString()", result) ;
     }
 
-
     /**
     * Testing compareString() method. At first method is testing single chars
     * comparing, then strings comparing.
@@ -347,12 +381,11 @@ public class _XCollator extends MultiMethodTest {
         }
 
         if (!result) {
-            log.println(msg) ;
+            System.out.println(msg) ;
         }
         return result ;
     }
 
-
     /**
     * Testing compareSubstring() method. Method is testing substrings 
comparing.
     * @param locChar sequence of at list two characters of a given locale
@@ -402,12 +435,11 @@ public class _XCollator extends MultiMethodTest {
         }
 
         if (!result) {
-            log.println(msg) ;
+            System.out.println(msg) ;
         }
         return result ;
     }
 
-
     /**
     * Transforms string to unicode hex codes.
     * @param str String to be transformed
diff --git a/test/testuno/source/api/i18n/XExtendedCalendarTest.java 
b/test/testuno/source/api/i18n/XExtendedCalendarTest.java
index 34f5b56603..bb9f24f482 100644
--- a/test/testuno/source/api/i18n/XExtendedCalendarTest.java
+++ b/test/testuno/source/api/i18n/XExtendedCalendarTest.java
@@ -20,7 +20,7 @@
  *************************************************************/
 
 
-package ifc.i18n;
+package api.i18n;
 
 import com.sun.star.i18n.CalendarDisplayCode;
 import com.sun.star.i18n.NativeNumberMode;
@@ -29,32 +29,59 @@ import com.sun.star.i18n.XLocaleData;
 import com.sun.star.lang.Locale;
 import com.sun.star.lang.XMultiServiceFactory;
 import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Assert;
+import org.junit.Test;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
-import lib.MultiMethodTest;
+import org.openoffice.test.uno.UnoApp;
+
 
 /**
  *
  */
-public class _XExtendedCalendar extends MultiMethodTest {
+public class XExtendedCalendarTest {
+    private static final UnoApp app = new UnoApp();
+
+    private XComponentContext xContext = null;
     public XExtendedCalendar oObj = null;
     boolean useUSENLocale = false;
+
+    // setup and close connections
+    @BeforeClass
+    public static void setUpConnection() throws Exception
+    {
+        app.start();
+    }
+
+    @AfterClass
+    public static void tearDownConnection() throws InterruptedException, 
com.sun.star.uno.Exception
+    {
+        app.close();
+    }
+
     /**
      * Load a calendar
      */
-    public void before() {
+    @Before
+    public void before() throws Exception {
+        xContext = app.getComponentContext();
         Locale[] installed_locales = null;
         XLocaleData locData = null;
-        try {
-            locData = (XLocaleData) UnoRuntime.queryInterface(
-                XLocaleData.class,
-                    ((XMultiServiceFactory)tParam.getMSF()).createInstance(
-                    "com.sun.star.i18n.LocaleData"));
-        } catch (com.sun.star.uno.Exception e) {
-
-        }
+        locData = UnoRuntime.queryInterface(
+            XLocaleData.class,
+            
xContext.getServiceManager().createInstanceWithContext("com.sun.star.i18n.LocaleData",
 xContext)
+        );
+        oObj = UnoRuntime.queryInterface(
+            XExtendedCalendar.class,
+            
xContext.getServiceManager().createInstanceWithContext("com.sun.star.i18n.LocaleCalendar",
 xContext)
+        );
         installed_locales = locData.getAllInstalledLocaleNames();
         // use first Locale as fallback, if US-English is not found
         Locale lo = installed_locales[0];
@@ -66,11 +93,11 @@ public class _XExtendedCalendar extends MultiMethodTest {
                 useUSENLocale = true;
             }
         }
-        log.println("Choose Locale: '" + lo.Language + "', '" + lo.Country + 
"'");
+        System.out.println("Choose Locale: '" + lo.Language + "', '" + 
lo.Country + "'");
         oObj.loadDefaultCalendar(lo);
     }
     
-    
+    @Test    
     public void _getDisplayString() {
         // against regression: the current state is the right one.
         boolean result = true;
@@ -113,18 +140,18 @@ public class _XExtendedCalendar extends MultiMethodTest {
             if (useUSENLocale) {
                 locResult = displayString[i].equals(expectedStringResult[i]);
                 if (!locResult)
-                    log.println("getDisplayString() result " + i + ": '" + 
displayString[i] 
+                    System.out.println("getDisplayString() result " + i + ": 
'" + displayString[i] 
                                         + "', expected: '" + 
expectedStringResult[i] + "'");
                 result &= locResult;
             }
             else { // no defaults for other locales, just expect a String
                 locResult &= displayString[i] != null;
                 if (!locResult)
-                    log.println("getDisplayString() result " + i + " was 
'null'"); 
+                    System.out.println("getDisplayString() result " + i + " 
was 'null'"); 
                 result &= locResult;
             }
         }
-        tRes.tested("getDisplayString()", result);
+        Assert.assertTrue("getDisplayString()", result);
     }
     
     private SimpleDateFormat getSDF(String format){
diff --git a/test/testuno/source/api/i18n/XExtendedIndexEntrySupplierTest.java 
b/test/testuno/source/api/i18n/XExtendedIndexEntrySupplierTest.java
index 40214c846a..a55cc561d0 100644
--- a/test/testuno/source/api/i18n/XExtendedIndexEntrySupplierTest.java
+++ b/test/testuno/source/api/i18n/XExtendedIndexEntrySupplierTest.java
@@ -20,24 +20,58 @@
  *************************************************************/
 
 
-package ifc.i18n;
+package api.i18n;
 
 import com.sun.star.i18n.CollatorOptions;
 import com.sun.star.i18n.XExtendedIndexEntrySupplier;
 import com.sun.star.lang.Locale;
-
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openoffice.test.uno.UnoApp;
 import java.util.HashMap;
 
-import lib.MultiMethodTest;
 
+public class XExtendedIndexEntrySupplierTest {
+    private static final UnoApp app = new UnoApp();
 
-public class _XExtendedIndexEntrySupplier extends MultiMethodTest {
+    private XComponentContext xContext = null;
     public XExtendedIndexEntrySupplier oObj;
     protected Locale[] locales = null;
-    protected HashMap algorithms = new HashMap();
+    protected HashMap<Integer,String[]> algorithms = new 
HashMap<Integer,String[]>();
+
+    // setup and close connections
+    @BeforeClass
+    public static void setUpConnection() throws Exception
+    {
+        app.start();
+    }
 
+    @AfterClass
+    public static void tearDownConnection() throws InterruptedException, 
com.sun.star.uno.Exception
+    {
+        app.close();
+    }
+
+    @Before
+    public void before() throws Exception {
+        xContext = app.getComponentContext();
+        oObj = UnoRuntime.queryInterface(
+            XExtendedIndexEntrySupplier.class,
+            
xContext.getServiceManager().createInstanceWithContext("com.sun.star.i18n.IndexEntrySupplier",
 xContext)
+        );
+        locales = oObj.getLocaleList();
+        algorithms = getAlgorithmList();
+    }
+
+    @Test
     public void _compareIndexEntry() {
-        requiredMethod("getIndexKey()");
+        getIndexKey();
         Locale locale = new Locale("zh", "CN", "");
         String val1 = new String(new 
char[]{UnicodeStringPair.getUnicodeValue(0), 
UnicodeStringPair.getUnicodeValue(1)});
         String val2 = new String(new 
char[]{UnicodeStringPair.getUnicodeValue(1), 
UnicodeStringPair.getUnicodeValue(0)});
@@ -45,22 +79,21 @@ public class _XExtendedIndexEntrySupplier extends 
MultiMethodTest {
         short result2 = oObj.compareIndexEntry(val1, "", locale, val2, "", 
locale);
         short result3 = oObj.compareIndexEntry(val2, "", locale, val1, "", 
locale);
         
-        tRes.tested("compareIndexEntry()", result1 == 0 && result2 + result3 
== 0);
+        Assert.assertTrue("compareIndexEntry()", result1 == 0 && result2 + 
result3 == 0);
     }
 
     /*
      * gets the list of all algorithms for each listed language
      * is OK if everyone of the returned lists are filled
      */
+    @Test
     public void _getAlgorithmList() {
-        requiredMethod("getLocaleList()");
-
+        HashMap<Integer, String[]> algorithms = getAlgorithmList();
         boolean result = true;
         boolean locResult = false; 
         
         for (int i = 0; i < locales.length; i++) {
-            String[] algNames = oObj.getAlgorithmList(locales[i]);
-            algorithms.put(new Integer(i), algNames);
+            String[] algNames = algorithms.get(i);
 
             locResult = algNames != null && algNames.length > 0;
             System.out.println("Locale " + i + ": " + 
locales[i].Country+","+locales[i].Language);
@@ -70,52 +103,65 @@ public class _XExtendedIndexEntrySupplier extends 
MultiMethodTest {
             }
             
             if (!locResult) {
-                log.println("No Algorithm found for " + locales[i].Country + 
+                System.out.println("No Algorithm found for " + 
locales[i].Country + 
                             "," + locales[i].Language);
             }
 
             result &= locResult;
         }
 
-        tRes.tested("getAlgorithmList()", result);
+        Assert.assertTrue("getAlgorithmList()", result);
+    }
+
+    private HashMap<Integer, String[]> getAlgorithmList() {
+        HashMap<Integer, String[]> algorithms = new HashMap<Integer, 
String[]>();
+        for (int i = 0; i < locales.length; i++) {
+            String[] algNames = oObj.getAlgorithmList(locales[i]);
+            algorithms.put(i, algNames);
+        }
+        return algorithms;
     }
 
+    @Test
     public void _getIndexKey() {
-        requiredMethod("loadAlgorithm()");
+        Assert.assertTrue("getIndexKey()", getIndexKey());
+    }
+
+    private boolean getIndexKey() {
         char[] characters = new char[] { 19968 };
         String getIndexFor = new String(characters);
         for (int i = 0; i < locales.length; i++) {
-            log.println("Language: " + locales[i].Language);
+            System.out.println("Language: " + locales[i].Language);
 
             for (int j = 0; j < algorithms.size(); j++) {
                 String[] algs = (String[])algorithms.get(new Integer(j));
                 for (int k=0;k<algs.length;k++) {
-                log.println("\t Algorithm :" + 
+                System.out.println("\t Algorithm :" + 
                             algs[k]);
                 oObj.loadAlgorithm(locales[i], algs[k], 
CollatorOptions.CollatorOptions_IGNORE_CASE);
-                log.println("\t\t Get: " + 
+                System.out.println("\t\t Get: " + 
                             oObj.getIndexKey(getIndexFor, "", locales[i]));
                 }
             }
         }
-        tRes.tested("getIndexKey()", true);
+        return true;
     }
 
     /*
      * gets a list of all locales, is OK if this list isn't empty
      */
+    @Test
     public void _getLocaleList() {
-        locales = oObj.getLocaleList();
-        tRes.tested("getLocaleList()", locales.length > 0);
+        // they were fetched in before()
+        Assert.assertTrue("getLocaleList()", locales.length > 0);
     }
 
     /*
      * gets one phonetic candidate for the chinese local
      * is ok if 'yi' is returned as expected.
      */
+    @Test
     public void _getPhoneticCandidate() {
-        requiredMethod("getLocaleList()");
-
         boolean res = true;
 
         Locale loc = new Locale("zh", "CN", "");
@@ -129,14 +175,14 @@ public class _XExtendedIndexEntrySupplier extends 
MultiMethodTest {
             boolean locResult = 
getting.equals(UnicodeStringPair.getExpectedPhoneticString(i));
 
             if (!locResult) {
-                log.println("Char: "+ c[0] + " (" + (int)c[0] + ")");
-                log.println("Expected " + 
UnicodeStringPair.getExpectedPhoneticString(i));
-                log.println("Getting " + getting);
+                System.out.println("Char: "+ c[0] + " (" + (int)c[0] + ")");
+                System.out.println("Expected " + 
UnicodeStringPair.getExpectedPhoneticString(i));
+                System.out.println("Getting " + getting);
             }
 
             res &= locResult;
-       }
-        tRes.tested("getPhoneticCandidate()", res);
+        }
+        Assert.assertTrue("getPhoneticCandidate()", res);
     }
 
     /*
@@ -144,55 +190,53 @@ public class _XExtendedIndexEntrySupplier extends 
MultiMethodTest {
      * Is OK if no exception occurs and the method returns 
      * true for each valid algorithm and false otherwise
      */
+    @Test
     public void _loadAlgorithm() {
-        requiredMethod("getAlgorithmList()");
-
         boolean res = true;
 
         for (int i = 0; i < algorithms.size(); i++) {
             String[] names = (String[]) algorithms.get(new Integer(i));
-            log.println("loading algorithms for " + locales[i].Country + 
+            System.out.println("loading algorithms for " + locales[i].Country 
+ 
                         "," + locales[i].Language);
 
             for (int j = 0; j < names.length; j++) {
-                log.println("\t Loading " + names[j]);
+                System.out.println("\t Loading " + names[j]);
 
                 boolean localres = oObj.loadAlgorithm(locales[i], names[j], 
                                                       
CollatorOptions.CollatorOptions_IGNORE_CASE);
 
                 if (!localres) {
-                    log.println("\t ... didn't work - FAILED");
+                    System.out.println("\t ... didn't work - FAILED");
                 } else {
-                    log.println("\t ... worked - OK");
+                    System.out.println("\t ... worked - OK");
                 }
 
                 res &= localres;
             }
 
-/*            log.println("\tTrying to load 'dummy' algorithm");
+/*            System.out.println("\tTrying to load 'dummy' algorithm");
 
             boolean localres = !oObj.loadAlgorithm(locales[i], "dummy", 
                                                    
CollatorOptions.CollatorOptions_IGNORE_WIDTH);
 
             if (!localres) {
-                log.println("\t ... didn't work as expected - FAILED");
+                System.out.println("\t ... didn't work as expected - FAILED");
             } else {
-                log.println("\t ... worked - OK");
+                System.out.println("\t ... worked - OK");
             }
 
             res &= localres;*/
         }
 
-        tRes.tested("loadAlgorithm()", res);
+        Assert.assertTrue("loadAlgorithm()", res);
     }
 
     /*
      * checks the method usePhoneticEntry(). Only the languages ja, ko and zh 
      * should return true. Has OK state if exactly this is the case.
      */
+    @Test
     public void _usePhoneticEntry() {
-        requiredMethod("getLocaleList()");
-
         boolean res = true;
 
         for (int i = 0; i < locales.length; i++) {
@@ -207,15 +251,15 @@ public class _XExtendedIndexEntrySupplier extends 
MultiMethodTest {
             boolean locResult = oObj.usePhoneticEntry(locales[i]) == expected;
 
             if (!locResult) {
-                log.println("Failure for language " + locales[i].Language);
-                log.println("Expected " + expected);
-                log.println("Getting " + oObj.usePhoneticEntry(locales[i]));
+                System.out.println("Failure for language " + 
locales[i].Language);
+                System.out.println("Expected " + expected);
+                System.out.println("Getting " + 
oObj.usePhoneticEntry(locales[i]));
             }
 
             res &= locResult;
         }
 
-        tRes.tested("usePhoneticEntry()", res);
+        Assert.assertTrue("usePhoneticEntry()", res);
     }
     
     /**
diff --git a/test/testuno/source/api/i18n/XExtendedTransliterationTest.java 
b/test/testuno/source/api/i18n/XExtendedTransliterationTest.java
index 8c023a2da0..200996c928 100644
--- a/test/testuno/source/api/i18n/XExtendedTransliterationTest.java
+++ b/test/testuno/source/api/i18n/XExtendedTransliterationTest.java
@@ -20,28 +20,59 @@
  *************************************************************/
 
 
-package ifc.i18n;
+package api.i18n;
 
 import com.sun.star.i18n.TransliterationModules;
 import com.sun.star.i18n.XExtendedTransliteration;
 import com.sun.star.lang.Locale;
-import lib.MultiMethodTest;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openoffice.test.uno.UnoApp;
 
 /**
  *
  */
-public class _XExtendedTransliteration extends MultiMethodTest {
+public class XExtendedTransliterationTest {
+    private static final UnoApp app = new UnoApp();
+
+    private XComponentContext xContext = null;
     public XExtendedTransliteration oObj = null;
 //    private Locale loc = new Locale("ja", "JP", "") ;
     private Locale loc = new Locale("en", "US", "") ;
-    
-    public void before() {
+
+    // setup and close connections
+    @BeforeClass
+    public static void setUpConnection() throws Exception
+    {
+        app.start();
+    }
+
+    @AfterClass
+    public static void tearDownConnection() throws InterruptedException, 
com.sun.star.uno.Exception
+    {
+        app.close();
+    }
+
+    @Before
+    public void before() throws Exception {
+        xContext = app.getComponentContext();
+        oObj = UnoRuntime.queryInterface(
+            XExtendedTransliteration.class,
+            
xContext.getServiceManager().createInstanceWithContext("com.sun.star.i18n.Transliteration",
 xContext)
+        );
         oObj.loadModule(TransliterationModules.LOWERCASE_UPPERCASE, loc);
     }
     
     /**
      * Check lowercase - uppercase conversion of chars
      */
+    @Test
     public void _transliterateChar2Char() {
         boolean result = true;
         char in = 'a';
@@ -54,9 +85,9 @@ public class _XExtendedTransliteration extends 
MultiMethodTest {
             result &= out == '$';
         }
         catch(com.sun.star.i18n.MultipleCharsOutputException e) {
-            e.printStackTrace((java.io.PrintWriter)log);
+            e.printStackTrace(System.out);
         }
-        tRes.tested("transliterateChar2Char()", result);
+        Assert.assertTrue("transliterateChar2Char()", result);
     }
     
     /**
@@ -71,7 +102,7 @@ public class _XExtendedTransliteration extends 
MultiMethodTest {
         in = '$'; // should not be changed
         out = oObj.transliterateChar2String(in) ;
         result &= out.equals("$");
-        tRes.tested("transliterateChar2String()", result);
+        Assert.assertTrue("transliterateChar2String()", result);
     }
     
     /**
@@ -86,6 +117,6 @@ public class _XExtendedTransliteration extends 
MultiMethodTest {
         in = "$"; // should not be changed
         out = oObj.transliterateString2String(in, 0, 1) ;
         result &= out.equals("$");
-        tRes.tested("transliterateString2String()", result);
+        Assert.assertTrue("transliterateString2String()", result);
     }
 }
diff --git a/test/testuno/source/api/i18n/XIndexEntrySupplierTest.java 
b/test/testuno/source/api/i18n/XIndexEntrySupplierTest.java
index 56d108668b..a12feb086c 100644
--- a/test/testuno/source/api/i18n/XIndexEntrySupplierTest.java
+++ b/test/testuno/source/api/i18n/XIndexEntrySupplierTest.java
@@ -21,12 +21,19 @@
 
 
 
-package ifc.i18n;
-
-import lib.MultiMethodTest;
+package api.i18n;
 
 import com.sun.star.i18n.XIndexEntrySupplier;
 import com.sun.star.lang.Locale;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openoffice.test.uno.UnoApp;
 
 /**
 * Testing <code>com.sun.star.i18n.XIndexEntrySupplier</code>
@@ -38,28 +45,54 @@ import com.sun.star.lang.Locale;
 * Test is <b> NOT </b> multithread compliant. <p>
 * @see com.sun.star.i18n.XIndexEntrySupplier
 */
-public class _XIndexEntrySupplier extends MultiMethodTest {
+public class XIndexEntrySupplierTest {
+    private static final UnoApp app = new UnoApp();
+
+    private XComponentContext xContext = null;
     public XIndexEntrySupplier oObj = null;
     public String[] languages = new 
String[]{"de","en","es","fr","ja","ko","zh"};
     public String[] countries = new 
String[]{"DE","US","ES","FR","JP","KR","CN"};
     public String[] onePage = new String[]{"f.","p."," s."," sv","p.","",""};
     public String[] morePages = new String[]{"ff.","pp."," ss."," 
sv","pp.","",""};
 
+    // setup and close connections
+    @BeforeClass
+    public static void setUpConnection() throws Exception
+    {
+        app.start();
+    }
+
+    @AfterClass
+    public static void tearDownConnection() throws InterruptedException, 
com.sun.star.uno.Exception
+    {
+        app.close();
+    }
+
+    @Before
+    public void before() throws Exception {
+        xContext = app.getComponentContext();
+        oObj = UnoRuntime.queryInterface(
+            XIndexEntrySupplier.class,
+            
xContext.getServiceManager().createInstanceWithContext("com.sun.star.i18n.IndexEntrySupplier",
 xContext)
+        );
+    }
+
     /**
     * Test calls the method, then result is checked. <p>
     * Has <b> OK </b> status if the method returns right index for several
     * locales and word.
     */
+    @Test
     public void _getIndexCharacter() {
         boolean res = true;
-        log.println("getIndexCharacter('chapter', getLocale(i), '')");
+        System.out.println("getIndexCharacter('chapter', getLocale(i), '')");
         for (int i=0; i<7; i++) {
-            log.print("getIndexCharacter('chapter', " + countries[i] + ") :");
+            System.out.print("getIndexCharacter('chapter', " + countries[i] + 
") :");
             String get = oObj.getIndexCharacter("chapter", getLocale(i), "");
-            log.println(get);
+            System.out.println(get);
             res &= get.equals("C");
         }
-        tRes.tested("getIndexCharacter()", res);
+        Assert.assertTrue("getIndexCharacter()", res);
     }
 
     /**
@@ -67,26 +100,27 @@ public class _XIndexEntrySupplier extends MultiMethodTest {
     * for several pages, after every call result is checked. <p>
     * Has <b> OK </b> status if method returns right index for several locales.
     */
+    @Test
     public void _getIndexFollowPageWord() {
         boolean res = true;
 
         for (int i=0; i<7; i++) {
             String get = oObj.getIndexFollowPageWord(true, getLocale(i));
             if (! get.equals(morePages[i]) ) {
-                log.println("Language: " + languages[i]);
-                log.println("Getting: #" + get + "#");
-                log.println("Expected: #" + morePages[i] + "#");
+                System.out.println("Language: " + languages[i]);
+                System.out.println("Getting: #" + get + "#");
+                System.out.println("Expected: #" + morePages[i] + "#");
             }
             res &= get.equals(morePages[i]);
             get = oObj.getIndexFollowPageWord(false,getLocale(i));
             if (! get.equals(onePage[i]) ) {
-                log.println("Language: " + languages[i]);
-                log.println("Getting: #" + get + "#");
-                log.println("Expected: #" + onePage[i] + "#");
+                System.out.println("Language: " + languages[i]);
+                System.out.println("Getting: #" + get + "#");
+                System.out.println("Expected: #" + onePage[i] + "#");
             }
             res &= get.equals(onePage[i]);
         }
-        tRes.tested("getIndexFollowPageWord()", res);
+        Assert.assertTrue("getIndexFollowPageWord()", res);
     }
 
     /**
diff --git a/test/testuno/source/api/i18n/XLocaleDataTest.java 
b/test/testuno/source/api/i18n/XLocaleDataTest.java
index 97e7c1e90b..641c9ab7ad 100644
--- a/test/testuno/source/api/i18n/XLocaleDataTest.java
+++ b/test/testuno/source/api/i18n/XLocaleDataTest.java
@@ -21,9 +21,7 @@
 
 
 
-package ifc.i18n;
-
-import lib.MultiMethodTest;
+package api.i18n;
 
 import com.sun.star.i18n.Calendar;
 import com.sun.star.i18n.Currency;
@@ -34,6 +32,14 @@ import com.sun.star.i18n.LanguageCountryInfo;
 import com.sun.star.i18n.LocaleDataItem;
 import com.sun.star.i18n.XLocaleData;
 import com.sun.star.lang.Locale;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openoffice.test.uno.UnoApp;
 
 /**
 * Testing <code>com.sun.star.i18n.XLocaleData</code>
@@ -55,17 +61,41 @@ import com.sun.star.lang.Locale;
 * Test is <b> NOT </b> multithread compliant. <p>
 * @see com.sun.star.i18n.XLocaleData
 */
-public class _XLocaleData extends MultiMethodTest {
+public class XLocaleDataTest {
+    private static final UnoApp app = new UnoApp();
+
+    private XComponentContext xContext = null;
     public XLocaleData oObj = null;
     public String[] languages = new 
String[]{"de","en","es","fr","ja","ko","ko"};
     public String[] countries = new 
String[]{"DE","US","ES","FR","JP","KR","KR"};
 
+    // setup and close connections
+    @BeforeClass
+    public static void setUpConnection() throws Exception
+    {
+        app.start();
+    }
+
+    @AfterClass
+    public static void tearDownConnection() throws InterruptedException, 
com.sun.star.uno.Exception
+    {
+        app.close();
+    }
+
+    @Before
+    public void before() throws Exception, java.lang.Exception
+    {
+        xContext = app.getComponentContext();
+        final Object object = 
xContext.getServiceManager().createInstanceWithContext("com.sun.star.i18n.LocaleData",
 xContext);
+        oObj = UnoRuntime.queryInterface(XLocaleData.class, object);
+    }
 
     /**
     * Test calls the method, then result is checked. <p>
     * Has <b> OK </b> status if structure, returned by the method includes
     * correct values of fields 'Language' and 'Country' for all given locales.
     */
+    @Test
     public void _getLanguageCountryInfo() {
         boolean res = true;
         LanguageCountryInfo lci = null;
@@ -73,20 +103,20 @@ public class _XLocaleData extends MultiMethodTest {
         for (int i=0;i<7;i++) {
             lci = oObj.getLanguageCountryInfo(getLocale(i));
             /* For debug purposes
-            log.println("Using: language="+languages[i]+" ; 
country="+countries[i]);
-            log.println("Getting: ");
-            log.println("\t Language="+lci.Language);
-            log.println("\t LanguageDefaultName="+lci.LanguageDefaultName);
-            log.println("\t Country="+lci.Country);
-            log.println("\t CountryDefaultName="+lci.CountryDefaultName);
+            System.out.println("Using: language="+languages[i]+" ; 
country="+countries[i]);
+            System.out.println("Getting: ");
+            System.out.println("\t Language="+lci.Language);
+            System.out.println("\t 
LanguageDefaultName="+lci.LanguageDefaultName);
+            System.out.println("\t Country="+lci.Country);
+            System.out.println("\t 
CountryDefaultName="+lci.CountryDefaultName);
             boolean lang = ( lci.Language.equals(languages[i]) );
-            if (!lang) log.println("getting false for language: 
"+lci.LanguageDefaultName);
+            if (!lang) System.out.println("getting false for language: 
"+lci.LanguageDefaultName);
             lang = ( lci.Country.equals(countries[i]) );
-            if (!lang) log.println("getting false for country: 
"+lci.CountryDefaultName);
+            if (!lang) System.out.println("getting false for country: 
"+lci.CountryDefaultName);
             */
             res &= ( ( lci.Language.equals(languages[i]) ) && ( 
lci.Country.equals(countries[i]) ) );
         }
-        tRes.tested("getLanguageCountryInfo()",res);
+        Assert.assertTrue("getLanguageCountryInfo()",res);
     }
 
     /**
@@ -94,6 +124,7 @@ public class _XLocaleData extends MultiMethodTest {
     * Has <b> OK </b> status if structure, returned by the method consists of
     * non empty strings for all given locales.
     */
+    @Test
     public void _getLocaleItem() {
         boolean res = true;
         LocaleDataItem ldi = null;
@@ -124,30 +155,30 @@ public class _XLocaleData extends MultiMethodTest {
 
             if (!locRes) {
                 /* for debugging puposes
-                log.println("FAILED for: language="+languages[i]+" ; 
country="+countries[i]);
-                log.println("Getting: ");
-                log.println("\t DateSeparator="+ldi.dateSeparator);
-                log.println("\t decimalSeparator="+ldi.decimalSeparator);
-                log.println("\t doubleQuotationEnd="+ldi.doubleQuotationEnd);
-                log.println("\t 
doubleQuotationStart="+ldi.doubleQuotationStart);
-                log.println("\t listSeparator="+ldi.listSeparator);
-                log.println("\t 
LongDateDayOfWeekSeparator="+ldi.LongDateDayOfWeekSeparator+"end");
-                log.println("\t 
LongDateDaySeparator="+ldi.LongDateDaySeparator+"end");
-                log.println("\t 
LongDateMonthSeparator="+ldi.LongDateMonthSeparator+"end");
-                log.println("\t 
LongDateYearSeparator="+ldi.LongDateYearSeparator+"end");
-                log.println("\t measurementSystem="+ldi.measurementSystem);
-                log.println("\t quotationEnd="+ldi.quotationEnd);
-                log.println("\t quotationStart="+ldi.quotationStart);
-                log.println("\t thousandSeparator="+ldi.thousandSeparator);
-                log.println("\t time100SecSeparator="+ldi.time100SecSeparator);
-                log.println("\t timeAM="+ldi.timeAM);
-                log.println("\t timePM="+ldi.timePM);
-                log.println("\t timeSeparator="+ldi.timeSeparator);
-                log.println("\t unoID="+ldi.unoID);
+                System.out.println("FAILED for: language="+languages[i]+" ; 
country="+countries[i]);
+                System.out.println("Getting: ");
+                System.out.println("\t DateSeparator="+ldi.dateSeparator);
+                System.out.println("\t 
decimalSeparator="+ldi.decimalSeparator);
+                System.out.println("\t 
doubleQuotationEnd="+ldi.doubleQuotationEnd);
+                System.out.println("\t 
doubleQuotationStart="+ldi.doubleQuotationStart);
+                System.out.println("\t listSeparator="+ldi.listSeparator);
+                System.out.println("\t 
LongDateDayOfWeekSeparator="+ldi.LongDateDayOfWeekSeparator+"end");
+                System.out.println("\t 
LongDateDaySeparator="+ldi.LongDateDaySeparator+"end");
+                System.out.println("\t 
LongDateMonthSeparator="+ldi.LongDateMonthSeparator+"end");
+                System.out.println("\t 
LongDateYearSeparator="+ldi.LongDateYearSeparator+"end");
+                System.out.println("\t 
measurementSystem="+ldi.measurementSystem);
+                System.out.println("\t quotationEnd="+ldi.quotationEnd);
+                System.out.println("\t quotationStart="+ldi.quotationStart);
+                System.out.println("\t 
thousandSeparator="+ldi.thousandSeparator);
+                System.out.println("\t 
time100SecSeparator="+ldi.time100SecSeparator);
+                System.out.println("\t timeAM="+ldi.timeAM);
+                System.out.println("\t timePM="+ldi.timePM);
+                System.out.println("\t timeSeparator="+ldi.timeSeparator);
+                System.out.println("\t unoID="+ldi.unoID);
                  */
             }
         }
-        tRes.tested("getLocaleItem()",res);
+        Assert.assertTrue("getLocaleItem()",res);
     }
 
     /**
@@ -157,6 +188,7 @@ public class _XLocaleData extends MultiMethodTest {
     * correct for all given locales. (boolean method goodCalendar() with a
     * calendar as an argument returns true)
     */
+    @Test
     public void _getAllCalendars() {
         boolean res = true;
         boolean printit = false;
@@ -170,10 +202,10 @@ public class _XLocaleData extends MultiMethodTest {
                 }
                 res &= goodCalendar(calendar[j]);
             }
-            if (printit) log.println("FAILED for: language="+languages[i]+" ; 
country="+countries[i]);
+            if (printit) System.out.println("FAILED for: 
language="+languages[i]+" ; country="+countries[i]);
             printit = false;
         }
-        tRes.tested("getAllCalendars()", res);
+        Assert.assertTrue("getAllCalendars()", res);
     }
 
     /**
@@ -183,6 +215,7 @@ public class _XLocaleData extends MultiMethodTest {
     * correct for all given locales. (boolean method goodCurrency() with a
     * currency as an argument returns true)
     */
+    @Test
     public void _getAllCurrencies() {
         boolean res = true;
         boolean printit = false;
@@ -196,10 +229,10 @@ public class _XLocaleData extends MultiMethodTest {
                 }
                 res &= goodCurrency(currency[j]);
             }
-            if (printit) log.println("FAILED for: language="+languages[i]+" ; 
country="+countries[i]);
+            if (printit) System.out.println("FAILED for: 
language="+languages[i]+" ; country="+countries[i]);
             printit =false;
         }
-        tRes.tested("getAllCurrencies()",res);
+        Assert.assertTrue("getAllCurrencies()",res);
     }
 
     /**
@@ -209,6 +242,7 @@ public class _XLocaleData extends MultiMethodTest {
     * correct for all given locales. (boolean method goodFormat() with a
     * format as an argument returns true)
     */
+    @Test
     public void _getAllFormats() {
         boolean res = true;
         boolean printit = false;
@@ -222,10 +256,10 @@ public class _XLocaleData extends MultiMethodTest {
                 }
                 res &= goodFormat(format[j]);
             }
-            if (printit) log.println("FAILED for: language="+languages[i]+" ; 
country="+countries[i]);
+            if (printit) System.out.println("FAILED for: 
language="+languages[i]+" ; country="+countries[i]);
             printit =false;
         }
-        tRes.tested("getAllFormats()",res);
+        Assert.assertTrue("getAllFormats()",res);
     }
 
     /**
@@ -234,6 +268,7 @@ public class _XLocaleData extends MultiMethodTest {
     * Has <b> OK </b> status if all structs, returned by the method have non
     * empty field 'UnoID' for all given locales.
     */
+    @Test
     public void _getCollatorImplementations() {
         boolean res = true;
         boolean printit = false;
@@ -247,11 +282,11 @@ public class _XLocaleData extends MultiMethodTest {
                 }
                 res &= (!impl[j].unoID.equals(""));
             }
-            if (printit) log.println("FAILED for: language=" + languages[i]
+            if (printit) System.out.println("FAILED for: language=" + 
languages[i]
                 + " ; country=" + countries[i]);
             printit = false;
         }
-        tRes.tested("getCollatorImplementations()", res);
+        Assert.assertTrue("getCollatorImplementations()", res);
     }
 
     /**
@@ -260,6 +295,7 @@ public class _XLocaleData extends MultiMethodTest {
     * Has <b> OK </b> status if all strings, returned by the method are not
     * empty for all given locales.
     */
+    @Test
     public void _getSearchOptions() {
         boolean res = true;
         boolean printit = false;
@@ -273,11 +309,11 @@ public class _XLocaleData extends MultiMethodTest {
                 }
                 res &= (!str.equals(""));
             }
-            if (printit) log.println("FAILED for: language=" + languages[i]
+            if (printit) System.out.println("FAILED for: language=" + 
languages[i]
                 + " ; country=" + countries[i]);
             printit = false;
         }
-        tRes.tested("getSearchOptions()",res);
+        Assert.assertTrue("getSearchOptions()",res);
     }
 
     /**
@@ -286,6 +322,7 @@ public class _XLocaleData extends MultiMethodTest {
     * Has <b> OK </b> status if all strings, returned by the method are not
     * empty for all given locales.
     */
+    @Test
     public void _getCollationOptions() {
         boolean res = true;
         boolean printit = false;
@@ -299,11 +336,11 @@ public class _XLocaleData extends MultiMethodTest {
                 }
                 res &= (!str.equals(""));
             }
-            if (printit) log.println("FAILED for: language=" + languages[i]
+            if (printit) System.out.println("FAILED for: language=" + 
languages[i]
                 + " ; country=" + countries[i]);
             printit = false;
         }
-        tRes.tested("getCollationOptions()", res);
+        Assert.assertTrue("getCollationOptions()", res);
     }
 
     /**
@@ -312,6 +349,7 @@ public class _XLocaleData extends MultiMethodTest {
     * Has <b> OK </b> status if all strings, returned by the method are not
     * empty for all given locales.
     */
+    @Test
     public void _getTransliterations() {
         boolean res = true;
         boolean printit = false;
@@ -325,11 +363,11 @@ public class _XLocaleData extends MultiMethodTest {
                 }
                 res &= (!str.equals(""));
             }
-            if (printit) log.println("FAILED for: language=" + languages[i]
+            if (printit) System.out.println("FAILED for: language=" + 
languages[i]
                 + " ; country=" + countries[i]);
             printit = false;
         }
-        tRes.tested("getTransliterations()", res);
+        Assert.assertTrue("getTransliterations()", res);
     }
 
     /**
@@ -338,6 +376,7 @@ public class _XLocaleData extends MultiMethodTest {
     * Has <b> OK </b> status if the method returns structure with non-empty
     * fields for all given locales.
     */
+    @Test
     public void _getForbiddenCharacters() {
         boolean res = true;
         ForbiddenCharacters fc = null;
@@ -347,10 +386,10 @@ public class _XLocaleData extends MultiMethodTest {
             fc = oObj.getForbiddenCharacters(getLocale(i));
             res &= !( fc.beginLine.equals("") || fc.endLine.equals("") );
             if ( !res ) {
-                log.println("FAILED for: language="+languages[i]+" ; 
country="+countries[i]);
+                System.out.println("FAILED for: language="+languages[i]+" ; 
country="+countries[i]);
             }
         }
-        tRes.tested("getForbiddenCharacters()", res);
+        Assert.assertTrue("getForbiddenCharacters()", res);
     }
 
 
@@ -360,6 +399,7 @@ public class _XLocaleData extends MultiMethodTest {
     * Has <b> OK </b> status if all strings, returned by the method are not
     * empty for all given locales.
     */
+    @Test
     public void _getReservedWord() {
         boolean res = true;
         boolean printit = false;
@@ -373,11 +413,11 @@ public class _XLocaleData extends MultiMethodTest {
                 }
                 res &= (!str.equals(""));
             }
-            if (printit) log.println("FAILED for: language=" + languages[i]
+            if (printit) System.out.println("FAILED for: language=" + 
languages[i]
                 + " ; country=" + countries[i]);
             printit = false;
         }
-        tRes.tested("getReservedWord()", res);
+        Assert.assertTrue("getReservedWord()", res);
     }
 
 
@@ -386,6 +426,7 @@ public class _XLocaleData extends MultiMethodTest {
     * Has <b> OK </b> status if locale sequence, returned by the method 
contains
     * given locales.
     */
+    @Test
     public void _getAllInstalledLocaleNames() {
         boolean res = true;
         Locale[] locs = oObj.getAllInstalledLocaleNames();
@@ -394,7 +435,7 @@ public class _XLocaleData extends MultiMethodTest {
         for (int i=0;i<7;i++) {
             res &= contains(locs, getLocale(i));
         }
-        tRes.tested("getAllInstalledLocaleNames()",res);
+        Assert.assertTrue("getAllInstalledLocaleNames()",res);
     }
 
 
@@ -414,34 +455,34 @@ public class _XLocaleData extends MultiMethodTest {
     public boolean goodCalendar(Calendar calendar) {
         boolean good = true;
         for (int i=0;i<calendar.Days.length;i++) {
-            //log.println("Day "+i+"(AbbrevName): 
"+calendar.Days[i].AbbrevName);
+            //System.out.println("Day "+i+"(AbbrevName): 
"+calendar.Days[i].AbbrevName);
             good &= (! calendar.Days[i].AbbrevName.equals("") );
-            //log.println("Day "+i+"(FullName): "+calendar.Days[i].FullName);
+            //System.out.println("Day "+i+"(FullName): 
"+calendar.Days[i].FullName);
             good &= (! calendar.Days[i].FullName.equals("") );
-            //log.println("Day "+i+"(ID): "+calendar.Days[i].ID);
+            //System.out.println("Day "+i+"(ID): "+calendar.Days[i].ID);
             good &= (! calendar.Days[i].ID.equals("") );
         }
         for (int i=0;i<calendar.Months.length;i++) {
-            //log.println("Day "+i+"(AbbrevName): 
"+calendar.Months[i].AbbrevName);
+            //System.out.println("Day "+i+"(AbbrevName): 
"+calendar.Months[i].AbbrevName);
             good &= (! calendar.Months[i].AbbrevName.equals("") );
-            //log.println("Day "+i+"(FullName): "+calendar.Months[i].FullName);
+            //System.out.println("Day "+i+"(FullName): 
"+calendar.Months[i].FullName);
             good &= (! calendar.Months[i].FullName.equals("") );
-            //log.println("Day "+i+"(ID): "+calendar.Months[i].ID);
+            //System.out.println("Day "+i+"(ID): "+calendar.Months[i].ID);
             good &= (! calendar.Months[i].ID.equals("") );
         }
         for (int i=0;i<calendar.Eras.length;i++) {
-            //log.println("Era "+i+"(AbbrevName): 
"+calendar.Eras[i].AbbrevName);
+            //System.out.println("Era "+i+"(AbbrevName): 
"+calendar.Eras[i].AbbrevName);
             good &= (! calendar.Eras[i].AbbrevName.equals("") );
-            //log.println("Era "+i+"(FullName): "+calendar.Eras[i].FullName);
+            //System.out.println("Era "+i+"(FullName): 
"+calendar.Eras[i].FullName);
             good &= (! calendar.Eras[i].FullName.equals("") );
-            //log.println("Era "+i+"(ID): "+calendar.Eras[i].ID);
+            //System.out.println("Era "+i+"(ID): "+calendar.Eras[i].ID);
             good &= (! calendar.Eras[i].ID.equals("") );
         }
-        //log.println("Start of Week: "+calendar.StartOfWeek);
+        //System.out.println("Start of Week: "+calendar.StartOfWeek);
         good &= (! calendar.StartOfWeek.equals("") );
-        //log.println("MinimumNumberOfDaysForFirstWeek: 
"+calendar.MinimumNumberOfDaysForFirstWeek);
-        //log.println("Default: "+calendar.Default);
-        //log.println("Name: "+calendar.Name);
+        //System.out.println("MinimumNumberOfDaysForFirstWeek: 
"+calendar.MinimumNumberOfDaysForFirstWeek);
+        //System.out.println("Default: "+calendar.Default);
+        //System.out.println("Name: "+calendar.Name);
         good &= (! calendar.Name.equals("") );
         return good;
     }
@@ -485,7 +526,7 @@ public class _XLocaleData extends MultiMethodTest {
                     break;
             }
         }
-        if (!cont) log.println("Not contained: " + oneLoc.Language);
+        if (!cont) System.out.println("Not contained: " + oneLoc.Language);
         return cont;
     }
 
diff --git a/test/testuno/source/api/i18n/XNumberFormatCodeTest.java 
b/test/testuno/source/api/i18n/XNumberFormatCodeTest.java
index c2712fd34c..fba93b6744 100644
--- a/test/testuno/source/api/i18n/XNumberFormatCodeTest.java
+++ b/test/testuno/source/api/i18n/XNumberFormatCodeTest.java
@@ -21,9 +21,7 @@
 
 
 
-package ifc.i18n;
-
-import lib.MultiMethodTest;
+package api.i18n;
 
 import com.sun.star.i18n.KNumberFormatType;
 import com.sun.star.i18n.KNumberFormatUsage;
@@ -31,6 +29,16 @@ import com.sun.star.i18n.NumberFormatCode;
 import com.sun.star.i18n.NumberFormatIndex;
 import com.sun.star.i18n.XNumberFormatCode;
 import com.sun.star.lang.Locale;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openoffice.test.uno.UnoApp;
+
 
 /**
 * Testing <code>com.sun.star.i18n.XNumberFormatCode</code>
@@ -44,19 +52,46 @@ import com.sun.star.lang.Locale;
 * Test is <b> NOT </b> multithread compliant. <p>
 * @see com.sun.star.i18n.XNumberFormatCode
 */
-public class _XNumberFormatCode extends MultiMethodTest {
+public class XNumberFormatCodeTest {
+    private static final UnoApp app = new UnoApp();
+
+    private XComponentContext xContext = null;
     public XNumberFormatCode oObj = null;
     public String[] languages = new String[]
         {"de","en","es","fr","ko","ko","zh"};
     public String[] countries = new String[]
         {"DE","US","ES","FR","KR","KR","CN"};
 
+    // setup and close connections
+    @BeforeClass
+    public static void setUpConnection() throws Exception
+    {
+        app.start();
+    }
+
+    @AfterClass
+    public static void tearDownConnection() throws InterruptedException, 
com.sun.star.uno.Exception
+    {
+        app.close();
+    }
+
+    @Before
+    public void before() throws Exception {
+        xContext = app.getComponentContext();
+        oObj = UnoRuntime.queryInterface(
+            XNumberFormatCode.class,
+            
xContext.getServiceManager().createInstanceWithContext("com.sun.star.i18n.NumberFormatCodeMapper",
 xContext)
+        );
+    }
+
+
     /**
     * Test calls the method twice with two different format types as
     * parameters for each locale. Result is checked after every call.<p>
     * Has <b> OK </b> status if both times returned structure's field 'Code'
     * does not equal to empty string.
     */
+    @Test
     public void _getDefault() {
         boolean res = true;
         NumberFormatCode nfc = null;
@@ -66,9 +101,9 @@ public class _XNumberFormatCode extends MultiMethodTest {
                 KNumberFormatUsage.DATE, getLocale(i));
             String str = nfc.Code;
             if (str.equals("")) {
-                log.println("'NumberFormat.code.equals(\"\") = true' for"
+                System.out.println("'NumberFormat.code.equals(\"\") = true' 
for"
                     + " language: " + languages[i]);
-                log.println("Usage: oObj.getDefault(KNumberFormatType.SHORT,"
+                System.out.println("Usage: 
oObj.getDefault(KNumberFormatType.SHORT,"
                     + " KNumberFormatUsage.DATE,new Locale(" + languages[i]
                     + "," + countries[i] + ",\"\");");
             }
@@ -78,15 +113,15 @@ public class _XNumberFormatCode extends MultiMethodTest {
                 KNumberFormatUsage.DATE,getLocale(i));
             str = nfc.Code;
             if (str.equals("")) {
-                log.println("'NumberFormat.code.equals(\"\") = true' for "
+                System.out.println("'NumberFormat.code.equals(\"\") = true' 
for "
                     + "language: " + languages[i]);
-                log.println("Usage: oObj.getDefault(KNumberFormatType.LONG,"
+                System.out.println("Usage: 
oObj.getDefault(KNumberFormatType.LONG,"
                     + " KNumberFormatUsage.DATE,new Locale(" + languages[i]
                     + "," + countries[i] + ",\"\");");
             }
             res &= ( ! str.equals("") );
         }
-        tRes.tested("getDefault()", res);
+        Assert.assertTrue("getDefault()", res);
     }
 
     /**
@@ -95,6 +130,7 @@ public class _XNumberFormatCode extends MultiMethodTest {
     * Has <b> OK </b> status if both times returned structure's field 'Code'
     * does not equal to a empty string.
     */
+    @Test
     public void _getFormatCode() {
         boolean res = true;
         NumberFormatCode nfc = null;
@@ -107,7 +143,7 @@ public class _XNumberFormatCode extends MultiMethodTest {
                 (NumberFormatIndex.DATE_SYSTEM_LONG,getLocale(i));
             res &= ( ! nfc.Code.equals("") );
         }
-        tRes.tested("getFormatCode()", res);
+        Assert.assertTrue("getFormatCode()", res);
     }
 
     /**
@@ -116,6 +152,7 @@ public class _XNumberFormatCode extends MultiMethodTest {
     * Has <b> OK </b> status if both times returned array's length does not
     * equal to zero.
     */
+    @Test
     public void _getAllFormatCode() {
         boolean res = true;
         NumberFormatCode[] nfc = null;
@@ -126,13 +163,14 @@ public class _XNumberFormatCode extends MultiMethodTest {
             nfc = oObj.getAllFormatCode(KNumberFormatUsage.TIME, getLocale(i));
             res &= ( nfc.length != 0 );
         }
-        tRes.tested("getAllFormatCode()", res);
+        Assert.assertTrue("getAllFormatCode()", res);
     }
 
     /**
     * Test calls the method for each locale. <p>
     * Has <b> OK </b> status if returned array's length does not equal to zero.
     */
+    @Test
     public void _getAllFormatCodes() {
         boolean res = true;
         NumberFormatCode[] nfc = null;
@@ -141,7 +179,7 @@ public class _XNumberFormatCode extends MultiMethodTest {
             nfc = oObj.getAllFormatCodes(getLocale(i));
             res &= ( nfc.length != 0 );
         }
-        tRes.tested("getAllFormatCodes()", res);
+        Assert.assertTrue("getAllFormatCodes()", res);
     }
 
     /**
diff --git a/test/testuno/source/api/i18n/XTransliterationTest.java 
b/test/testuno/source/api/i18n/XTransliterationTest.java
index 36c9551ff9..8acce5a98d 100644
--- a/test/testuno/source/api/i18n/XTransliterationTest.java
+++ b/test/testuno/source/api/i18n/XTransliterationTest.java
@@ -21,15 +21,22 @@
 
 
 
-package ifc.i18n;
-
-import lib.MultiMethodTest;
+package api.i18n;
 
 import com.sun.star.i18n.TransliterationModules;
 import com.sun.star.i18n.TransliterationModulesNew;
 import com.sun.star.i18n.TransliterationType;
 import com.sun.star.i18n.XTransliteration;
 import com.sun.star.lang.Locale;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openoffice.test.uno.UnoApp;
 
 /**
 * Testing <code>com.sun.star.i18n.XTransliteration</code>
@@ -50,30 +57,56 @@ import com.sun.star.lang.Locale;
 * Test is <b> NOT </b> multithread compliant. <p>
 * @see com.sun.star.i18n.XTransliteration
 */
-public class _XTransliteration extends MultiMethodTest {
+public class XTransliterationTest {
+    private static final UnoApp app = new UnoApp();
 
+    private XComponentContext xContext = null;
     public XTransliteration oObj = null;
     private String[] mod = null ;
     private Locale loc = new Locale("en", "EN", "") ;
 
+
+    // setup and close connections
+    @BeforeClass
+    public static void setUpConnection() throws Exception
+    {
+        app.start();
+    }
+
+    @AfterClass
+    public static void tearDownConnection() throws InterruptedException, 
com.sun.star.uno.Exception
+    {
+        app.close();
+    }
+
+    @Before
+    public void before() throws Exception {
+        xContext = app.getComponentContext();
+        oObj = UnoRuntime.queryInterface(
+            XTransliteration.class,
+            
xContext.getServiceManager().createInstanceWithContext("com.sun.star.i18n.Transliteration",
 xContext)
+        );
+    }
+
     /**
     * Gets all available transliteration modules. <p>
     * Has <b>OK</b> status if array returned has at least
     * one module name.
     */
+    @Test
     public void _getAvailableModules() {
         mod = oObj.getAvailableModules(loc, TransliterationType.ONE_TO_ONE);
 
         if (mod != null) {
-            log.println("Available modules :") ;
+            System.out.println("Available modules :") ;
             for (int i = 0; i < mod.length; i++) {
-                log.println("  '" + mod[i] + "'") ;
+                System.out.println("  '" + mod[i] + "'") ;
             }
         } else {
-            log.println("!!! NULL returned !!!") ;
+            System.out.println("!!! NULL returned !!!") ;
         }
 
-        tRes.tested("getAvailableModules()", mod != null && mod.length > 0) ;
+        Assert.assertTrue("getAvailableModules()", mod != null && mod.length > 
0) ;
     }
 
     /**
@@ -82,15 +115,16 @@ public class _XTransliteration extends MultiMethodTest {
     * Has <b>OK</b> status if the method <code>getName</code> returns the
     * string "case ignore (generic)".
     */
+    @Test
     public void _loadModule() {
-        log.println("Load module IGNORE_CASE");
+        System.out.println("Load module IGNORE_CASE");
         oObj.loadModule(TransliterationModules.IGNORE_CASE, loc);
 
         String name = oObj.getName();
         boolean res = name.equals("case ignore (generic)");
-        log.println("getName return: " + name);
+        System.out.println("getName return: " + name);
 
-        tRes.tested("loadModule()", res );
+        Assert.assertTrue("loadModule()", res );
     }
 
     /**
@@ -100,6 +134,7 @@ public class _XTransliteration extends MultiMethodTest {
      * Has <b>OK</b> status if the name of the object is equals to
      * 'lower_to_upper(generic)'
      */
+    @Test
     public void _loadModuleNew() {
         boolean result = true ;
 
@@ -109,9 +144,9 @@ public class _XTransliteration extends MultiMethodTest {
 
         String name = oObj.getName();
         result = name.equals("lower_to_upper(generic)");
-        log.println("getName return: " + name);
+        System.out.println("getName return: " + name);
 
-        tRes.tested("loadModuleNew()", result);
+        Assert.assertTrue("loadModuleNew()", result);
     }
 
     /**
@@ -120,15 +155,16 @@ public class _XTransliteration extends MultiMethodTest {
     * Has <b>OK</b> status if the method <code>getName</code> returns the
     * string "lower_to_upper(generic)".
     */
+    @Test
     public void _loadModuleByImplName() {
-        log.println("Load module LOWERCASE_UPPERCASE");
+        System.out.println("Load module LOWERCASE_UPPERCASE");
         oObj.loadModuleByImplName("LOWERCASE_UPPERCASE", loc);
 
         String name = oObj.getName();
         boolean res = name.equals("lower_to_upper(generic)");
-        log.println("getName return: " + name);
+        System.out.println("getName return: " + name);
 
-        tRes.tested("loadModuleByImplName()", res);
+        Assert.assertTrue("loadModuleByImplName()", res);
     }
 
     /**
@@ -137,25 +173,27 @@ public class _XTransliteration extends MultiMethodTest {
     * Has <b>OK</b> status if the method <code>getName</code> returns the
     * string "upper_to_lower(generic)".
     */
+    @Test
     public void _loadModulesByImplNames() {
-        log.println("Load module UPPERCASE_LOWERCASE");
+        System.out.println("Load module UPPERCASE_LOWERCASE");
         oObj.loadModulesByImplNames(new String[]{"UPPERCASE_LOWERCASE"}, loc);
 
         String name = oObj.getName();
         boolean res = name.equals("upper_to_lower(generic)");
-        log.println("getName return: " + name);
+        System.out.println("getName return: " + name);
 
-        tRes.tested("loadModulesByImplNames()", res);
+        Assert.assertTrue("loadModulesByImplNames()", res);
     }
 
     /**
      * Loads <code>LOWERCASE_UPPERCASE</code> module and checks current type.
      * <p>Has <b>OK</b> status if the type is <code>ONE_TO_ONE</code>
      */
+    @Test
     public void _getType() {
         oObj.loadModule(TransliterationModules.LOWERCASE_UPPERCASE, loc);
         boolean result = oObj.getType() == TransliterationType.ONE_TO_ONE;
-        tRes.tested("getType()", result);
+        Assert.assertTrue("getType()", result);
     }
 
     /**
@@ -165,14 +203,15 @@ public class _XTransliteration extends MultiMethodTest {
     * Has <b>OK</b> status if the method <code>getName</code> returns the
     * string "upper_to_lower(generic)".
     */
+    @Test
     public void _getName() {
         oObj.loadModule(TransliterationModules.LOWERCASE_UPPERCASE, loc);
 
         String name = oObj.getName();
         boolean res = name.equals("lower_to_upper(generic)");
-        log.println("getName return: " + name);
+        System.out.println("getName return: " + name);
 
-        tRes.tested("getName()", res);
+        Assert.assertTrue("getName()", res);
     }
 
     /**
@@ -183,6 +222,7 @@ public class _XTransliteration extends MultiMethodTest {
     * elements are positions of substring characters in the source
     * string.
     */
+    @Test
     public void _transliterate() {
         oObj.loadModule(TransliterationModules.LOWERCASE_UPPERCASE, loc);
 
@@ -196,7 +236,7 @@ public class _XTransliteration extends MultiMethodTest {
             offs[0][2] == 3 &&
             offs[0][3] == 4 ;
 
-        tRes.tested("transliterate()", result) ;
+        Assert.assertTrue("transliterate()", result) ;
     }
 
 
@@ -207,14 +247,15 @@ public class _XTransliteration extends MultiMethodTest {
     * returned (not null, length = 4, with two ranges
     * (a, i), (A, I) in any order).
     */
+    @Test
     public void _transliterateRange() {
         oObj.loadModule(TransliterationModules.IGNORE_CASE, loc);
 
         String[] out = oObj.transliterateRange("a", "i") ;
 
-        log.println("transliterateRange return:");
+        System.out.println("transliterateRange return:");
         for(int i = 0; i < out.length; i++) {
-            log.println(out[i]);
+            System.out.println(out[i]);
         }
 
         boolean bOK = out != null &&
@@ -225,14 +266,14 @@ public class _XTransliteration extends MultiMethodTest {
             "A".equals(out[2]) && "I".equals(out[3])) ;
 
         if (!bOK) {
-            log.println("Unexpected range returned :");
+            System.out.println("Unexpected range returned :");
             for (int i = 0; i < out.length; i++) {
-                log.print("'" + out[i] +"', ");
+                System.out.print("'" + out[i] +"', ");
             }
-            log.println();
+            System.out.println();
         }
 
-        tRes.tested("transliterateRange()", bOK);
+        Assert.assertTrue("transliterateRange()", bOK);
     }
 
     /**
@@ -240,6 +281,7 @@ public class _XTransliteration extends MultiMethodTest {
     * method so it indirectly tested in this method. <p>
     * Always has <b>OK</b> status.
     */
+    @Test
     public void _folding() {
         oObj.loadModule(TransliterationModules.LOWERCASE_UPPERCASE, loc);
 
@@ -254,7 +296,7 @@ public class _XTransliteration extends MultiMethodTest {
             offs[0][3] == 4 ;
 
 
-        tRes.tested("folding()", result) ;
+        Assert.assertTrue("folding()", result) ;
     }
 
 
@@ -263,6 +305,7 @@ public class _XTransliteration extends MultiMethodTest {
     * Tries to compare two equal substrings. <p>
     * Has <b>OK</b> status if the method returned <code>true</code>.
     */
+    @Test
     public void _equals() {
         oObj.loadModule(TransliterationModules.LOWERCASE_UPPERCASE, loc);
 
@@ -272,10 +315,10 @@ public class _XTransliteration extends MultiMethodTest {
         boolean res = oObj.equals("aAbBcC", 1, 3, match1, "aAbBcC", 1,
             3, match2) ;
 
-        log.println("Returned : " + res + " Match1 = " + match1[0] +
+        System.out.println("Returned : " + res + " Match1 = " + match1[0] +
             " Match2 = " + match2[0]) ;
 
-        tRes.tested("equals()", res) ;
+        Assert.assertTrue("equals()", res) ;
     }
 
     /**
@@ -288,6 +331,7 @@ public class _XTransliteration extends MultiMethodTest {
      * proper value according to lexicographical order and if
      * comparisons with invalid parameters return none 0 value.
      */
+    @Test
     public void _compareSubstring() {
         oObj.loadModule(TransliterationModules.LOWERCASE_UPPERCASE, loc);
         boolean result = true ;
@@ -311,7 +355,7 @@ public class _XTransliteration extends MultiMethodTest {
 
         // testing with wrong offsets and lengths
 
-        tRes.tested("compareSubstring()", result) ;
+        Assert.assertTrue("compareSubstring()", result) ;
     }
 
     /**
@@ -332,34 +376,34 @@ public class _XTransliteration extends MultiMethodTest {
         try {
             res = oObj.compareSubstring(str1, p1, len1, str2, p2, len2);
         } catch (java.lang.NullPointerException e) {
-            log.println("Exception while method calling occurs :" + e);
+            System.out.println("Exception while method calling occurs :" + e);
         }
 
         if (res != expRes) {
-            log.print("Comparing FAILED; return: " + res + ", expected: " +
+            System.out.print("Comparing FAILED; return: " + res + ", expected: 
" +
                 expRes + " ");
             ret = false ;
         } else {
-            log.print("Comparing OK : ");
+            System.out.print("Comparing OK : ");
         }
-        log.println("('" + str1 + "', " + p1 + ", " + len1 + ", '" +
+        System.out.println("('" + str1 + "', " + p1 + ", " + len1 + ", '" +
             str2 + "', " + p2 + ", " + len2 + ")");
 
         res = -666 ;
         try {
             res = oObj.compareSubstring(str2, p2, len2, str1, p1, len1);
         } catch (java.lang.NullPointerException e) {
-            log.println("Exception while method calling occurs :" + e);
+            System.out.println("Exception while method calling occurs :" + e);
         }
 
         if (res != -expRes) {
-            log.print("Comparing FAILED; return: " + res + ", expected: " +
+            System.out.print("Comparing FAILED; return: " + res + ", expected: 
" +
                 -expRes  + " ");
             ret = false ;
         } else {
-            log.print("Comparing OK :");
+            System.out.print("Comparing OK :");
         }
-        log.println("('" + str2 + "', " + p2 + ", " + len2 + ", '" +
+        System.out.println("('" + str2 + "', " + p2 + ", " + len2 + ", '" +
             str1 + "', " + p1 + ", " + len1 + ")");
 
         return ret ;
@@ -373,6 +417,7 @@ public class _XTransliteration extends MultiMethodTest {
      * always return 0 and if comparisons of none equal returns
      * proper value according to lexicographical order .
      */
+    @Test
     public void _compareString() {
         oObj.loadModule(TransliterationModules.LOWERCASE_UPPERCASE, loc);
         boolean result = true ;
@@ -392,7 +437,7 @@ public class _XTransliteration extends MultiMethodTest {
         result &= testString("aaa\t\na", "aaa\t\na", 0) ;
         result &= testString("aaa\t\nb", "aaa\t\na", 1) ;
 
-        tRes.tested("compareString()", result) ;
+        Assert.assertTrue("compareString()", result) ;
     }
 
     /**
@@ -418,13 +463,13 @@ public class _XTransliteration extends MultiMethodTest {
         try {
             res = oObj.compareString(str1, str2);
         } catch (java.lang.NullPointerException e) {
-            log.println("Exception while method calling occurs :" + e);
+            System.out.println("Exception while method calling occurs :" + e);
         }
 
         if (res == expRes) {
-            log.println("Comparing of '" + str1 + "' and '" + str2 + "' OK" );
+            System.out.println("Comparing of '" + str1 + "' and '" + str2 + "' 
OK" );
         } else {
-            log.println("Comparing of '" + str1 + "' and '" + str2 +
+            System.out.println("Comparing of '" + str1 + "' and '" + str2 +
                 "' FAILED; return: " + res + ", expected: " + expRes);
             ret = false ;
         }
@@ -435,13 +480,13 @@ public class _XTransliteration extends MultiMethodTest {
         try {
             res = oObj.compareString(str2, str1);
         } catch (java.lang.NullPointerException e) {
-            log.println("Exception while method calling occurs :" + e);
+            System.out.println("Exception while method calling occurs :" + e);
         }
 
         if (res == -expRes) {
-            log.println("Comparing of '" + str2 + "' and '" + str1 + "' OK" );
+            System.out.println("Comparing of '" + str2 + "' and '" + str1 + "' 
OK" );
         } else {
-            log.println("Comparing of '" + str2 + "' and '" + str1 +
+            System.out.println("Comparing of '" + str2 + "' and '" + str1 +
                 "' FAILED; return: " + res + ", expected: " + -expRes);
             ret = false ;
         }


Reply via email to