package com.w11k.lsql.tests.pojo; import com.w11k.lsql.tests.AbstractLSqlTest; import com.w11k.lsql.tests.testdata.*; import org.testng.annotations.Test; import java.util.List; import static org.testng.Assert.assertEquals; public class PojoQueryTest extends AbstractLSqlTest { @Test public void executeRawQuery() { PersonTestData.init(this.lSql, true); List<Person> rows = this.lSql.executeRawQuery( PersonTestData.SELECT_ALL_ORDER_BY_ID, Person.class).toList(); assertEquals(rows.size(), 2); assertEquals(rows.get(0).getFirstName(), "Adam"); assertEquals(rows.get(1).getFirstName(), "Eve"); } @Test( expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*missing field.*title.*String.*" ) public void errorMessageOnMissingField() { PersonTestData.init(this.lSql, true); this.lSql.executeRawQuery( PersonTestData.SELECT_ALL_ORDER_BY_ID, PersonMissingTitle.class ).toList(); } @Test( expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*title.*wrong type.*Boolean.*String.*" ) public void errorMessageOnWrongFieldType() { PersonTestData.init(this.lSql, true); this.lSql.executeRawQuery( PersonTestData.SELECT_ALL_ORDER_BY_ID, PersonWrongTitleType.class ).toList(); } @Test( expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*superfluous field.*oops.*" ) public void errorMessageOnSuperfluousType() { PersonTestData.init(this.lSql, true); this.lSql.executeRawQuery( PersonTestData.SELECT_ALL_ORDER_BY_ID, PersonWithSuperfluousField.class ).toList(); } }