alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Spring Framework example source code file (CciTemplateTests.java)

This example Spring Framework source code file (CciTemplateTests.java) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Spring Framework tags/keywords

ccitemplate, ccitemplate, connection, connectionfactory, connectionfactory, interaction, interactionspec, jdbc, mockcontrol, mockcontrol, record, record, recordcreator, recordfactory, resourceexception, sql

The Spring Framework CciTemplateTests.java source code

/*
 * Copyright 2002-2005 the original author or authors.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.jca.cci;

import java.sql.SQLException;

import javax.resource.NotSupportedException;
import javax.resource.ResourceException;
import javax.resource.cci.Connection;
import javax.resource.cci.ConnectionFactory;
import javax.resource.cci.ConnectionSpec;
import javax.resource.cci.IndexedRecord;
import javax.resource.cci.Interaction;
import javax.resource.cci.InteractionSpec;
import javax.resource.cci.MappedRecord;
import javax.resource.cci.Record;
import javax.resource.cci.RecordFactory;
import javax.resource.cci.ResultSet;

import junit.framework.TestCase;
import org.easymock.MockControl;

import org.springframework.jca.cci.connection.ConnectionSpecConnectionFactoryAdapter;
import org.springframework.jca.cci.connection.NotSupportedRecordFactory;
import org.springframework.jca.cci.core.CciTemplate;
import org.springframework.jca.cci.core.ConnectionCallback;
import org.springframework.jca.cci.core.InteractionCallback;
import org.springframework.jca.cci.core.RecordCreator;
import org.springframework.jca.cci.core.RecordExtractor;

/**
 * @author Thierry Templier
 * @author Juergen Hoeller
 */
public class CciTemplateTests extends TestCase {

	public void testCreateIndexedRecord() throws ResourceException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl recordFactoryControl = MockControl.createStrictControl(RecordFactory.class);
		RecordFactory recordFactory = (RecordFactory) recordFactoryControl.getMock();
		MockControl indexedRecordControl = MockControl.createStrictControl(IndexedRecord.class);
		IndexedRecord indexedRecord = (IndexedRecord) indexedRecordControl.getMock();

		connectionFactory.getRecordFactory();
		connectionFactoryControl.setReturnValue(recordFactory, 1);

		recordFactory.createIndexedRecord("name");
		recordFactoryControl.setReturnValue(indexedRecord, 1);

		connectionFactoryControl.replay();
		recordFactoryControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		ct.createIndexedRecord("name");

		connectionFactoryControl.verify();
		recordFactoryControl.verify();
	}

	public void testCreateMappedRecord() throws ResourceException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl recordFactoryControl = MockControl.createStrictControl(RecordFactory.class);
		RecordFactory recordFactory = (RecordFactory) recordFactoryControl.getMock();
		MockControl mappedRecordControl = MockControl.createStrictControl(MappedRecord.class);
		MappedRecord mappedRecord = (MappedRecord) mappedRecordControl.getMock();

		connectionFactory.getRecordFactory();
		connectionFactoryControl.setReturnValue(recordFactory, 1);

		recordFactory.createMappedRecord("name");
		recordFactoryControl.setReturnValue(mappedRecord, 1);

		connectionFactoryControl.replay();
		recordFactoryControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		ct.createMappedRecord("name");

		connectionFactoryControl.verify();
		recordFactoryControl.verify();
	}

	public void testTemplateExecuteInputOutput() throws ResourceException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl connectionControl = MockControl.createStrictControl(Connection.class);
		Connection connection = (Connection) connectionControl.getMock();
		MockControl interactionControl = MockControl.createStrictControl(Interaction.class);
		Interaction interaction = (Interaction) interactionControl.getMock();

		MockControl inputRecordControl = MockControl.createStrictControl(Record.class);
		Record inputRecord = (Record) inputRecordControl.getMock();
		MockControl outputRecordControl = MockControl.createStrictControl(Record.class);
		Record outputRecord = (Record) outputRecordControl.getMock();

		MockControl interactionSpecControl = MockControl.createStrictControl(InteractionSpec.class);
		InteractionSpec interactionSpec = (InteractionSpec) interactionSpecControl.getMock();

		connectionFactory.getConnection();
		connectionFactoryControl.setReturnValue(connection, 1);

		connection.createInteraction();
		connectionControl.setReturnValue(interaction, 1);

		interaction.execute(interactionSpec, inputRecord, outputRecord);
		interactionControl.setReturnValue(true, 1);

		interaction.close();
		interactionControl.setVoidCallable(1);

		connection.close();
		connectionControl.setVoidCallable(1);

		connectionFactoryControl.replay();
		connectionControl.replay();
		interactionControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		ct.execute(interactionSpec, inputRecord, outputRecord);

		connectionFactoryControl.verify();
		connectionControl.verify();
		interactionControl.verify();
	}

	public void testTemplateExecuteWithCreatorAndRecordFactoryNotSupported() throws ResourceException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl connectionControl = MockControl.createStrictControl(Connection.class);
		Connection connection = (Connection) connectionControl.getMock();
		MockControl interactionControl = MockControl.createStrictControl(Interaction.class);
		Interaction interaction = (Interaction) interactionControl.getMock();

		MockControl inputRecordControl = MockControl.createStrictControl(Record.class);
		Record inputRecord = (Record) inputRecordControl.getMock();
		MockControl outputRecordControl = MockControl.createStrictControl(Record.class);
		final Record outputRecord = (Record) outputRecordControl.getMock();

		MockControl interactionSpecControl = MockControl.createStrictControl(InteractionSpec.class);
		InteractionSpec interactionSpec = (InteractionSpec) interactionSpecControl.getMock();

		connectionFactory.getConnection();
		connectionFactoryControl.setReturnValue(connection);

		connectionFactory.getRecordFactory();
		connectionFactoryControl.setThrowable(new NotSupportedException("not supported"), 1);

		connection.createInteraction();
		connectionControl.setReturnValue(interaction);

		interaction.execute(interactionSpec, inputRecord, outputRecord);
		interactionControl.setReturnValue(true, 1);

		interaction.close();
		interactionControl.setVoidCallable(1);

		connection.close();
		connectionControl.setVoidCallable(1);

		connectionFactoryControl.replay();
		connectionControl.replay();
		interactionControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		ct.setOutputRecordCreator(new RecordCreator() {
			public Record createRecord(RecordFactory recordFactory) {
				assertTrue(recordFactory instanceof NotSupportedRecordFactory);
				return outputRecord;
			}
		});
		ct.execute(interactionSpec, inputRecord);

		connectionFactoryControl.verify();
		connectionControl.verify();
		interactionControl.verify();
	}

	public void testTemplateExecuteInputTrueWithCreator() throws ResourceException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl recordFactoryControl = MockControl.createStrictControl(RecordFactory.class);
		RecordFactory recordFactory = (RecordFactory) recordFactoryControl.getMock();
		MockControl connectionControl = MockControl.createStrictControl(Connection.class);
		Connection connection = (Connection) connectionControl.getMock();
		MockControl interactionControl = MockControl.createStrictControl(Interaction.class);
		Interaction interaction = (Interaction) interactionControl.getMock();
		MockControl creatorControl = MockControl.createStrictControl(RecordCreator.class);
		RecordCreator creator = (RecordCreator) creatorControl.getMock();

		MockControl inputRecordControl = MockControl.createStrictControl(Record.class);
		Record inputRecord = (Record) inputRecordControl.getMock();
		MockControl outputRecordControl = MockControl.createStrictControl(Record.class);
		Record outputRecord = (Record) outputRecordControl.getMock();

		MockControl interactionSpecControl = MockControl.createStrictControl(InteractionSpec.class);
		InteractionSpec interactionSpec = (InteractionSpec) interactionSpecControl.getMock();

		connectionFactory.getConnection();
		connectionFactoryControl.setReturnValue(connection);

		connectionFactory.getRecordFactory();
		connectionFactoryControl.setReturnValue(recordFactory, 1);

		connection.createInteraction();
		connectionControl.setReturnValue(interaction);

		creator.createRecord(recordFactory);
		creatorControl.setReturnValue(outputRecord);

		interaction.execute(interactionSpec, inputRecord, outputRecord);
		interactionControl.setReturnValue(true, 1);

		interaction.close();
		interactionControl.setVoidCallable(1);

		connection.close();
		connectionControl.setVoidCallable(1);

		connectionFactoryControl.replay();
		connectionControl.replay();
		interactionControl.replay();
		creatorControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		ct.setOutputRecordCreator(creator);
		ct.execute(interactionSpec, inputRecord);

		connectionFactoryControl.verify();
		connectionControl.verify();
		interactionControl.verify();
		creatorControl.verify();
	}

	public void testTemplateExecuteInputFalse() throws ResourceException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl connectionControl = MockControl.createStrictControl(Connection.class);
		Connection connection = (Connection) connectionControl.getMock();
		MockControl interactionControl = MockControl.createStrictControl(Interaction.class);
		Interaction interaction = (Interaction) interactionControl.getMock();

		MockControl inputRecordControl = MockControl.createStrictControl(Record.class);
		Record inputRecord = (Record) inputRecordControl.getMock();
		MockControl outputRecordControl = MockControl.createStrictControl(Record.class);
		Record outputRecord = (Record) outputRecordControl.getMock();

		MockControl interactionSpecControl = MockControl.createStrictControl(InteractionSpec.class);
		InteractionSpec interactionSpec = (InteractionSpec) interactionSpecControl.getMock();

		connectionFactory.getConnection();
		connectionFactoryControl.setReturnValue(connection);

		connection.createInteraction();
		connectionControl.setReturnValue(interaction);

		interaction.execute(interactionSpec, inputRecord);
		interactionControl.setReturnValue(outputRecord, 1);

		interaction.close();
		interactionControl.setVoidCallable(1);

		connection.close();
		connectionControl.setVoidCallable(1);

		connectionFactoryControl.replay();
		connectionControl.replay();
		interactionControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		ct.execute(interactionSpec, inputRecord);

		connectionFactoryControl.verify();
		connectionControl.verify();
		interactionControl.verify();
	}

	public void testTemplateExecuteInputExtractorTrueWithCreator() throws ResourceException, SQLException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl recordFactoryControl = MockControl.createStrictControl(RecordFactory.class);
		RecordFactory recordFactory = (RecordFactory) recordFactoryControl.getMock();
		MockControl connectionControl = MockControl.createStrictControl(Connection.class);
		Connection connection = (Connection) connectionControl.getMock();
		MockControl interactionControl = MockControl.createStrictControl(Interaction.class);
		Interaction interaction = (Interaction) interactionControl.getMock();
		MockControl extractorControl = MockControl.createStrictControl(RecordExtractor.class);
		RecordExtractor extractor = (RecordExtractor) extractorControl.getMock();
		MockControl creatorControl = MockControl.createStrictControl(RecordCreator.class);
		RecordCreator creator = (RecordCreator) creatorControl.getMock();

		MockControl inputRecordControl = MockControl.createStrictControl(Record.class);
		Record inputRecord = (Record) inputRecordControl.getMock();
		MockControl outputRecordControl = MockControl.createStrictControl(Record.class);
		Record outputRecord = (Record) outputRecordControl.getMock();

		MockControl interactionSpecControl = MockControl.createStrictControl(InteractionSpec.class);
		InteractionSpec interactionSpec = (InteractionSpec) interactionSpecControl.getMock();

		Object obj = new Object();

		connectionFactory.getConnection();
		connectionFactoryControl.setReturnValue(connection);

		connection.createInteraction();
		connectionControl.setReturnValue(interaction);

		connectionFactory.getRecordFactory();
		connectionFactoryControl.setReturnValue(recordFactory, 1);

		creator.createRecord(recordFactory);
		creatorControl.setReturnValue(outputRecord);

		interaction.execute(interactionSpec, inputRecord, outputRecord);
		interactionControl.setReturnValue(true, 1);

		extractor.extractData(outputRecord);
		extractorControl.setReturnValue(obj);

		interaction.close();
		interactionControl.setVoidCallable(1);

		connection.close();
		connectionControl.setVoidCallable(1);

		connectionFactoryControl.replay();
		connectionControl.replay();
		interactionControl.replay();
		extractorControl.replay();
		creatorControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		ct.setOutputRecordCreator(creator);
		ct.execute(interactionSpec, inputRecord, extractor);

		connectionFactoryControl.verify();
		connectionControl.verify();
		interactionControl.verify();
		extractorControl.verify();
		creatorControl.verify();
	}

	public void testTemplateExecuteInputExtractorFalse() throws ResourceException, SQLException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl connectionControl = MockControl.createStrictControl(Connection.class);
		Connection connection = (Connection) connectionControl.getMock();
		MockControl interactionControl = MockControl.createStrictControl(Interaction.class);
		Interaction interaction = (Interaction) interactionControl.getMock();
		MockControl extractorControl = MockControl.createStrictControl(RecordExtractor.class);
		RecordExtractor extractor = (RecordExtractor) extractorControl.getMock();

		MockControl inputRecordControl = MockControl.createStrictControl(Record.class);
		Record inputRecord = (Record) inputRecordControl.getMock();
		MockControl outputRecordControl = MockControl.createStrictControl(Record.class);
		Record outputRecord = (Record) outputRecordControl.getMock();

		MockControl interactionSpecControl = MockControl.createStrictControl(InteractionSpec.class);
		InteractionSpec interactionSpec = (InteractionSpec) interactionSpecControl.getMock();

		Object obj = new Object();

		connectionFactory.getConnection();
		connectionFactoryControl.setReturnValue(connection);

		connection.createInteraction();
		connectionControl.setReturnValue(interaction);

		interaction.execute(interactionSpec, inputRecord);
		interactionControl.setReturnValue(outputRecord, 1);

		extractor.extractData(outputRecord);
		extractorControl.setReturnValue(obj);

		interaction.close();
		interactionControl.setVoidCallable(1);

		connection.close();
		connectionControl.setVoidCallable(1);

		connectionFactoryControl.replay();
		connectionControl.replay();
		interactionControl.replay();
		extractorControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		ct.execute(interactionSpec, inputRecord, extractor);

		connectionFactoryControl.verify();
		connectionControl.verify();
		interactionControl.verify();
		extractorControl.verify();
	}

	public void testTemplateExecuteInputGeneratorTrueWithCreator() throws ResourceException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl recordFactoryControl = MockControl.createStrictControl(RecordFactory.class);
		RecordFactory recordFactory = (RecordFactory) recordFactoryControl.getMock();
		MockControl connectionControl = MockControl.createStrictControl(Connection.class);
		Connection connection = (Connection) connectionControl.getMock();
		MockControl interactionControl = MockControl.createStrictControl(Interaction.class);
		Interaction interaction = (Interaction) interactionControl.getMock();
		MockControl generatorControl = MockControl.createStrictControl(RecordCreator.class);
		RecordCreator generator = (RecordCreator) generatorControl.getMock();
		MockControl creatorControl = MockControl.createStrictControl(RecordCreator.class);
		RecordCreator creator = (RecordCreator) creatorControl.getMock();

		MockControl inputRecordControl = MockControl.createStrictControl(Record.class);
		Record inputRecord = (Record) inputRecordControl.getMock();
		MockControl outputRecordControl = MockControl.createStrictControl(Record.class);
		Record outputRecord = (Record) outputRecordControl.getMock();

		MockControl interactionSpecControl = MockControl.createStrictControl(InteractionSpec.class);
		InteractionSpec interactionSpec = (InteractionSpec) interactionSpecControl.getMock();

		connectionFactory.getRecordFactory();
		connectionFactoryControl.setReturnValue(recordFactory, 1);

		generator.createRecord(recordFactory);
		generatorControl.setReturnValue(inputRecord);

		connectionFactory.getConnection();
		connectionFactoryControl.setReturnValue(connection);

		connection.createInteraction();
		connectionControl.setReturnValue(interaction);

		creator.createRecord(recordFactory);
		creatorControl.setReturnValue(outputRecord);

		connectionFactory.getRecordFactory();
		connectionFactoryControl.setReturnValue(recordFactory, 1);

		interaction.execute(interactionSpec, inputRecord, outputRecord);
		interactionControl.setReturnValue(true, 1);

		interaction.close();
		interactionControl.setVoidCallable(1);

		connection.close();
		connectionControl.setVoidCallable(1);

		connectionFactoryControl.replay();
		connectionControl.replay();
		interactionControl.replay();
		generatorControl.replay();
		creatorControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		ct.setOutputRecordCreator(creator);
		ct.execute(interactionSpec, generator);

		connectionFactoryControl.verify();
		connectionControl.verify();
		interactionControl.verify();
		generatorControl.verify();
		creatorControl.verify();
	}

	public void testTemplateExecuteInputGeneratorFalse() throws ResourceException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl recordFactoryControl = MockControl.createStrictControl(RecordFactory.class);
		RecordFactory recordFactory = (RecordFactory) recordFactoryControl.getMock();
		MockControl connectionControl = MockControl.createStrictControl(Connection.class);
		Connection connection = (Connection) connectionControl.getMock();
		MockControl interactionControl = MockControl.createStrictControl(Interaction.class);
		Interaction interaction = (Interaction) interactionControl.getMock();
		MockControl generatorControl = MockControl.createStrictControl(RecordCreator.class);
		RecordCreator generator = (RecordCreator) generatorControl.getMock();

		MockControl inputRecordControl = MockControl.createStrictControl(Record.class);
		Record inputRecord = (Record) inputRecordControl.getMock();
		MockControl outputRecordControl = MockControl.createStrictControl(Record.class);
		Record outputRecord = (Record) outputRecordControl.getMock();

		MockControl interactionSpecControl = MockControl.createStrictControl(InteractionSpec.class);
		InteractionSpec interactionSpec = (InteractionSpec) interactionSpecControl.getMock();

		connectionFactory.getRecordFactory();
		connectionFactoryControl.setReturnValue(recordFactory, 1);

		connectionFactory.getConnection();
		connectionFactoryControl.setReturnValue(connection);

		connection.createInteraction();
		connectionControl.setReturnValue(interaction);

		generator.createRecord(recordFactory);
		generatorControl.setReturnValue(inputRecord);

		interaction.execute(interactionSpec, inputRecord);
		interactionControl.setReturnValue(outputRecord, 1);

		interaction.close();
		interactionControl.setVoidCallable(1);

		connection.close();
		connectionControl.setVoidCallable(1);

		connectionFactoryControl.replay();
		connectionControl.replay();
		interactionControl.replay();
		generatorControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		ct.execute(interactionSpec, generator);

		connectionFactoryControl.verify();
		connectionControl.verify();
		interactionControl.verify();
		generatorControl.verify();
	}

	public void testTemplateExecuteInputGeneratorExtractorTrueWithCreator() throws ResourceException, SQLException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl recordFactoryControl = MockControl.createStrictControl(RecordFactory.class);
		RecordFactory recordFactory = (RecordFactory) recordFactoryControl.getMock();
		MockControl connectionControl = MockControl.createStrictControl(Connection.class);
		Connection connection = (Connection) connectionControl.getMock();
		MockControl interactionControl = MockControl.createStrictControl(Interaction.class);
		Interaction interaction = (Interaction) interactionControl.getMock();
		MockControl generatorControl = MockControl.createStrictControl(RecordCreator.class);
		RecordCreator generator = (RecordCreator) generatorControl.getMock();
		MockControl extractorControl = MockControl.createStrictControl(RecordExtractor.class);
		RecordExtractor extractor = (RecordExtractor) extractorControl.getMock();
		MockControl creatorControl = MockControl.createStrictControl(RecordCreator.class);
		RecordCreator creator = (RecordCreator) creatorControl.getMock();

		MockControl inputRecordControl = MockControl.createStrictControl(Record.class);
		Record inputRecord = (Record) inputRecordControl.getMock();
		MockControl outputRecordControl = MockControl.createStrictControl(Record.class);
		Record outputRecord = (Record) outputRecordControl.getMock();

		MockControl interactionSpecControl = MockControl.createStrictControl(InteractionSpec.class);
		InteractionSpec interactionSpec = (InteractionSpec) interactionSpecControl.getMock();

		Object obj = new Object();

		connectionFactory.getRecordFactory();
		connectionFactoryControl.setReturnValue(recordFactory, 1);

		connectionFactory.getConnection();
		connectionFactoryControl.setReturnValue(connection);

		connection.createInteraction();
		connectionControl.setReturnValue(interaction);

		creator.createRecord(recordFactory);
		creatorControl.setReturnValue(outputRecord);

		connectionFactory.getRecordFactory();
		connectionFactoryControl.setReturnValue(recordFactory, 1);

		generator.createRecord(recordFactory);
		generatorControl.setReturnValue(inputRecord);

		interaction.execute(interactionSpec, inputRecord, outputRecord);
		interactionControl.setReturnValue(true, 1);

		extractor.extractData(outputRecord);
		extractorControl.setReturnValue(obj);

		interaction.close();
		interactionControl.setVoidCallable(1);

		connection.close();
		connectionControl.setVoidCallable(1);

		connectionFactoryControl.replay();
		connectionControl.replay();
		interactionControl.replay();
		generatorControl.replay();
		extractorControl.replay();
		creatorControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		ct.setOutputRecordCreator(creator);
		assertEquals(obj, ct.execute(interactionSpec, generator, extractor));

		connectionFactoryControl.verify();
		connectionControl.verify();
		interactionControl.verify();
		generatorControl.verify();
		extractorControl.verify();
		creatorControl.verify();
	}

	public void testTemplateExecuteInputGeneratorExtractorFalse() throws ResourceException, SQLException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl recordFactoryControl = MockControl.createStrictControl(RecordFactory.class);
		RecordFactory recordFactory = (RecordFactory) recordFactoryControl.getMock();
		MockControl connectionControl = MockControl.createStrictControl(Connection.class);
		Connection connection = (Connection) connectionControl.getMock();
		MockControl interactionControl = MockControl.createStrictControl(Interaction.class);
		Interaction interaction = (Interaction) interactionControl.getMock();
		MockControl generatorControl = MockControl.createStrictControl(RecordCreator.class);
		RecordCreator generator = (RecordCreator) generatorControl.getMock();
		MockControl extractorControl = MockControl.createStrictControl(RecordExtractor.class);
		RecordExtractor extractor = (RecordExtractor) extractorControl.getMock();

		MockControl inputRecordControl = MockControl.createStrictControl(Record.class);
		Record inputRecord = (Record) inputRecordControl.getMock();
		MockControl outputRecordControl = MockControl.createStrictControl(Record.class);
		Record outputRecord = (Record) outputRecordControl.getMock();

		MockControl interactionSpecControl = MockControl.createStrictControl(InteractionSpec.class);
		InteractionSpec interactionSpec = (InteractionSpec) interactionSpecControl.getMock();

		Object obj = new Object();

		connectionFactory.getRecordFactory();
		connectionFactoryControl.setReturnValue(recordFactory, 1);

		connectionFactory.getConnection();
		connectionFactoryControl.setReturnValue(connection);

		connection.createInteraction();
		connectionControl.setReturnValue(interaction);

		generator.createRecord(recordFactory);
		generatorControl.setReturnValue(inputRecord);

		interaction.execute(interactionSpec, inputRecord);
		interactionControl.setReturnValue(outputRecord, 1);

		extractor.extractData(outputRecord);
		extractorControl.setReturnValue(obj);

		interaction.close();
		interactionControl.setVoidCallable(1);

		connection.close();
		connectionControl.setVoidCallable(1);

		connectionFactoryControl.replay();
		connectionControl.replay();
		interactionControl.replay();
		generatorControl.replay();
		extractorControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		ct.execute(interactionSpec, generator, extractor);

		connectionFactoryControl.verify();
		connectionControl.verify();
		interactionControl.verify();
		generatorControl.verify();
		extractorControl.verify();
	}

	public void testTemplateExecuteInputOutputConnectionSpec() throws ResourceException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl connectionControl = MockControl.createStrictControl(Connection.class);
		Connection connection = (Connection) connectionControl.getMock();
		MockControl interactionControl = MockControl.createStrictControl(Interaction.class);
		Interaction interaction = (Interaction) interactionControl.getMock();

		MockControl inputRecordControl = MockControl.createStrictControl(Record.class);
		Record inputRecord = (Record) inputRecordControl.getMock();
		MockControl outputRecordControl = MockControl.createStrictControl(Record.class);
		Record outputRecord = (Record) outputRecordControl.getMock();

		MockControl connectionSpecControl = MockControl.createStrictControl(ConnectionSpec.class);
		ConnectionSpec connectionSpec = (ConnectionSpec) connectionSpecControl.getMock();
		MockControl interactionSpecControl = MockControl.createStrictControl(InteractionSpec.class);
		InteractionSpec interactionSpec = (InteractionSpec) interactionSpecControl.getMock();

		connectionFactory.getConnection(connectionSpec);
		connectionFactoryControl.setReturnValue(connection, 1);

		connection.createInteraction();
		connectionControl.setReturnValue(interaction, 1);

		interaction.execute(interactionSpec, inputRecord, outputRecord);
		interactionControl.setReturnValue(true, 1);

		interaction.close();
		interactionControl.setVoidCallable(1);

		connection.close();
		connectionControl.setVoidCallable(1);

		connectionFactoryControl.replay();
		connectionControl.replay();
		interactionControl.replay();

		ConnectionSpecConnectionFactoryAdapter adapter = new ConnectionSpecConnectionFactoryAdapter();
		adapter.setTargetConnectionFactory(connectionFactory);
		adapter.setConnectionSpec(connectionSpec);
		CciTemplate ct = new CciTemplate(adapter);
		ct.execute(interactionSpec, inputRecord, outputRecord);

		connectionFactoryControl.verify();
		connectionControl.verify();
		interactionControl.verify();
	}

	public void testTemplateExecuteInputOutputResultsSetFalse() throws ResourceException, SQLException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl recordFactoryControl = MockControl.createStrictControl(RecordFactory.class);
		RecordFactory recordFactory = (RecordFactory) recordFactoryControl.getMock();
		MockControl connectionControl = MockControl.createStrictControl(Connection.class);
		Connection connection = (Connection) connectionControl.getMock();
		MockControl interactionControl = MockControl.createStrictControl(Interaction.class);
		Interaction interaction = (Interaction) interactionControl.getMock();
		MockControl recordControl = MockControl.createStrictControl(Record.class);
		Record record = (Record) recordControl.getMock();
		MockControl resultsetControl = MockControl.createStrictControl(ResultSet.class);
		ResultSet resultset = (ResultSet) resultsetControl.getMock();
		MockControl generatorControl = MockControl.createStrictControl(RecordCreator.class);
		RecordCreator generator = (RecordCreator) generatorControl.getMock();
		MockControl extractorControl = MockControl.createStrictControl(RecordExtractor.class);
		RecordExtractor extractor = (RecordExtractor) extractorControl.getMock();

		MockControl interactionSpecControl = MockControl.createStrictControl(InteractionSpec.class);
		InteractionSpec interactionSpec = (InteractionSpec) interactionSpecControl.getMock();

		Object obj = new Object();

		connectionFactory.getRecordFactory();
		connectionFactoryControl.setReturnValue(recordFactory, 1);

		connectionFactory.getConnection();
		connectionFactoryControl.setReturnValue(connection);

		connection.createInteraction();
		connectionControl.setReturnValue(interaction);

		generator.createRecord(recordFactory);
		generatorControl.setReturnValue(record);

		interaction.execute(interactionSpec, record);
		interactionControl.setReturnValue(resultset, 1);

		extractor.extractData(resultset);
		extractorControl.setReturnValue(obj);

		resultset.close();
		resultsetControl.setVoidCallable(1);

		interaction.close();
		interactionControl.setVoidCallable(1);

		connection.close();
		connectionControl.setVoidCallable(1);

		connectionFactoryControl.replay();
		connectionControl.replay();
		interactionControl.replay();
		generatorControl.replay();
		extractorControl.replay();
		resultsetControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		ct.execute(interactionSpec, generator, extractor);

		connectionFactoryControl.verify();
		connectionControl.verify();
		interactionControl.verify();
		generatorControl.verify();
		extractorControl.verify();
		resultsetControl.verify();
	}

	public void testTemplateExecuteConnectionCallback() throws ResourceException, SQLException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl connectionControl = MockControl.createStrictControl(Connection.class);
		Connection connection = (Connection) connectionControl.getMock();
		MockControl connectionCallbackControl = MockControl.createStrictControl(ConnectionCallback.class);
		ConnectionCallback connectionCallback = (ConnectionCallback) connectionCallbackControl.getMock();

		Object obj = new Object();

		connectionFactory.getConnection();
		connectionFactoryControl.setReturnValue(connection);

		connectionCallback.doInConnection(connection, connectionFactory);
		connectionCallbackControl.setReturnValue(obj);

		connection.close();
		connectionControl.setVoidCallable(1);

		connectionFactoryControl.replay();
		connectionControl.replay();
		connectionCallbackControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		ct.execute(connectionCallback);

		connectionFactoryControl.verify();
		connectionControl.verify();
		connectionCallbackControl.verify();
	}

	public void testTemplateExecuteInteractionCallback() throws ResourceException, SQLException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl connectionControl = MockControl.createStrictControl(Connection.class);
		Connection connection = (Connection) connectionControl.getMock();
		MockControl interactionControl = MockControl.createStrictControl(Interaction.class);
		Interaction interaction = (Interaction) interactionControl.getMock();
		MockControl interactionCallbackControl = MockControl.createStrictControl(InteractionCallback.class);
		InteractionCallback interactionCallback = (InteractionCallback) interactionCallbackControl.getMock();

		Object obj = new Object();

		connectionFactory.getConnection();
		connectionFactoryControl.setReturnValue(connection);

		connection.createInteraction();
		connectionControl.setReturnValue(interaction);

		interactionCallback.doInInteraction(interaction, connectionFactory);
		interactionCallbackControl.setReturnValue(obj);

		interaction.close();
		interactionControl.setVoidCallable(1);

		connection.close();
		connectionControl.setVoidCallable(1);

		connectionFactoryControl.replay();
		connectionControl.replay();
		interactionControl.replay();
		interactionCallbackControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		ct.execute(interactionCallback);

		connectionFactoryControl.verify();
		connectionControl.verify();
		interactionControl.verify();
		interactionCallbackControl.verify();
	}

	public void testTemplateExecuteInputTrueTrueWithCreator() throws ResourceException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl connectionControl = MockControl.createStrictControl(Connection.class);
		Connection connection = (Connection) connectionControl.getMock();
		MockControl interactionControl = MockControl.createStrictControl(Interaction.class);
		Interaction interaction = (Interaction) interactionControl.getMock();
		MockControl creatorControl = MockControl.createStrictControl(RecordCreator.class);
		RecordCreator creator = (RecordCreator) creatorControl.getMock();

		MockControl inputOutputRecordControl = MockControl.createStrictControl(Record.class);
		Record inputOutputRecord = (Record) inputOutputRecordControl.getMock();

		MockControl interactionSpecControl = MockControl.createStrictControl(InteractionSpec.class);
		InteractionSpec interactionSpec = (InteractionSpec) interactionSpecControl.getMock();

		connectionFactory.getConnection();
		connectionFactoryControl.setReturnValue(connection);

		connection.createInteraction();
		connectionControl.setReturnValue(interaction);

		interaction.execute(interactionSpec, inputOutputRecord, inputOutputRecord);
		interactionControl.setReturnValue(true, 1);

		interaction.close();
		interactionControl.setVoidCallable(1);

		connection.close();
		connectionControl.setVoidCallable(1);

		connectionFactoryControl.replay();
		connectionControl.replay();
		interactionControl.replay();
		creatorControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		ct.setOutputRecordCreator(creator);
		ct.execute(interactionSpec, inputOutputRecord, inputOutputRecord);

		connectionFactoryControl.verify();
		connectionControl.verify();
		interactionControl.verify();
		creatorControl.verify();
	}

	public void testTemplateExecuteInputTrueTrue() throws ResourceException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl connectionControl = MockControl.createStrictControl(Connection.class);
		Connection connection = (Connection) connectionControl.getMock();
		MockControl interactionControl = MockControl.createStrictControl(Interaction.class);
		Interaction interaction = (Interaction) interactionControl.getMock();

		MockControl inputOutputRecordControl = MockControl.createStrictControl(Record.class);
		Record inputOutputRecord = (Record) inputOutputRecordControl.getMock();

		MockControl interactionSpecControl = MockControl.createStrictControl(InteractionSpec.class);
		InteractionSpec interactionSpec = (InteractionSpec) interactionSpecControl.getMock();

		connectionFactory.getConnection();
		connectionFactoryControl.setReturnValue(connection);

		connection.createInteraction();
		connectionControl.setReturnValue(interaction);

		interaction.execute(interactionSpec, inputOutputRecord, inputOutputRecord);
		interactionControl.setReturnValue(true, 1);

		interaction.close();
		interactionControl.setVoidCallable(1);

		connection.close();
		connectionControl.setVoidCallable(1);

		connectionFactoryControl.replay();
		connectionControl.replay();
		interactionControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		ct.execute(interactionSpec, inputOutputRecord, inputOutputRecord);

		connectionFactoryControl.verify();
		connectionControl.verify();
		interactionControl.verify();
	}

	public void testTemplateExecuteInputFalseTrue() throws ResourceException {
		MockControl connectionFactoryControl = MockControl.createStrictControl(ConnectionFactory.class);
		ConnectionFactory connectionFactory = (ConnectionFactory) connectionFactoryControl.getMock();
		MockControl connectionControl = MockControl.createStrictControl(Connection.class);
		Connection connection = (Connection) connectionControl.getMock();
		MockControl interactionControl = MockControl.createStrictControl(Interaction.class);
		Interaction interaction = (Interaction) interactionControl.getMock();

		MockControl inputOutputRecordControl = MockControl.createStrictControl(Record.class);
		Record inputOutputRecord = (Record) inputOutputRecordControl.getMock();

		MockControl interactionSpecControl = MockControl.createStrictControl(InteractionSpec.class);
		InteractionSpec interactionSpec = (InteractionSpec) interactionSpecControl.getMock();

		connectionFactory.getConnection();
		connectionFactoryControl.setReturnValue(connection);

		connection.createInteraction();
		connectionControl.setReturnValue(interaction);

		interaction.execute(interactionSpec, inputOutputRecord);
		interactionControl.setReturnValue(null, 1);

		interaction.close();
		interactionControl.setVoidCallable(1);

		connection.close();
		connectionControl.setVoidCallable(1);

		connectionFactoryControl.replay();
		connectionControl.replay();
		interactionControl.replay();

		CciTemplate ct = new CciTemplate(connectionFactory);
		Record tmpOutputRecord = (Record) ct.execute(interactionSpec, inputOutputRecord);
		assertNull(tmpOutputRecord);

		connectionFactoryControl.verify();
		connectionControl.verify();
		interactionControl.verify();
	}

}

Other Spring Framework examples (source code examples)

Here is a short list of links related to this Spring Framework CciTemplateTests.java source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.