Package org.mule.module.db.sql.executor

Source Code of org.mule.module.db.sql.executor.QueryTestCase

/*
* Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/

package org.mule.module.db.sql.executor;

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.mule.module.db.internal.domain.connection.DbConnection;
import org.mule.module.db.internal.domain.executor.SelectExecutor;
import org.mule.module.db.internal.domain.param.QueryParam;
import org.mule.module.db.internal.domain.query.Query;
import org.mule.module.db.internal.domain.query.QueryTemplate;
import org.mule.module.db.internal.domain.query.QueryType;
import org.mule.module.db.internal.domain.statement.StatementFactory;
import org.mule.module.db.internal.result.resultset.ResultSetHandler;
import org.mule.tck.junit4.AbstractMuleTestCase;
import org.mule.tck.size.SmallTest;

import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.junit.Test;
import org.mockito.Mockito;

@SmallTest
public class QueryTestCase extends AbstractMuleTestCase
{

    @Test
    public void testQueryReturnsTheExpectedResult() throws Exception
    {
        ResultSet resultSet = mock(ResultSet.class);
        Statement statement = mock(Statement.class);
        String sqlText = "SELECT * FROM dummy";
        when(statement.executeQuery(sqlText)).thenReturn(resultSet);
        StatementFactory statementFactory = mock(StatementFactory.class);

        DbConnection connection = mock(DbConnection.class);

        ResultSetHandler resultHandler = mock(ResultSetHandler.class);
        List<Object> processedResult = new ArrayList<Object>();
        when(resultHandler.processResultSet(connection, resultSet)).thenReturn(processedResult);
        SelectExecutor selectExecutor = new SelectExecutor(statementFactory, resultHandler);

        QueryTemplate queryTemplate = new QueryTemplate(sqlText, QueryType.SELECT, Collections.<QueryParam>emptyList());
        Mockito.when(statementFactory.create(connection, queryTemplate)).thenReturn(statement);

        Query query = new Query(queryTemplate, null);
        Object result = selectExecutor.execute(connection, query);

        assertEquals(processedResult, result);
    }
}
TOP

Related Classes of org.mule.module.db.sql.executor.QueryTestCase

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.