/**
 * 
 */
package jp.co.tmx;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import org.junit.Test;

/**
 * 動画で作成したテストケースにコメントを追加しています。
 * @author Techmatrix
 *
 */
public class MockClassTest {

	@Test
	public void testGetDataBaseStatement() throws Exception {
		// Given
		MockClass underTest = new MockClass();
		// Jtestが生成したモックと振る舞いの定義。
		// テストによっては戻り値などを手動で修正してテストを行います。
		Connection con = mock(Connection.class);
		Statement createStatementResult = mock(Statement.class);
		ResultSet executeQueryResult = mock(ResultSet.class);
		boolean nextResult = false; // テストの内容によって値を手動で修正します。
		when(executeQueryResult.next()).thenReturn(nextResult);
		when(createStatementResult.executeQuery(anyString())).thenReturn(executeQueryResult);
		when(con.createStatement()).thenReturn(createStatementResult);
		String result = underTest.getDataBaseStatement(con);

		// Then
		assertNotNull(result);
		assertEquals("", result);
	}
}