package samples.powermockito.junit4.whennew;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import samples.expectnew.ExpectNewDemo;
import samples.newmocking.MyClass;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import static org.powermock.api.mockito.PowerMockito.verifyNew;
@PrepareForTest(ExpectNewDemo.class)
@RunWith(PowerMockRunner.class)
public class VerifyNewWithoutWhenNewTest {
@Test
// TODO This should actually work in the future when issue 148 is resolved.
public void verifyingNewWithoutExpectationWhenNoArgumentsThrowsISE() throws Exception {
ExpectNewDemo tested = new ExpectNewDemo();
assertEquals("Hello world", tested.getMessage());
try {
verifyNew(MyClass.class).withNoArguments();
fail("IllegalStateException expected");
} catch (IllegalStateException e) {
assertEquals("No instantiation of class samples.newmocking.MyClass was recorded "
+ "during the test. Note that only expected object creations "
+ "(e.g. those using whenNew(..)) can be verified.", e.getMessage());
}
}
@Test
// TODO This should actually work in the future when issue 148 is resolved.
public void verifyingNewWithoutExpectationButWithArgumentsThrowsISE() throws Exception {
ExpectNewDemo tested = new ExpectNewDemo();
assertEquals("Hello world", tested.getMessage());
try {
verifyNew(MyClass.class, Mockito.atLeastOnce()).withNoArguments();
fail("IllegalStateException expected");
} catch (IllegalStateException e) {
assertEquals("No instantiation of class samples.newmocking.MyClass was recorded "
+ "during the test. Note that only expected object creations "
+ "(e.g. those using whenNew(..)) can be verified.", e.getMessage());
}
}
}