package io.ebeaninternal.server.querydefn; import org.junit.Test; import java.util.LinkedHashSet; import static org.assertj.core.api.Assertions.assertThat; public class OrmQueryPropertiesTest { String append(String prefix, OrmQueryProperties p1) { StringBuilder sb = new StringBuilder(); p1.append(prefix, sb); return sb.toString(); } @Test(expected = IllegalArgumentException.class) public void construct_with_propertySet_when_null() { new OrmQueryProperties(null, (LinkedHashSet<String>) null); } @Test public void construct_with_propertySet_when_empty() { OrmQueryProperties p1 = new OrmQueryProperties(null, new LinkedHashSet<>()); assertThat(p1.getProperties()).isEqualTo(""); assertThat(p1.allProperties()).isFalse(); } @Test public void construct_with_propertySet_when_one() { LinkedHashSet<String> set = new LinkedHashSet<>(); set.add("name"); OrmQueryProperties p1 = new OrmQueryProperties(null, set); assertThat(p1.getProperties()).isEqualTo("name"); assertThat(p1.allProperties()).isFalse(); } @Test public void construct_with_propertySet_when_some() { LinkedHashSet<String> set = new LinkedHashSet<>(); set.add("id"); set.add("name"); set.add("startDate"); OrmQueryProperties p1 = new OrmQueryProperties(null, set); assertThat(p1.getProperties()).isEqualTo("id,name,startDate"); assertThat(p1.allProperties()).isFalse(); } @Test public void append_when_empty() { OrmQueryProperties p1 = new OrmQueryProperties(); assertThat(append("select ", p1)).isEqualTo("select "); } @Test public void append_when_someProperties() { OrmQueryProperties p1 = new OrmQueryProperties(null, "id,name"); assertThat(append("select ", p1)).isEqualTo("select (id,name) "); } @Test public void append_when_somePropertiesWithOptions() { OrmQueryProperties p1 = new OrmQueryProperties(null, "id,name +cache"); assertThat(append("select ", p1)).isEqualTo("select (id,name +cache) "); } @Test public void append_when_path_and_emptyProperties() { OrmQueryProperties p1 = new OrmQueryProperties("customer", ""); assertThat(append("fetch ", p1)).isEqualTo("fetch customer "); } @Test public void append_when_path_and_somePropertiesWithOptions() { OrmQueryProperties p1 = new OrmQueryProperties("customer", "id,name +cache"); assertThat(append("fetch ", p1)).isEqualTo("fetch customer (id,name +cache) "); } }