package org.mockitousage.bugs.creation;
import org.junit.Test;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.mockito.Spy;
import java.util.Random;
@RunWith(Enclosed.class)
public class ConstructorInvokingMethodShouldNotRaiseExceptionTest {
public static class WithDumbMethod {
@Spy
HasConstructorInvokingMethod hasConstructorInvokingMethod;
@Test
public void should_be_able_to_create_spy() throws Exception {
MockitoAnnotations.initMocks(this);
}
private static class HasConstructorInvokingMethod {
public HasConstructorInvokingMethod() { someMethod(); }
void someMethod() { }
}
}
public static class UsingMethodObjectReferenceResult {
@Spy
HasConstructorInvokingMethod hasConstructorInvokingMethod;
@Test
public void should_be_able_to_create_spy() throws Exception {
MockitoAnnotations.initMocks(this);
}
private static class HasConstructorInvokingMethod {
private final boolean doesIt;
public HasConstructorInvokingMethod() {
doesIt = someMethod().contains("yup");
}
String someMethod() { return "tada!"; }
}
}
public static class UsingMethodPrimitiveResult {
@Spy
HasConstructorInvokingMethod hasConstructorInvokingMethod;
@Test
public void should_be_able_to_create_spy() throws Exception {
MockitoAnnotations.initMocks(this);
}
private static class HasConstructorInvokingMethod {
private final boolean doesIt;
public HasConstructorInvokingMethod() {
doesIt = someMethod();
}
boolean someMethod() { return new Random().nextBoolean(); }
}
}
}