package org.jtwig.integration.expression; import org.jtwig.JtwigModel; import org.jtwig.JtwigTemplate; import org.junit.Test; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; import static org.hamcrest.core.IsEqual.equalTo; public class RelationalOperatorsTest { @Test public void diffOperatorWhenTrue() throws Exception { JtwigModel model = new JtwigModel(); String result = JtwigTemplate .inlineTemplate("{% if ('one' != 'two') %}Hi{% endif %}") .render(model); assertThat(result, is(equalTo("Hi"))); } @Test public void diffOperatorWhenFalse() throws Exception { JtwigModel model = new JtwigModel(); String result = JtwigTemplate .inlineTemplate("{% if ('one' != 'one') %}Hi{% endif %}") .render(model); assertThat(result, is(equalTo(""))); } @Test public void differentTypesWithSameStringValueAreEqual() throws Exception { JtwigModel model = new JtwigModel(); model.with("var1", 5L).with("var2", "5"); String result = JtwigTemplate .inlineTemplate("{{ var1 == var2 }}") .render(model); assertThat(result, is(equalTo("true"))); } @Test public void differentTypesWithSameStringValueAreEqual2() throws Exception { JtwigModel model = new JtwigModel(); model.with("var1", 'a').with("var2", "a"); String result = JtwigTemplate .inlineTemplate("{{ var1 == var2 }}") .render(model); assertThat(result, is(equalTo("true"))); } @Test public void lessTrue() throws Exception { JtwigModel model = new JtwigModel(); model.with("var1", 'a').with("var2", "b"); String result = JtwigTemplate .inlineTemplate("{{ var1 < var2 }}") .render(model); assertThat(result, is(equalTo("true"))); } @Test public void lessFalse() throws Exception { JtwigModel model = new JtwigModel(); model.with("var1", "b").with("var2", "a"); String result = JtwigTemplate .inlineTemplate("{{ var1 < var2 }}") .render(model); assertThat(result, is(equalTo("false"))); } @Test public void greaterTrue() throws Exception { JtwigModel model = new JtwigModel(); model.with("var1", 'a').with("var2", "b"); String result = JtwigTemplate .inlineTemplate("{{ var1 > var2 }}") .render(model); assertThat(result, is(equalTo("false"))); } @Test public void greaterFalse() throws Exception { JtwigModel model = new JtwigModel(); model.with("var1", "b").with("var2", "a"); String result = JtwigTemplate .inlineTemplate("{{ var1 > var2 }}") .render(model); assertThat(result, is(equalTo("true"))); } @Test public void lessOrEqualTrue() throws Exception { JtwigModel model = new JtwigModel(); model.with("var1", 'a').with("var2", "b"); String result = JtwigTemplate .inlineTemplate("{{ var1 <= var2 }}") .render(model); assertThat(result, is(equalTo("true"))); } @Test public void lessOrEqualFalse() throws Exception { JtwigModel model = new JtwigModel(); model.with("var1", "b").with("var2", "a"); String result = JtwigTemplate .inlineTemplate("{{ var1 <= var2 }}") .render(model); assertThat(result, is(equalTo("false"))); } @Test public void greaterOrEqualTrue() throws Exception { JtwigModel model = new JtwigModel(); model.with("var1", 'a').with("var2", "b"); String result = JtwigTemplate .inlineTemplate("{{ var1 >= var2 }}") .render(model); assertThat(result, is(equalTo("false"))); } @Test public void greaterOrEqualFalse() throws Exception { JtwigModel model = new JtwigModel(); model.with("var1", "b").with("var2", "a"); String result = JtwigTemplate .inlineTemplate("{{ var1 >= var2 }}") .render(model); assertThat(result, is(equalTo("true"))); } }