use of org.seasar.doma.internal.jdbc.mock.MockResultSetMetaData in project doma by domaframework.
the class EntitySingleResultHandlerTest method testHandle_NonUniqueResultException.
@Test
public void testHandle_NonUniqueResultException() throws Exception {
MockResultSetMetaData metaData = new MockResultSetMetaData();
metaData.columns.add(new ColumnMetaData("id"));
metaData.columns.add(new ColumnMetaData("name"));
MockResultSet resultSet = new MockResultSet(metaData);
resultSet.rows.add(new RowData(1, "aaa"));
resultSet.rows.add(new RowData(2, "bbb"));
SqlFileSelectQuery query = new SqlFileSelectQuery();
query.setConfig(runtimeConfig);
query.setSqlFilePath(SqlFileUtil.buildPath(getClass().getName(), method.getName()));
query.setCallerClassName("aaa");
query.setCallerMethodName("bbb");
query.setMethod(method);
query.setSqlLogType(SqlLogType.FORMATTED);
query.prepare();
EntitySingleResultHandler<Emp> handler = new EntitySingleResultHandler<>(_Emp.getSingletonInternal());
try {
handler.handle(resultSet, query, (i, next) -> {
});
fail();
} catch (NonUniqueResultException expected) {
}
}
use of org.seasar.doma.internal.jdbc.mock.MockResultSetMetaData in project doma by domaframework.
the class ScalarProviderTest method testOptionalDomain.
@Test
public void testOptionalDomain() throws Exception {
MockResultSetMetaData metaData = new MockResultSetMetaData();
metaData.columns.add(new ColumnMetaData("aaa"));
MockResultSet resultSet = new MockResultSet(metaData);
resultSet.rows.add(new RowData("hoge"));
resultSet.next();
DomainType<String, PhoneNumber> domainType = _PhoneNumber.getSingletonInternal();
ScalarProvider<String, Optional<PhoneNumber>> provider = new ScalarProvider<>(domainType::createOptionalScalar, new MySelectQuery());
Optional<PhoneNumber> result = provider.get(resultSet);
assertEquals("hoge", result.get().getValue());
}
use of org.seasar.doma.internal.jdbc.mock.MockResultSetMetaData in project doma by domaframework.
the class SelectCommandTest method testExecute_resultList.
@Test
public void testExecute_resultList() throws Exception {
MockResultSetMetaData metaData = new MockResultSetMetaData();
metaData.columns.add(new ColumnMetaData("id"));
metaData.columns.add(new ColumnMetaData("name"));
metaData.columns.add(new ColumnMetaData("salary"));
metaData.columns.add(new ColumnMetaData("version"));
MockResultSet resultSet = new MockResultSet(metaData);
resultSet.rows.add(new RowData(1, "hoge", new BigDecimal(10000), 100));
resultSet.rows.add(new RowData(2, "foo", new BigDecimal(20000), 200));
resultSet.rows.add(new RowData(3, "bar", new BigDecimal(30000), 300));
runtimeConfig.dataSource.connection = new MockConnection(new MockPreparedStatement(resultSet));
SqlFileSelectQuery query = new SqlFileSelectQuery();
query.setConfig(runtimeConfig);
query.setSqlFilePath(SqlFileUtil.buildPath(getClass().getName(), method.getName()));
query.addParameter("salary", BigDecimal.class, new BigDecimal(5000));
query.setCallerClassName("aaa");
query.setCallerMethodName("bbb");
query.setMethod(getClass().getMethod(method.getName()));
query.setSqlLogType(SqlLogType.FORMATTED);
query.prepare();
SelectCommand<List<Emp>> command = new SelectCommand<>(query, new EntityResultListHandler<>(_Emp.getSingletonInternal()));
List<Emp> entities = command.execute();
query.complete();
assertNotNull(entities);
assertEquals(3, entities.size());
Emp entity = entities.get(0);
assertEquals(new Integer(1), entity.getId());
assertEquals("hoge", entity.getName());
assertEquals(new BigDecimal(10000), entity.getSalary());
assertEquals(new Integer(100), entity.getVersion());
entity = entities.get(1);
assertEquals(new Integer(2), entity.getId());
assertEquals("foo", entity.getName());
assertEquals(new BigDecimal(20000), entity.getSalary());
assertEquals(new Integer(200), entity.getVersion());
entity = entities.get(2);
assertEquals(new Integer(3), entity.getId());
assertEquals("bar", entity.getName());
assertEquals(new BigDecimal(30000), entity.getSalary());
assertEquals(new Integer(300), entity.getVersion());
List<BindValue> bindValues = runtimeConfig.dataSource.connection.preparedStatement.bindValues;
BindValue bindValue = bindValues.get(0);
assertEquals(new BigDecimal(5000), bindValue.getValue());
assertEquals(1, bindValue.getIndex());
}
use of org.seasar.doma.internal.jdbc.mock.MockResultSetMetaData in project doma by domaframework.
the class SelectCommandTest method testExecute_resultStream.
@Test
public void testExecute_resultStream() throws Exception {
MockResultSetMetaData metaData = new MockResultSetMetaData();
metaData.columns.add(new ColumnMetaData("id"));
metaData.columns.add(new ColumnMetaData("name"));
metaData.columns.add(new ColumnMetaData("salary"));
metaData.columns.add(new ColumnMetaData("version"));
MockResultSet resultSet = new MockResultSet(metaData);
resultSet.rows.add(new RowData(1, "hoge", new BigDecimal(10000), 100));
resultSet.rows.add(new RowData(2, "foo", new BigDecimal(20000), 200));
resultSet.rows.add(new RowData(3, "bar", new BigDecimal(30000), 300));
runtimeConfig.dataSource.connection = new MockConnection(new MockPreparedStatement(resultSet));
SqlFileSelectQuery query = new SqlFileSelectQuery();
query.setConfig(runtimeConfig);
query.setSqlFilePath(SqlFileUtil.buildPath(getClass().getName(), method.getName()));
query.addParameter("salary", BigDecimal.class, new BigDecimal(5000));
query.setCallerClassName("aaa");
query.setCallerMethodName("bbb");
query.setMethod(getClass().getMethod(method.getName()));
query.setSqlLogType(SqlLogType.FORMATTED);
query.setFetchType(FetchType.LAZY);
query.setResultStream(true);
query.prepare();
SelectCommand<Stream<Emp>> command = new SelectCommand<>(query, new EntityStreamHandler<>(_Emp.getSingletonInternal(), Function.identity()));
try (Stream<Emp> stream = command.execute()) {
query.complete();
List<Emp> entities = stream.collect(Collectors.toList());
assertNotNull(entities);
assertEquals(3, entities.size());
Emp entity = entities.get(0);
assertEquals(new Integer(1), entity.getId());
assertEquals("hoge", entity.getName());
assertEquals(new BigDecimal(10000), entity.getSalary());
assertEquals(new Integer(100), entity.getVersion());
entity = entities.get(1);
assertEquals(new Integer(2), entity.getId());
assertEquals("foo", entity.getName());
assertEquals(new BigDecimal(20000), entity.getSalary());
assertEquals(new Integer(200), entity.getVersion());
entity = entities.get(2);
assertEquals(new Integer(3), entity.getId());
assertEquals("bar", entity.getName());
assertEquals(new BigDecimal(30000), entity.getSalary());
assertEquals(new Integer(300), entity.getVersion());
List<BindValue> bindValues = runtimeConfig.dataSource.connection.preparedStatement.bindValues;
BindValue bindValue = bindValues.get(0);
assertEquals(new BigDecimal(5000), bindValue.getValue());
assertEquals(1, bindValue.getIndex());
assertFalse(runtimeConfig.dataSource.connection.preparedStatement.resultSet.isClosed());
assertFalse(runtimeConfig.dataSource.connection.preparedStatement.isClosed());
assertFalse(runtimeConfig.dataSource.connection.isClosed());
}
assertTrue(runtimeConfig.dataSource.connection.preparedStatement.resultSet.isClosed());
assertTrue(runtimeConfig.dataSource.connection.preparedStatement.isClosed());
assertTrue(runtimeConfig.dataSource.connection.isClosed());
}
Aggregations