/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.hise;
import java.util.HashMap;
import java.util.Map;
import org.apache.hise.utils.RegexpTemplateEngine;
import org.apache.hise.utils.TemplateEngine;
import org.junit.Assert;
import org.junit.Test;
/**
* Tests for {@link RegexpTemplateEngine}.
* @author Witek Wołejszo
*/
public class RegexpTemplateEngineTest {
@Test
public void mergeTest1() {
TemplateEngine te = new RegexpTemplateEngine();
String r1 = te.merge("Raz dwa trzy.", null);
Assert.assertEquals("Raz dwa trzy.", r1);
Map<String, Object> pp = new HashMap<String, Object>();
pp.put("Raz", "1");
String r2 = te.merge("$Raz$ dwa trzy.", pp);
Assert.assertEquals("1 dwa trzy.", r2);
pp.put("dwa", "2");
String r3 = te.merge("$Raz$ $dwa$ trzy.", pp);
Assert.assertEquals("1 2 trzy.", r3);
pp.put("trzy", "3");
String r4 = te.merge("$Raz$ $dwa$ $trzy$.", pp);
Assert.assertEquals("1 2 3.", r4);
}
@Test
public void mergeTest2() {
TemplateEngine te = new RegexpTemplateEngine();
Map<String, Object> pp = new HashMap<String, Object>();
pp.put("euroAmount", Double.valueOf(1));
pp.put("firstname", "jan");
pp.put("lastname", "kowalski");
String r1 = te.merge("Approve the insurance claim for €$euroAmount$ on behalf of $firstname$ $lastname$", pp);
Assert.assertEquals("Approve the insurance claim for €1.0 on behalf of jan kowalski", r1);
}
@Test
public void removeTest1() {
TemplateEngine te = new RegexpTemplateEngine();
Map<String, Object> pp = new HashMap<String, Object>();
//no x in pp
String r1 = te.merge("?IF-x?bla bla bla?ENDIF-x?", pp);
Assert.assertEquals("", r1);
}
@Test
public void noRemoveTest1() {
TemplateEngine te = new RegexpTemplateEngine();
Map<String, Object> pp = new HashMap<String, Object>();
pp.put("x", "1");
pp.put("y", "bleh");
String r1 = te.merge("?IF-x?bla $y$ bla?ENDIF-x?", pp);
Assert.assertEquals("bla bleh bla", r1);
}
@Test
public void noRemoveTest2() {
TemplateEngine te = new RegexpTemplateEngine();
Map<String, Object> pp = new HashMap<String, Object>();
pp.put("correctedItemName1", "pozycja");
pp.put("correctedItemNewNetValue1", "1");
String r1 = te.merge("?IF-correctedItemName1?Pozycja: $correctedItemName1$ Na: $correctedItemNewNetValue1$?ENDIF-correctedItemName1?", pp);
Assert.assertEquals("Pozycja: pozycja Na: 1", r1);
}
@Test
public void noRemoveTest3() {
TemplateEngine te = new RegexpTemplateEngine();
Map<String, Object> pp = new HashMap<String, Object>();
pp.put("correctedItemName1", "pozycja");
pp.put("correctedItemNewNetValue1", "1");
pp.put("correctedItemName2", null);
pp.put("correctedItemNewNetValue2", null);
String r1 = te.merge("?IF-correctedItemName1?Pozycja: $correctedItemName1$ Na: $correctedItemNewNetValue1$?ENDIF-correctedItemName1??IF-correctedItemName2?Pozycja: $correctedItemName2$ Na: $correctedItemNewNetValue2$?ENDIF-correctedItemName2?", pp);
Assert.assertEquals("Pozycja: pozycja Na: 1", r1);
}
@Test
public void combinedTest1() {
TemplateEngine te = new RegexpTemplateEngine();
Map<String, Object> pp = new HashMap<String, Object>();
pp.put("y", "1");
String r1 = te.merge("?IF-x?bla bla bla?ENDIF-x?$y$", pp);
Assert.assertEquals("1", r1);
}
@Test
public void mergeTestNoPresentationValue() {
TemplateEngine te = new RegexpTemplateEngine();
Map<String, Object> pp = new HashMap<String, Object>();
String r1 = te.merge("$Raz$ dwa $trzy$.", pp);
Assert.assertEquals("error:Raz dwa error:trzy.", r1);
}
}