diff -r a151135b0cf9 -r aa2539c91954 tracesrv/tracecompiler/test/src/PluginTracePropertyVerifierTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tracesrv/tracecompiler/test/src/PluginTracePropertyVerifierTest.java Fri Oct 08 14:56:39 2010 +0300 @@ -0,0 +1,215 @@ +/* + * Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: + * + * JUnit tests for PluginTracePropertyVerifier + * + */ +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.List; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class PluginTracePropertyVerifierTest extends TestCase { + + /** + * Class to PluginTracePropertyVerifier + */ + static Class pluginTracePropertyVerifier; + + /** + * PluginTracePropertyVerifier object + */ + static Object ptpvObject; + + /** + * Empty string + */ + private static final String EMPTY_STRING = ""; //$NON-NLS-1$ + + /** + * White space + */ + private static final String WHITE_SPACE = " "; //$NON-NLS-1$ + + /** + * Enum for different functions to test + * + */ + private enum FunctionToTest { + ISVALIDDATA + } + + /** + * TestData class + * + */ + private class TestData { + String testString; + boolean expectedIsValidDataResult; + + /** + * + * Constructor + * + * @param testStringParam + * the test string + * @param expectedIsValidDataResultParam + * the expected return value in case of isValidData + * method + */ + TestData(String testStringParam, boolean expectedIsValidDataResultParam) { + this.testString = testStringParam; + this.expectedIsValidDataResult = expectedIsValidDataResultParam; + } + } + + /** + * List of test data + */ + List testDataList = new ArrayList(); + + /** + * main + * + * @param args + */ + public static void main(String[] args) { + org.junit.runner.JUnitCore + .main(PluginTracePropertyVerifierTest.class.getName()); + } + + /** + * setUp + */ + @Before + public void setUp() { + + if (testDataList.size() == 0) { + initializeTestDataList(); + } + + if (pluginTracePropertyVerifier == null && ptpvObject == null) { + try { + pluginTracePropertyVerifier = Class + .forName("com.nokia.tracecompiler.engine.plugin.PluginTracePropertyVerifier"); //$NON-NLS-1$ + ptpvObject = pluginTracePropertyVerifier.newInstance(); + } catch (Exception e) { + Assert.fail(e.toString()); + } + } + + } + + /** + * Initialize test data list + */ + private void initializeTestDataList() { + char VTAB = 0xB; //vertical TAB + testDataList.add(new TestData("Some valid text", true)); //valid text //$NON-NLS-1$ + testDataList.add(new TestData("Some text with non-valid character - vertical TAB - : " + String.valueOf(VTAB) , false)); //$NON-NLS-1$ + testDataList.add(new TestData("Some valid text with TAB : " , true)); //$NON-NLS-1$ + testDataList.add(new TestData("Some valid text with TABs : " , true)); //$NON-NLS-1$ + } + + /** + * Execute tests + * + * @param nameOfFunctionUnderTest + * the name of the function that should be tested + * @param testType + * the number of expected result column + */ + private void executeTests(String nameOfFunctionUnderTest, + FunctionToTest testType) { + for (int i = 0; i < testDataList.size(); i++) { + String testString = testDataList.get(i).testString; + boolean expectedResult = false; + + switch (testType) { + case ISVALIDDATA: + expectedResult = testDataList.get(i).expectedIsValidDataResult; + break; + } + + executeTest(nameOfFunctionUnderTest, testString, expectedResult); + } + } + + /** + * Execute test + * + * @param nameOfFunctionUnderTest + * the name of the function that should be tested + * @param testString + * the test string that is used in test + * @param columNumberOfExpectedResult + * the number of expected result column + */ + private void executeTest(String nameOfFunctionUnderTest, String testString, + boolean expectedResult) { + Method functionUnderTest = null; + try { + functionUnderTest = pluginTracePropertyVerifier.getDeclaredMethod( + nameOfFunctionUnderTest, String.class); + // change access of the function under test because otherwise we can + // test to private functions + functionUnderTest.setAccessible(true); + // invoke the function and get result + Object retObj = null; + + // remove white spaces from test string, because those those does + // not exist in real life either + retObj = functionUnderTest.invoke(ptpvObject, testString.replace( + WHITE_SPACE, EMPTY_STRING)); + + // cast the result to the expected return type. + Boolean res = (Boolean) retObj; + + String msg = functionUnderTest.getName() + " invoked on \"" //$NON-NLS-1$ + + testString + "\" returned " + res.toString(); //$NON-NLS-1$ + Assert.assertEquals(msg, expectedResult, res.booleanValue()); + } catch (Exception e) { + Assert.fail(e.getMessage()); + } + } + + /** + * Test isValidData method + */ + @Test + public void testIsValidDataMethod() { + executeTests("isValidData", FunctionToTest.ISVALIDDATA); //$NON-NLS-1$ + } + + //add future methods tests after this point. + + /** + * tearDown + */ + @After + public void tearDown() { + // nothing to do + } + +}