// Path: mockito-collections-core/src/main/java/uk/co/webamoeba/mockito/collections/exception/MockitoCollectionsException.java
// public class MockitoCollectionsException extends RuntimeException {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	public MockitoCollectionsException(String message, Throwable throwable) {
// 		super(message, throwable);
// 	}
// 
// 	public MockitoCollectionsException(String message) {
// 		super(message);
// 	}
// }


import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.mock;
import java.lang.reflect.Field;
import java.util.Collection;
import org.junit.Test;
import uk.co.webamoeba.mockito.collections.exception.MockitoCollectionsException;
		assertTrue(field.isAccessible());
	}

	@Test
	public void shouldSetGivenPrivateField() {
		// Given
		Field field = getField("privateCollection");
		FieldValueMutator mutator = new FieldValueMutator(support, field);
		Object value = mock(Collection.class);

		// When
		mutator.mutateTo(value);

		// Then
		assertEquals(value, support.getPrivateCollection());
		assertFalse(field.isAccessible());
	}

	@Test
	public void shouldFailToSetGivenIncompatibleType() {
		// Given
		FieldValueMutator mutator = new FieldValueMutator(support, getField("privateCollection"));
		Object value = 100L;

		try {
			// When
			mutator.mutateTo(value);

			// Then
			fail();
// Path: mockito-collections-core/src/main/java/uk/co/webamoeba/mockito/collections/exception/MockitoCollectionsException.java
// public class MockitoCollectionsException extends RuntimeException {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	public MockitoCollectionsException(String message, Throwable throwable) {
// 		super(message, throwable);
// 	}
// 
// 	public MockitoCollectionsException(String message) {
// 		super(message);
// 	}
// }


// Path: mockito-collections-core/src/test/java/uk/co/webamoeba/mockito/collections/util/FieldValueMutatorTest.java
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.mock;
import java.lang.reflect.Field;
import java.util.Collection;
import org.junit.Test;
import uk.co.webamoeba.mockito.collections.exception.MockitoCollectionsException;

		assertTrue(field.isAccessible());
	}

	@Test
	public void shouldSetGivenPrivateField() {
		// Given
		Field field = getField("privateCollection");
		FieldValueMutator mutator = new FieldValueMutator(support, field);
		Object value = mock(Collection.class);

		// When
		mutator.mutateTo(value);

		// Then
		assertEquals(value, support.getPrivateCollection());
		assertFalse(field.isAccessible());
	}

	@Test
	public void shouldFailToSetGivenIncompatibleType() {
		// Given
		FieldValueMutator mutator = new FieldValueMutator(support, getField("privateCollection"));
		Object value = 100L;

		try {
			// When
			mutator.mutateTo(value);

			// Then
			fail();
		} catch (MockitoCollectionsException e) {