Search in sources :

Example 1 with MockResultSet

use of org.dbflute.mock.MockResultSet in project dbflute-core by dbflute.

the class TnScalarDynamicResultSetHandlerTest method test_handle_scalar.

public void test_handle_scalar() throws SQLException {
    // ## Arrange ##
    MockValueType valueType = new MockValueType() {

        @Override
        public Object getValue(ResultSet resultSet, int index) throws SQLException {
            assertEquals(1, index);
            return 99;
        }
    };
    TnScalarDynamicResultSetHandler handler = new TnScalarDynamicResultSetHandler(valueType) {

        @Override
        protected <ELEMENT> List<ELEMENT> newArrayList() {
            fail("should not be called");
            return null;
        }
    };
    MockResultSet rs = new MockResultSet() {

        private boolean called;

        @Override
        public boolean next() throws SQLException {
            try {
                return !called;
            } finally {
                called = true;
            }
        }
    };
    // ## Act ##
    Object actual = handler.handle(rs);
    // ## Assert ##
    log("actual=" + actual);
    assertEquals(99, actual);
}
Also used : MockValueType(org.dbflute.mock.MockValueType) MockResultSet(org.dbflute.mock.MockResultSet) ResultSet(java.sql.ResultSet) MockResultSet(org.dbflute.mock.MockResultSet)

Example 2 with MockResultSet

use of org.dbflute.mock.MockResultSet in project dbflute-core by dbflute.

the class TnScalarDynamicResultSetHandlerTest method test_handle_scalarList.

public void test_handle_scalarList() throws SQLException {
    // ## Arrange ##
    MockValueType valueType = new MockValueType() {

        private int count = 0;

        @Override
        public Object getValue(ResultSet resultSet, int index) throws SQLException {
            // 1, 2, 3, ...
            return ++count;
        }
    };
    final String mark = "called";
    final Set<String> markSet = new HashSet<String>();
    TnScalarDynamicResultSetHandler handler = new TnScalarDynamicResultSetHandler(valueType) {

        @Override
        protected <ELEMENT> List<ELEMENT> newArrayList() {
            if (markSet.contains(mark)) {
                fail("should not be called twice");
            }
            markSet.add(mark);
            return super.newArrayList();
        }
    };
    MockResultSet rs = new MockResultSet() {

        private List<Integer> countList = new ArrayList<Integer>();

        {
            countList.add(1);
            countList.add(2);
            countList.add(3);
        }

        @Override
        public boolean next() throws SQLException {
            if (countList.isEmpty()) {
                return false;
            }
            countList.remove(0);
            return true;
        }
    };
    // ## Act ##
    Object actual = handler.handle(rs);
    // ## Assert ##
    log("actual=" + actual);
    assertEquals(Arrays.asList(new Integer[] { 1, 2, 3 }), actual);
    assertTrue(markSet.contains(mark));
}
Also used : MockValueType(org.dbflute.mock.MockValueType) MockResultSet(org.dbflute.mock.MockResultSet) ResultSet(java.sql.ResultSet) List(java.util.List) ArrayList(java.util.ArrayList) MockResultSet(org.dbflute.mock.MockResultSet) HashSet(java.util.HashSet)

Aggregations

ResultSet (java.sql.ResultSet)2 MockResultSet (org.dbflute.mock.MockResultSet)2 MockValueType (org.dbflute.mock.MockValueType)2 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1 List (java.util.List)1