package net.eusashead.bjugquerydsl.data.jdbc;
import java.util.List;
import javax.sql.DataSource;
import net.eusashead.bjugquerydsl.config.WebConfig;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import com.mysema.query.Tuple;
import com.mysema.query.sql.H2Templates;
import com.mysema.query.sql.SQLQuery;
import com.mysema.query.sql.SQLTemplates;
import com.mysema.query.types.Projections;
/**
* Basic demonstration of JDBC
* query capabilities, both
* raw column Tuples and bean
* projection
* @author patrickvk
*
*/
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(classes={WebConfig.class})
public class JdbcQueryTest {
@Autowired
private DataSource connection;
@Test
public void testBasicQuery() throws Exception {
SQLTemplates dialect = new H2Templates();
SQLQuery query = new SQLQuery(connection.getConnection(), dialect);
QStockKeepingUnit path = QStockKeepingUnit.stockKeepingUnit;
List<Tuple> results = query.from(path)
.list(path.productId, path.price);
Assert.assertTrue(results.size() == 8);
}
@Test
public void testProjectionQuery() throws Exception {
SQLTemplates dialect = new H2Templates();
SQLQuery query = new SQLQuery(connection.getConnection(), dialect);
QStockKeepingUnit path = QStockKeepingUnit.stockKeepingUnit;
List<StockKeepingUnit> results = query.from(path)
.list(Projections.bean(StockKeepingUnit.class, path.productId, path.price));
Assert.assertTrue(results.size() == 8);
}
}