Search in sources :

Example 6 with ResultHandler

use of org.apache.ibatis.session.ResultHandler in project mybatis-3 by mybatis.

the class RefCursorTest method shouldUseResultHandlerOnOutputParam.

@Test
void shouldUseResultHandlerOnOutputParam() {
    class OrderResultHandler implements ResultHandler<Order> {

        private List<Order> orders = new ArrayList<>();

        @Override
        public void handleResult(ResultContext<? extends Order> resultContext) {
            Order order = resultContext.getResultObject();
            order.setCustomerName("Anonymous");
            orders.add(order);
        }

        List<Order> getResult() {
            return orders;
        }
    }
    try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
        OrdersMapper mapper = sqlSession.getMapper(OrdersMapper.class);
        OrderResultHandler handler = new OrderResultHandler();
        Map<String, Object> parameter = new HashMap<>();
        parameter.put("orderId", 1);
        mapper.getOrder3(parameter, handler);
        assertNull(parameter.get("order"));
        assertEquals(3, parameter.get("detailCount"));
        assertEquals("Anonymous", handler.getResult().get(0).getCustomerName());
    }
}
Also used : ResultContext(org.apache.ibatis.session.ResultContext) SqlSession(org.apache.ibatis.session.SqlSession) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) List(java.util.List) ResultHandler(org.apache.ibatis.session.ResultHandler) BaseDataTest(org.apache.ibatis.BaseDataTest) Test(org.junit.jupiter.api.Test)

Example 7 with ResultHandler

use of org.apache.ibatis.session.ResultHandler in project mybatis-3 by mybatis.

the class CommonPropertyDeferLoadTest method testDeferLoadAfterResultHandlerWithLazyLoad.

@Test
void testDeferLoadAfterResultHandlerWithLazyLoad() {
    try (SqlSession sqlSession = lazyLoadSqlSessionFactory.openSession()) {
        class MyResultHandler implements ResultHandler {

            private List<Child> children = new ArrayList<>();

            @Override
            public void handleResult(ResultContext context) {
                Child child = (Child) context.getResultObject();
                children.add(child);
            }
        }
        MyResultHandler myResultHandler = new MyResultHandler();
        sqlSession.select("org.apache.ibatis.submitted.deferload_common_property.ChildMapper.selectAll", myResultHandler);
        for (Child child : myResultHandler.children) {
            assertNotNull(child.getFather());
        }
    }
}
Also used : ResultContext(org.apache.ibatis.session.ResultContext) SqlSession(org.apache.ibatis.session.SqlSession) ArrayList(java.util.ArrayList) List(java.util.List) ResultHandler(org.apache.ibatis.session.ResultHandler) BaseDataTest(org.apache.ibatis.BaseDataTest) Test(org.junit.jupiter.api.Test)

Example 8 with ResultHandler

use of org.apache.ibatis.session.ResultHandler in project mybatis-3 by mybatis.

the class CommonPropertyDeferLoadTest method testDeferLoadDuringResultHandler.

@Test
void testDeferLoadDuringResultHandler() {
    try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
        class MyResultHandler implements ResultHandler {

            @Override
            public void handleResult(ResultContext context) {
                Child child = (Child) context.getResultObject();
                assertNotNull(child.getFather());
            }
        }
        sqlSession.select("org.apache.ibatis.submitted.deferload_common_property.ChildMapper.selectAll", new MyResultHandler());
    }
}
Also used : ResultContext(org.apache.ibatis.session.ResultContext) SqlSession(org.apache.ibatis.session.SqlSession) ResultHandler(org.apache.ibatis.session.ResultHandler) BaseDataTest(org.apache.ibatis.BaseDataTest) Test(org.junit.jupiter.api.Test)

Example 9 with ResultHandler

use of org.apache.ibatis.session.ResultHandler in project mybatis-3 by mybatis.

the class CommonPropertyDeferLoadTest method testDeferLoadAfterResultHandler.

@Test
void testDeferLoadAfterResultHandler() {
    try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
        class MyResultHandler implements ResultHandler {

            private List<Child> children = new ArrayList<>();

            @Override
            public void handleResult(ResultContext context) {
                Child child = (Child) context.getResultObject();
                children.add(child);
            }
        }
        MyResultHandler myResultHandler = new MyResultHandler();
        sqlSession.select("org.apache.ibatis.submitted.deferload_common_property.ChildMapper.selectAll", myResultHandler);
        for (Child child : myResultHandler.children) {
            assertNotNull(child.getFather());
        }
    }
}
Also used : ResultContext(org.apache.ibatis.session.ResultContext) SqlSession(org.apache.ibatis.session.SqlSession) ArrayList(java.util.ArrayList) List(java.util.List) ResultHandler(org.apache.ibatis.session.ResultHandler) BaseDataTest(org.apache.ibatis.BaseDataTest) Test(org.junit.jupiter.api.Test)

Example 10 with ResultHandler

use of org.apache.ibatis.session.ResultHandler in project sonarqube by SonarSource.

the class IssueMapperTest method scrollClosedByComponentUuid_returns_closed_issues_of_type_SECURITY_HOTSPOT.

@Test
public void scrollClosedByComponentUuid_returns_closed_issues_of_type_SECURITY_HOTSPOT() {
    RuleType ruleType = randomSupportedRuleType();
    ComponentDto component = randomComponent();
    IssueDto securityHotspotIssue = insertNewClosedIssue(component, RuleType.SECURITY_HOTSPOT);
    IssueChangeDto hotspotChangedData = insertToClosedDiff(securityHotspotIssue);
    IssueDto issue = insertNewClosedIssue(component, ruleType);
    IssueChangeDto issueChange = insertToClosedDiff(issue);
    RecorderResultHandler resultHandler = new RecorderResultHandler();
    underTest.scrollClosedByComponentUuid(component.uuid(), NO_FILTERING_ON_CLOSE_DATE, resultHandler);
    assertThat(resultHandler.issues).extracting(IssueDto::getKey, t -> t.getClosedChangeData().get()).containsOnly(tuple(issue.getKey(), issueChange.getChangeData()), tuple(securityHotspotIssue.getKey(), hotspotChangedData.getChangeData()));
}
Also used : IntStream(java.util.stream.IntStream) Arrays(java.util.Arrays) RuleDefinitionDto(org.sonar.db.rule.RuleDefinitionDto) Date(java.util.Date) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) RunWith(org.junit.runner.RunWith) Random(java.util.Random) DataProvider(com.tngtech.java.junit.dataprovider.DataProvider) DataProviderRunner(com.tngtech.java.junit.dataprovider.DataProviderRunner) DbSession(org.sonar.db.DbSession) ArrayList(java.util.ArrayList) RuleType(org.sonar.api.rules.RuleType) Uuids(org.sonar.core.util.Uuids) DateUtils(org.sonar.api.utils.DateUtils) ComponentTesting(org.sonar.db.component.ComponentTesting) UuidFactoryFast(org.sonar.core.util.UuidFactoryFast) ResultContext(org.apache.ibatis.session.ResultContext) Before(org.junit.Before) DbTester(org.sonar.db.DbTester) RuleTesting(org.sonar.db.rule.RuleTesting) System2(org.sonar.api.utils.System2) RandomStringUtils.randomAlphabetic(org.apache.commons.lang.RandomStringUtils.randomAlphabetic) Assertions.tuple(org.assertj.core.api.Assertions.tuple) UseDataProvider(com.tngtech.java.junit.dataprovider.UseDataProvider) AlwaysIncreasingSystem2(org.sonar.api.impl.utils.AlwaysIncreasingSystem2) ResultHandler(org.apache.ibatis.session.ResultHandler) Test(org.junit.Test) Consumer(java.util.function.Consumer) FieldDiffs(org.sonar.core.issue.FieldDiffs) List(java.util.List) ComponentDto(org.sonar.db.component.ComponentDto) Rule(org.junit.Rule) Issue(org.sonar.api.issue.Issue) RuleDto(org.sonar.db.rule.RuleDto) ComponentDto(org.sonar.db.component.ComponentDto) RuleType(org.sonar.api.rules.RuleType) Test(org.junit.Test)

Aggregations

ResultHandler (org.apache.ibatis.session.ResultHandler)25 ResultContext (org.apache.ibatis.session.ResultContext)17 ArrayList (java.util.ArrayList)16 List (java.util.List)14 Test (org.junit.Test)13 SqlSession (org.apache.ibatis.session.SqlSession)10 RowBounds (org.apache.ibatis.session.RowBounds)8 Random (java.util.Random)7 Consumer (java.util.function.Consumer)7 RandomStringUtils.randomAlphabetic (org.apache.commons.lang.RandomStringUtils.randomAlphabetic)7 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)7 DataProvider (com.tngtech.java.junit.dataprovider.DataProvider)6 DataProviderRunner (com.tngtech.java.junit.dataprovider.DataProviderRunner)6 UseDataProvider (com.tngtech.java.junit.dataprovider.UseDataProvider)6 Arrays (java.util.Arrays)6 Date (java.util.Date)6 IntStream (java.util.stream.IntStream)6 Executor (org.apache.ibatis.executor.Executor)6 BoundSql (org.apache.ibatis.mapping.BoundSql)6 MappedStatement (org.apache.ibatis.mapping.MappedStatement)6