// Path: mockito-collections-core/src/main/java/uk/co/webamoeba/mockito/collections/MockitoCollections.java
// public class MockitoCollections {
// 
// 	private static Initialiser INITIALISER = new Initialiser();
// 
// 	private static Verifier VERIFIER = new Verifier();
// 
// 	/**
// 	 * {@link Initialiser#initialise(Object)}
// 	 * 
// 	 * @param object
// 	 */
// 	public static void initialise(Object object) {
// 		INITIALISER.initialise(object);
// 	}
// 
// 	/**
// 	 * {@link Verifier#collectiveVerify(Class, Collection)}
// 	 * 
// 	 * @param mockClass
// 	 * @param collection
// 	 * @return Object used for verification of all the mocks in the supplied collection
// 	 */
// 	public static <T> T collectiveVerify(Class<T> mockClass, Collection<T> collection) {
// 		return VERIFIER.collectiveVerify(mockClass, collection);
// 	}
// 
// 	/**
// 	 * {@link Verifier#collectiveVerify(Class, Collection, VerificationMode)}
// 	 * 
// 	 * @param mockClass
// 	 * @param collection
// 	 * @param mode
// 	 * @return Object used for verification of all the mocks in the supplied collection
// 	 */
// 	public static <T> T collectiveVerify(Class<T> mockClass, Collection<T> collection, VerificationMode mode) {
// 		return VERIFIER.collectiveVerify(mockClass, collection, mode);
// 	}
// 
// 	/**
// 	 * {@link Verifier#collectiveVerifyZeroInteractions(Collection...)}
// 	 * 
// 	 * @param mocks
// 	 */
// 	public static <T> void collectiveVerifyZeroInteractions(Collection<T>... mocks) {
// 		VERIFIER.collectiveVerifyZeroInteractions(mocks);
// 	}
// 
// 	/**
// 	 * {@link Verifier#collectiveVerifyNoMoreInteractions(Collection...)}
// 	 * 
// 	 * @param mocks
// 	 */
// 	public static <T> void collectiveVerifyNoMoreInteractions(Collection<T>... mocks) {
// 		VERIFIER.collectiveVerifyNoMoreInteractions(mocks);
// 	}
// }
// 
// Path: mockito-collections-core-integration-tests/src/main/java/uk/co/webamoeba/mockito/collections/core/integrationtests/support/ClassWithCollectionOfCollaborators.java
// public class ClassWithCollectionOfCollaborators implements HasCollaborators<EventListener> {
// 
// 	private Collection<EventListener> collaborators;
// 
// 	public Collection<EventListener> getCollaborators() {
// 		return collaborators;
// 	}
// }


import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.mockito.Mockito.mock;
import java.util.EventListener;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import uk.co.webamoeba.mockito.collections.MockitoCollections;
import uk.co.webamoeba.mockito.collections.annotation.IgnoreForCollections;
import uk.co.webamoeba.mockito.collections.core.integrationtests.support.ClassWithCollectionOfCollaborators;
package uk.co.webamoeba.mockito.collections.core.integrationtests;





public class DoNotInjectIgnoredMocksIntoCollectionsStoryIntegrationTest implements
		DoNotInjectIgnoredMocksIntoCollectionsStory {

	@Test
	public void allMocksHaveTheIgnoreForCollectionsAnnotation() {
		// Given
		final ClassWithCollectionOfCollaborators outerObjectUnderTest = new ClassWithCollectionOfCollaborators();
		final EventListener outerCollaborator1 = mock(EventListener.class);
		final EventListener outerCollaborator2 = mock(EventListener.class);
		@SuppressWarnings("unused")
		Object exampleTest = new Object() {

			@InjectMocks
			ClassWithCollectionOfCollaborators objectUnderTest = outerObjectUnderTest;

			@Mock
			@IgnoreForCollections
			private EventListener collaborator1 = outerCollaborator1;

			@Mock
			@IgnoreForCollections
			private EventListener collaborator2 = outerCollaborator2;

		};

		// When
		MockitoCollections.initialise(exampleTest);

		// Then
		assertNull(outerObjectUnderTest.getCollaborators());
	}

	public void someMocksHaveTheIgnoreMockForCollectionsAnnotation() {
		// Given
		final ClassWithCollectionOfCollaborators outerObjectUnderTest = new ClassWithCollectionOfCollaborators();
		final EventListener outerCollaborator1 = mock(EventListener.class);
		final EventListener outerCollaborator2 = mock(EventListener.class);
		@SuppressWarnings("unused")
		Object exampleTest = new Object() {

			@InjectMocks
// Path: mockito-collections-core/src/main/java/uk/co/webamoeba/mockito/collections/MockitoCollections.java
// public class MockitoCollections {
// 
// 	private static Initialiser INITIALISER = new Initialiser();
// 
// 	private static Verifier VERIFIER = new Verifier();
// 
// 	/**
// 	 * {@link Initialiser#initialise(Object)}
// 	 * 
// 	 * @param object
// 	 */
// 	public static void initialise(Object object) {
// 		INITIALISER.initialise(object);
// 	}
// 
// 	/**
// 	 * {@link Verifier#collectiveVerify(Class, Collection)}
// 	 * 
// 	 * @param mockClass
// 	 * @param collection
// 	 * @return Object used for verification of all the mocks in the supplied collection
// 	 */
// 	public static <T> T collectiveVerify(Class<T> mockClass, Collection<T> collection) {
// 		return VERIFIER.collectiveVerify(mockClass, collection);
// 	}
// 
// 	/**
// 	 * {@link Verifier#collectiveVerify(Class, Collection, VerificationMode)}
// 	 * 
// 	 * @param mockClass
// 	 * @param collection
// 	 * @param mode
// 	 * @return Object used for verification of all the mocks in the supplied collection
// 	 */
// 	public static <T> T collectiveVerify(Class<T> mockClass, Collection<T> collection, VerificationMode mode) {
// 		return VERIFIER.collectiveVerify(mockClass, collection, mode);
// 	}
// 
// 	/**
// 	 * {@link Verifier#collectiveVerifyZeroInteractions(Collection...)}
// 	 * 
// 	 * @param mocks
// 	 */
// 	public static <T> void collectiveVerifyZeroInteractions(Collection<T>... mocks) {
// 		VERIFIER.collectiveVerifyZeroInteractions(mocks);
// 	}
// 
// 	/**
// 	 * {@link Verifier#collectiveVerifyNoMoreInteractions(Collection...)}
// 	 * 
// 	 * @param mocks
// 	 */
// 	public static <T> void collectiveVerifyNoMoreInteractions(Collection<T>... mocks) {
// 		VERIFIER.collectiveVerifyNoMoreInteractions(mocks);
// 	}
// }
// 
// Path: mockito-collections-core-integration-tests/src/main/java/uk/co/webamoeba/mockito/collections/core/integrationtests/support/ClassWithCollectionOfCollaborators.java
// public class ClassWithCollectionOfCollaborators implements HasCollaborators<EventListener> {
// 
// 	private Collection<EventListener> collaborators;
// 
// 	public Collection<EventListener> getCollaborators() {
// 		return collaborators;
// 	}
// }


// Path: mockito-collections-core-integration-tests/src/test/java/uk/co/webamoeba/mockito/collections/core/integrationtests/DoNotInjectIgnoredMocksIntoCollectionsStoryIntegrationTest.java
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.mockito.Mockito.mock;
import java.util.EventListener;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import uk.co.webamoeba.mockito.collections.MockitoCollections;
import uk.co.webamoeba.mockito.collections.annotation.IgnoreForCollections;
import uk.co.webamoeba.mockito.collections.core.integrationtests.support.ClassWithCollectionOfCollaborators;

package uk.co.webamoeba.mockito.collections.core.integrationtests;





public class DoNotInjectIgnoredMocksIntoCollectionsStoryIntegrationTest implements
		DoNotInjectIgnoredMocksIntoCollectionsStory {

	@Test
	public void allMocksHaveTheIgnoreForCollectionsAnnotation() {
		// Given
		final ClassWithCollectionOfCollaborators outerObjectUnderTest = new ClassWithCollectionOfCollaborators();
		final EventListener outerCollaborator1 = mock(EventListener.class);
		final EventListener outerCollaborator2 = mock(EventListener.class);
		@SuppressWarnings("unused")
		Object exampleTest = new Object() {

			@InjectMocks
			ClassWithCollectionOfCollaborators objectUnderTest = outerObjectUnderTest;

			@Mock
			@IgnoreForCollections
			private EventListener collaborator1 = outerCollaborator1;

			@Mock
			@IgnoreForCollections
			private EventListener collaborator2 = outerCollaborator2;

		};

		// When
		MockitoCollections.initialise(exampleTest);

		// Then
		assertNull(outerObjectUnderTest.getCollaborators());
	}

	public void someMocksHaveTheIgnoreMockForCollectionsAnnotation() {
		// Given
		final ClassWithCollectionOfCollaborators outerObjectUnderTest = new ClassWithCollectionOfCollaborators();
		final EventListener outerCollaborator1 = mock(EventListener.class);
		final EventListener outerCollaborator2 = mock(EventListener.class);
		@SuppressWarnings("unused")
		Object exampleTest = new Object() {

			@InjectMocks
			ClassWithCollectionOfCollaborators objectUnderTest = outerObjectUnderTest;