package org.n3r.eql;
import com.google.common.collect.Maps;
import org.junit.Before;
import org.junit.Test;
import java.sql.Timestamp;
import java.util.List;
import java.util.Map;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public class IsEmptyTest {
@Before
public void beforeClass() {
new Eql().id("dropTestTable").execute();
new Eql().id("createTestTable").params(new Timestamp(1383122146000l)).execute();
}
@Test
public void test1() {
Map<String, Object> map = Maps.newHashMap();
map.put("a", "1");
Eql eql = new Eql().select("isEmpty");
List<String> strs = eql.execute();
assertThat(strs.size(), is(2));
assertThat(eql.getEqlRuns().get(0).getRunSql(), equalTo("SELECT B\nFROM EQL_TEST\nWHERE A in (1,2)"));
strs = new Eql().select("isEmpty").params(map).execute();
assertThat(strs.size(), is(10));
eql = new Eql().select("isEmptyElse");
eql.params(map).execute();
assertThat(eql.getEqlRuns().get(0).getRunSql(), equalTo("SELECT B\nFROM EQL_TEST\nWHERE A = ?"));
strs = new Eql().select("isNotEmpty").execute();
assertThat(strs.size(), is(10));
eql = new Eql().select("isNotEmptyElse");
eql.execute();
assertThat(eql.getEqlRuns().get(0).getRunSql(), equalTo("SELECT B\nFROM EQL_TEST\nWHERE A in\n(3,4)"));
strs = new Eql().select("isNotEmpty").params(map).execute();
assertThat(strs.size(), is(1));
}
@Test
public void testInIf() {
Map<String, Object> map = Maps.newHashMap();
map.put("a", "1");
Eql eql = new Eql().select("isEmptyInIf");
List<String> strs = eql.execute();
assertThat(strs.size(), is(2));
assertThat(eql.getEqlRuns().get(0).getRunSql(), equalTo("SELECT B\nFROM EQL_TEST\nWHERE A in (1,2)"));
strs = new Eql().select("isEmptyInIf").params(map).execute();
assertThat(strs.size(), is(10));
eql = new Eql().select("isEmptyElseInIf");
eql.params(map).execute();
assertThat(eql.getEqlRuns().get(0).getRunSql(), equalTo("SELECT B\nFROM EQL_TEST\nWHERE A = ?"));
strs = new Eql().select("isNotEmptyInIf").execute();
assertThat(strs.size(), is(10));
eql = new Eql().select("isNotEmptyElseInIf");
eql.execute();
assertThat(eql.getEqlRuns().get(0).getRunSql(), equalTo("SELECT B\nFROM EQL_TEST\nWHERE A in\n(3,4)"));
strs = new Eql().select("isNotEmptyInIf").params(map).execute();
assertThat(strs.size(), is(1));
}
}