/*
* Copyright 2015, The Querydsl Team (http://www.querydsl.com/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 com.querydsl.core.types;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class TemplateTest {
@Test
public void test() {
TemplateFactory factory = new TemplateFactory('\\');
match("[0, ' + ', 1, ' + ', 2]", factory.create("{0} + {1} + {2}"));
match("['blah ', 0, ' + ', 1, ' + ', 2, ' XXX']", factory.create("blah {0} + {1} + {2} XXX"));
match("['+', 1]", factory.create("+{1}"));
match("[1, '.method()']", factory.create("{1}.method()"));
match("[0, '.get(', 1, ')']", factory.create("{0}.get({1})"));
match("[0, '.', 1s]", factory.create("{0}.{1s}"));
}
@Test
public void operation() {
TemplateFactory factory = new TemplateFactory('\\');
match("[0 ADD 1]", factory.create("{0+1}"));
match("[0 DIV 1]", factory.create("{0/1}"));
}
@Test
public void operationConst() {
TemplateFactory factory = new TemplateFactory('\\');
match("[0 ADD 1]", factory.create("{0+'1'}"));
match("[0 DIV 1.0]", factory.create("{0/'1.0'}"));
match("[0 MULT 3.141592653589793, ' / 180.0)']",
factory.create("{0*'3.141592653589793'} / 180.0)"));
}
@Test
public void like() {
TemplateFactory factory = new TemplateFactory('\\');
match("[0]", factory.create("{0%}"));
match("[0]", factory.create("{%0}"));
match("[0]", factory.create("{%0%}"));
match("[0]", factory.create("{0%%}"));
match("[0]", factory.create("{%%0}"));
match("[0]", factory.create("{%%0%%}"));
}
private void match(String string, Template template) {
assertEquals(string, template.getElements().toString());
}
}