/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockitousage.bugs;
import java.io.OutputStream;
import java.io.PrintStream;
import org.junit.Test;
import org.junit.internal.TextListener;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.RunWith;
import org.mockito.exceptions.base.MockitoException;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockitoutil.TestBase;
import static junit.framework.TestCase.assertEquals;
import static junit.framework.TestCase.assertFalse;
import static junit.framework.TestCase.assertTrue;
// @Ignore("for demo only. this test cannot be enabled as it fails :)")
public class MockitoRunnerBreaksWhenNoTestMethodsTest extends TestBase {
@Test
public void ensure_the_test_runner_breaks() throws Exception {
JUnitCore runner = new JUnitCore();
// runner.addListener(new TextListener(System.out));
runner.addListener(new TextListener(DevNull.out));
Result result = runner.run(TestClassWithoutTestMethod.class);
assertEquals(1, result.getFailureCount());
assertTrue(result.getFailures().get(0).getException() instanceof MockitoException);
assertFalse(result.wasSuccessful());
}
@RunWith(MockitoJUnitRunner.class)
static class TestClassWithoutTestMethod { // package visibility is important
public void notATestMethod() { }
}
public static final class DevNull {
public final static PrintStream out = new PrintStream(new OutputStream() {
public void close() {}
public void flush() {}
public void write(byte[] b) {}
public void write(byte[] b, int off, int len) {}
public void write(int b) {}
} );
}
}