/*
* Milyn - Copyright (C) 2006 - 2010
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License (version 2.1) as published by the Free Software
* Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* See the GNU Lesser General Public License for more details:
* http://www.gnu.org/licenses/lgpl.txt
*/
package org.milyn.function;
import static org.milyn.function.StringFunctionDefinitionParser.*;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* @author <a href="mailto:maurice.zeijen@smies.com">maurice.zeijen@smies.com</a>
*/
public class StringFunctionExecutorTest {
@Test
public void test_execute() {
String def = TRIM_DEFINITION;
assertEquals("blaat", StringFunctionExecutor.getInstance(def).execute(" blaat "));
def = TRIM_DEFINITION + SEPARATOR + UPPER_CASE_DEFINITION;
assertEquals("BLAAT", StringFunctionExecutor.getInstance(def).execute(" blaat "));
}
@Test
public void test_caching() {
String def1 = LOWER_CASE_DEFINITION;
StringFunctionExecutor executor1 = StringFunctionExecutor.getInstance(def1);
StringFunctionExecutor executor2 = StringFunctionExecutor.getInstance(def1);
assertSame(executor1, executor2);
String def2 = TRIM_DEFINITION + SEPARATOR + UPPER_CASE_DEFINITION;
StringFunctionExecutor executor3 = StringFunctionExecutor.getInstance(def2);
StringFunctionExecutor executor4 = StringFunctionExecutor.getInstance(def2);
assertSame(executor3, executor4);
assertNotSame(executor1, executor3);
StringFunctionExecutor executor5 = StringFunctionExecutor.getInstance(def1);
assertSame(executor1, executor5);
}
}