// Path: src/main/java/se/fearless/fettle/Action.java
// public interface Action<S, E, C> {
// 	/**
// 	 * Called when a transition occurs
// 	 * @param from the state the machine was in before the transition
// 	 * @param to the state the machine is in after the transition
// 	 * @param causedBy the event that triggered the transition
// 	 * @param context the context in which the event was fired supplied to the transition
// 	 * @param stateMachine the machine for which the transition occurred
// 	 */
// 	void onTransition(S from, S to, E causedBy, C context, StateMachine<S, E, C> stateMachine);
// }
// 
// Path: src/main/java/se/fearless/fettle/builder/Actions.java
// static <S, E, C> List<Action<S, E, C>> actions(Action<S, E, C> action) {
// 	return Collections.singletonList(action);
// }


import com.googlecode.gentyref.TypeToken;
import org.junit.Before;
import org.junit.Test;
import se.fearless.fettle.Action;
import static org.hamcrest.CoreMatchers.hasItem;
import static org.hamcrest.core.IsCollectionContaining.hasItems;
import static org.junit.Assert.assertThat;
import static se.fearless.fettle.builder.Actions.actions;
import static se.mockachino.Mockachino.mock;
package se.fearless.fettle.builder;



public class ActionsTest {

	private static final TypeToken<Action<String, String, Void>> ACTION_TYPE_TOKEN = new TypeToken<Action<String, String, Void>>() {
	};

	private Action<String, String, Void> action1;
	private Action<String, String, Void> action2;
	private Action<String, String, Void> action3;
	private Action<String, String, Void> action4;
	private Action<String, String, Void> action5;

	@Before
	public void setUp() throws Exception {
		action1 = mock(ACTION_TYPE_TOKEN);
		action2 = mock(ACTION_TYPE_TOKEN);
		action3 = mock(ACTION_TYPE_TOKEN);
		action4 = mock(ACTION_TYPE_TOKEN);
		action5 = mock(ACTION_TYPE_TOKEN);
	}

	@Test
	public void singleActionIsIncludedInList() throws Exception {
// Path: src/main/java/se/fearless/fettle/Action.java
// public interface Action<S, E, C> {
// 	/**
// 	 * Called when a transition occurs
// 	 * @param from the state the machine was in before the transition
// 	 * @param to the state the machine is in after the transition
// 	 * @param causedBy the event that triggered the transition
// 	 * @param context the context in which the event was fired supplied to the transition
// 	 * @param stateMachine the machine for which the transition occurred
// 	 */
// 	void onTransition(S from, S to, E causedBy, C context, StateMachine<S, E, C> stateMachine);
// }
// 
// Path: src/main/java/se/fearless/fettle/builder/Actions.java
// static <S, E, C> List<Action<S, E, C>> actions(Action<S, E, C> action) {
// 	return Collections.singletonList(action);
// }


// Path: src/test/java/se/fearless/fettle/builder/ActionsTest.java
import com.googlecode.gentyref.TypeToken;
import org.junit.Before;
import org.junit.Test;
import se.fearless.fettle.Action;
import static org.hamcrest.CoreMatchers.hasItem;
import static org.hamcrest.core.IsCollectionContaining.hasItems;
import static org.junit.Assert.assertThat;
import static se.fearless.fettle.builder.Actions.actions;
import static se.mockachino.Mockachino.mock;

package se.fearless.fettle.builder;



public class ActionsTest {

	private static final TypeToken<Action<String, String, Void>> ACTION_TYPE_TOKEN = new TypeToken<Action<String, String, Void>>() {
	};

	private Action<String, String, Void> action1;
	private Action<String, String, Void> action2;
	private Action<String, String, Void> action3;
	private Action<String, String, Void> action4;
	private Action<String, String, Void> action5;

	@Before
	public void setUp() throws Exception {
		action1 = mock(ACTION_TYPE_TOKEN);
		action2 = mock(ACTION_TYPE_TOKEN);
		action3 = mock(ACTION_TYPE_TOKEN);
		action4 = mock(ACTION_TYPE_TOKEN);
		action5 = mock(ACTION_TYPE_TOKEN);
	}

	@Test
	public void singleActionIsIncludedInList() throws Exception {
		assertThat(actions(action1), hasItem(action1));