package io.ebeaninternal.server.expression; import io.ebean.LikeType; import org.jetbrains.annotations.NotNull; import org.junit.Test; import static org.assertj.core.api.StrictAssertions.assertThat; public class LikeExpressionTest extends BaseExpressionTest { @NotNull private LikeExpression exp(String propertyName, String value, boolean caseInsensitive, LikeType type) { return new LikeExpression(propertyName, value, caseInsensitive, type); } @Test public void isSameByPlan_when_same() { assertThat(exp("a", "rob", true, LikeType.STARTS_WITH) .isSameByPlan(exp("a", "rob", true, LikeType.STARTS_WITH))).isTrue(); } @Test public void isSameByPlan_when_diffBind_then_stillSame() { assertThat(exp("a", "rob", true, LikeType.STARTS_WITH) .isSameByPlan(exp("a", "bor", true, LikeType.STARTS_WITH))).isTrue(); } @Test public void isSameByPlan_when_diffCaseInsensitive() { assertThat(exp("a", "rob", true, LikeType.STARTS_WITH) .isSameByPlan(exp("a", "rob", false, LikeType.STARTS_WITH))).isFalse(); } @Test public void isSameByPlan_when_diffLikeType() { assertThat(exp("a", "rob", true, LikeType.STARTS_WITH) .isSameByPlan(exp("a", "rob", true, LikeType.ENDS_WITH))).isFalse(); } @Test public void isSameByPlan_when_diffProperty() { assertThat(exp("a", "rob", true, LikeType.STARTS_WITH) .isSameByPlan(exp("b", "rob", true, LikeType.STARTS_WITH))).isFalse(); } @Test public void isSameByBind_when_sameBindValues() { assertThat(exp("a", "rob", true, LikeType.STARTS_WITH) .isSameByBind(exp("a", "rob", true, LikeType.STARTS_WITH))).isTrue(); } @Test public void isSameByBind_when_diffBindValues() { assertThat(exp("a", "rob", true, LikeType.STARTS_WITH) .isSameByBind(exp("a", "bor", true, LikeType.STARTS_WITH))).isFalse(); } }