89 lines
2.8 KiB
Java
89 lines
2.8 KiB
Java
package com.baeldung.rules;
|
|
|
|
import static org.hamcrest.Matchers.containsString;
|
|
import static org.hamcrest.Matchers.isA;
|
|
import static org.hamcrest.Matchers.not;
|
|
import static org.junit.Assert.assertEquals;
|
|
import static org.junit.Assert.assertTrue;
|
|
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
import org.junit.Ignore;
|
|
import org.junit.Rule;
|
|
import org.junit.Test;
|
|
import org.junit.rules.DisableOnDebug;
|
|
import org.junit.rules.ErrorCollector;
|
|
import org.junit.rules.ExpectedException;
|
|
import org.junit.rules.TemporaryFolder;
|
|
import org.junit.rules.TestName;
|
|
import org.junit.rules.Timeout;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
public class RulesUnitTest {
|
|
|
|
private static final Logger LOG = LoggerFactory.getLogger(RulesUnitTest.class);
|
|
|
|
@Rule
|
|
public TemporaryFolder tmpFolder = new TemporaryFolder();
|
|
|
|
@Rule
|
|
public final ExpectedException thrown = ExpectedException.none();
|
|
|
|
@Rule
|
|
public TestName name = new TestName();
|
|
|
|
@Rule
|
|
public Timeout globalTimeout = Timeout.seconds(10);
|
|
|
|
@Rule
|
|
public final ErrorCollector errorCollector = new ErrorCollector();
|
|
|
|
@Rule
|
|
public DisableOnDebug disableTimeout = new DisableOnDebug(Timeout.seconds(30));
|
|
|
|
@Rule
|
|
public TestMethodNameLogger testLogger = new TestMethodNameLogger();
|
|
|
|
@Test
|
|
public void givenTempFolderRule_whenNewFile_thenFileIsCreated() throws IOException {
|
|
File testFile = tmpFolder.newFile("test-file.txt");
|
|
|
|
assertTrue("The file should have been created: ", testFile.isFile());
|
|
assertEquals("Temp folder and test file should match: ", tmpFolder.getRoot(), testFile.getParentFile());
|
|
}
|
|
|
|
@Test
|
|
public void givenIllegalArgument_whenExceptionThrown_thenMessageAndCauseMatches() {
|
|
thrown.expect(IllegalArgumentException.class);
|
|
thrown.expectCause(isA(NullPointerException.class));
|
|
thrown.expectMessage("This is illegal");
|
|
|
|
throw new IllegalArgumentException("This is illegal", new NullPointerException());
|
|
}
|
|
|
|
@Test
|
|
public void givenAddition_whenPrintingTestName_thenTestNameIsDisplayed() {
|
|
LOG.info("Executing: {}", name.getMethodName());
|
|
assertEquals("givenAddition_whenPrintingTestName_thenTestNameIsDisplayed", name.getMethodName());
|
|
}
|
|
|
|
@Ignore
|
|
@Test
|
|
public void givenLongRunningTest_whenTimout_thenTestFails() throws InterruptedException {
|
|
TimeUnit.SECONDS.sleep(20);
|
|
}
|
|
|
|
@Ignore
|
|
@Test
|
|
public void givenMultipleErrors_whenTestRuns_thenCollectorReportsErrors() {
|
|
errorCollector.addError(new Throwable("First thing went wrong!"));
|
|
errorCollector.addError(new Throwable("Another thing went wrong!"));
|
|
|
|
errorCollector.checkThat("Hello World", not(containsString("ERROR!")));
|
|
}
|
|
|
|
}
|