/* * Copyright 2006-2012 The Scriptella Project Team. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package scriptella.expression; import scriptella.AbstractTestCase; import scriptella.spi.MockParametersCallbacks; import java.util.Arrays; /** * Tests {@link scriptella.expression.PropertiesSubstitutor} performance. * * @author Fyodor Kupolov * @version 1.0 */ public class PropertiesSubstitutorPerfTest extends AbstractTestCase { /** * History: * 27.04.2010 - Core Duo II 2.4GHz - 2200 ms * 13.05.2007 - Duron 1700 Mhz JDK6 - 2700 ms * 09.03.2007 - Athlon 64 X2 2GHz - 1330 ms * 08.03.2007 - Athlon 64 X2 2GHz - 1850 ms * 05.09.2006 - Duron 1700 Mhz JDK5 - 4078 ms */ public void test() { PropertiesSubstitutor ps = new PropertiesSubstitutor(MockParametersCallbacks.NAME); char[] fillC = new char[1000]; Arrays.fill(fillC, '-'); String fill = new String(fillC); String line = "Text ${subst1} $subst2 " + fill + ":$end //"; String exp = "Text subst1 subst2 " + fill + ":end //"; for (int i = 0; i < 100000; i++) { String s = ps.substitute(line); assertEquals(exp, s); } } }