Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace JUnit4 by JUnit5 #1192

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion asciidoctorj-arquillian-extension/build.gradle
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
dependencies {
compileOnly project(':asciidoctorj')
api project(':asciidoctorj-test-support')
implementation(project(':asciidoctorj-test-support')) { transitive = false }
api "org.jboss.arquillian.container:arquillian-container-spi:$arquillianVersion"
api "org.jboss.arquillian.container:arquillian-container-test-spi:$arquillianVersion"
api "org.jboss.arquillian.container:arquillian-container-impl-base:$arquillianVersion"
api "org.jboss.arquillian.container:arquillian-container-test-impl-base:$arquillianVersion"
api "junit:junit:$junit4Version"
}

def javaApiUrl = "https://docs.oracle.com/javase/8/docs/api/"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import org.asciidoctor.arquillian.api.Shared;
import org.asciidoctor.arquillian.api.Unshared;
import org.asciidoctor.jruby.AsciidoctorJRuby;
import org.asciidoctor.util.ClasspathResources;
import org.asciidoctor.junit.ClasspathResources;
import org.jboss.arquillian.core.api.InstanceProducer;
import org.jboss.arquillian.core.api.annotation.ApplicationScoped;
import org.jboss.arquillian.core.api.annotation.Inject;
Expand Down Expand Up @@ -122,7 +122,7 @@ public void afterTestClassShutdownSharedTemporaryFolderInstance(@Observes AfterC
}

private boolean isSharedInstanceRequired(Class<?> testClass, Class<?> resourceClass) {
for (Field f: SecurityActions.getFieldsWithAnnotation(testClass, ArquillianResource.class)) {
for (Field f : SecurityActions.getFieldsWithAnnotation(testClass, ArquillianResource.class)) {
ArquillianResource arquillianResource = SecurityActions.getAnnotation(f, ArquillianResource.class);
if (f.getType() == resourceClass && arquillianResource.value() == Shared.class) {
return true;
Expand All @@ -132,7 +132,7 @@ private boolean isSharedInstanceRequired(Class<?> testClass, Class<?> resourceCl
}

private boolean isUnsharedInstanceRequired(Class<?> testClass, Class<?> resourceClass) {
for (Field f: SecurityActions.getFieldsWithAnnotation(testClass, ArquillianResource.class)) {
for (Field f : SecurityActions.getFieldsWithAnnotation(testClass, ArquillianResource.class)) {
ArquillianResource arquillianResource = SecurityActions.getAnnotation(f, ArquillianResource.class);
if (f.getType() == resourceClass &&
(arquillianResource.value() == ArquillianResource.class || arquillianResource.value() == Unshared.class)) {
Expand Down Expand Up @@ -171,4 +171,4 @@ private boolean isUnsharedInstanceRequired(Method testMethod, Class<?> resourceC
}
return false;
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.asciidoctor.arquillian;

import org.asciidoctor.util.ClasspathResources;
import org.asciidoctor.junit.ClasspathResources;
import org.jboss.arquillian.core.api.Instance;
import org.jboss.arquillian.core.api.annotation.ApplicationScoped;
import org.jboss.arquillian.core.api.annotation.Inject;
Expand All @@ -24,4 +24,4 @@ public boolean canProvide(Class<?> type) {
public Object lookup(ArquillianResource resource, Annotation... qualifiers) {
return classpathResourcesInstance.get();
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.asciidoctor.util;
package org.asciidoctor.junit;

import org.asciidoctor.test.extension.ClasspathHelper;
import org.junit.rules.TestRule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
Expand All @@ -9,17 +10,19 @@
* <p>
* Delegates to {@link ClasspathHelper}.
*/
public class ClasspathResources extends ClasspathHelper implements TestRule {
public class ClasspathResources implements TestRule {

private ClasspathHelper classpathHelper;

public ClasspathResources() {
}

public ClasspathResources(Class<?> clazz) {
setClassloader(clazz);
classpathHelper = new ClasspathHelper(clazz);
}

protected void before(Class<?> clazz) {
super.setClassloader(clazz);
classpathHelper = new ClasspathHelper(clazz);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package org.asciidoctor.cli;

import org.asciidoctor.cli.jruby.AsciidoctorInvoker;
import org.asciidoctor.util.ClasspathHelper;
import org.asciidoctor.test.ClasspathResource;
import org.asciidoctor.test.extension.ClasspathExtension;
import org.assertj.core.api.Assertions;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.api.io.TempDir;

import java.io.ByteArrayOutputStream;
Expand All @@ -22,31 +23,24 @@
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.core.StringStartsWith.startsWith;

@ExtendWith(ClasspathExtension.class)
public class WhenAsciidoctorIsCalledUsingCli {

private static final String SAMPLE_FILE = "rendersample.asciidoc";
private static final String BROKEN_INCLUDE_ASCIIDOC = "brokeninclude.asciidoc";
private static final String TOC_SAMPLE_ASCIIDOC = "tocsample.asciidoc";
static final String SOURCE_EXTENSION_PATTERN = "\\.asciidoc$";

private static final String SOURCE_EXTENSION_PATTERN = "\\.asciidoc$";
@ClasspathResource("rendersample.asciidoc")
private File renderSampleDocument;
@ClasspathResource("brokeninclude.asciidoc")
private File brokenIncludeDocument;
@ClasspathResource("tocsample.asciidoc")
private File tocSampleDocument;

private static ClasspathHelper classpath;
final String pwd = new File("").getAbsolutePath();

@TempDir
public File temporaryFolder;

public String pwd = new File("").getAbsolutePath();

@BeforeAll
static void beforeAll() {
classpath = new ClasspathHelper();
classpath.setClassloader(WhenAsciidoctorIsCalledUsingCli.class);
}

@Test
public void with_no_options_file_should_be_rendered_in_place_and_in_html5_format() throws IOException {
File inputFile = classpath.getResource(SAMPLE_FILE);
String inputPath = inputFile.getPath().substring(pwd.length() + 1);
void with_no_options_file_should_be_rendered_in_place_and_in_html5_format() throws IOException {
final String inputPath = renderSampleDocument.getPath().substring(pwd.length() + 1);

new AsciidoctorInvoker().invoke(inputPath);

Expand All @@ -56,9 +50,8 @@ public void with_no_options_file_should_be_rendered_in_place_and_in_html5_format
}

@Test
public void should_honor_doctype_defined_in_document_by_default() throws IOException {
File inputFile = classpath.getResource("sample-book.adoc");
String inputPath = inputFile.getPath().substring(pwd.length() + 1);
void should_honor_doctype_defined_in_document_by_default(@ClasspathResource("sample-book.adoc") File sampleBookDocument) throws IOException {
final String inputPath = sampleBookDocument.getPath().substring(pwd.length() + 1);

new AsciidoctorInvoker().invoke(inputPath);

Expand All @@ -72,9 +65,8 @@ public void should_honor_doctype_defined_in_document_by_default() throws IOExcep
}

@Test
public void file_should_be_rendered_to_docbook_with_docbook_backend() throws IOException {
File inputFile = classpath.getResource(SAMPLE_FILE);
String inputPath = inputFile.getPath().substring(pwd.length() + 1);
void file_should_be_rendered_to_docbook_with_docbook_backend() throws IOException {
final String inputPath = renderSampleDocument.getPath().substring(pwd.length() + 1);

new AsciidoctorInvoker().invoke("-b", "docbook", inputPath);

Expand All @@ -84,9 +76,8 @@ public void file_should_be_rendered_to_docbook_with_docbook_backend() throws IOE
}

@Test
public void single_attributes_should_be_interpreted_as_boolean() throws IOException {
File inputFile = classpath.getResource(SAMPLE_FILE);
String inputPath = inputFile.getPath().substring(pwd.length() + 1);
void single_attributes_should_be_interpreted_as_boolean() throws IOException {
final String inputPath = renderSampleDocument.getPath().substring(pwd.length() + 1);

new AsciidoctorInvoker().invoke("-a", "linkcss!", inputPath);

Expand All @@ -102,9 +93,8 @@ public void single_attributes_should_be_interpreted_as_boolean() throws IOExcept
}

@Test
public void composed_attributes_should_be_built_as_attributes_map() throws IOException {
File inputFile = classpath.getResource(SAMPLE_FILE);
String inputPath = inputFile.getPath().substring(pwd.length() + 1);
void composed_attributes_should_be_built_as_attributes_map() throws IOException {
final String inputPath = renderSampleDocument.getPath().substring(pwd.length() + 1);

new AsciidoctorInvoker().invoke("-a", "stylesheet=mystyles.css", "-a", "linkcss", inputPath);

Expand All @@ -119,28 +109,26 @@ public void composed_attributes_should_be_built_as_attributes_map() throws IOExc
}

@Test
public void destination_dir_should_render_files_to_ouput_directory() throws IOException {
File outputDirectory = temporaryFolder;
void destination_dir_should_render_files_to_ouput_directory(@TempDir File temporaryFolder) throws IOException {
final String inputPath = renderSampleDocument.getPath().substring(pwd.length() + 1);

File inputFile = classpath.getResource(SAMPLE_FILE);
String inputPath = inputFile.getPath().substring(pwd.length() + 1);
new AsciidoctorInvoker().invoke("-D", outputDirectory.getAbsolutePath(), inputPath);
new AsciidoctorInvoker().invoke("-D", temporaryFolder.getAbsolutePath(), inputPath);

File expectedFile = new File(outputDirectory, inputFile.getName().replaceFirst(SOURCE_EXTENSION_PATTERN, ".html"));
File expectedFile = new File(temporaryFolder, renderSampleDocument.getName().replaceFirst(SOURCE_EXTENSION_PATTERN, ".html"));
assertThat(expectedFile.exists(), is(true));
}


@Test
public void empty_input_file_name_should_throw_an_exception() {
void empty_input_file_name_should_throw_an_exception() {
Throwable throwable = catchThrowable(() -> new AsciidoctorInvoker().invoke(""));

Assertions.assertThat(throwable)
.isInstanceOf(IllegalArgumentException.class);
}

@Test
public void version_flag_should_print_version_and_exit() throws IOException {
void version_flag_should_print_version_and_exit() throws IOException {
PrintStream oldOs = System.out;
ByteArrayOutputStream os = new ByteArrayOutputStream();
System.setOut(new PrintStream(os));
Expand All @@ -153,19 +141,17 @@ public void version_flag_should_print_version_and_exit() throws IOException {
}

@Test
public void invalid_input_file_should_throw_an_exception() {
void invalid_input_file_should_throw_an_exception() {
Throwable throwable = catchThrowable(() -> new AsciidoctorInvoker().invoke("myunknown.adoc"));

Assertions.assertThat(throwable)
.isInstanceOf(IllegalArgumentException.class);
}

@Test
public void should_convert_multiple_inputs() throws IOException {
File inputFile1 = classpath.getResource(SAMPLE_FILE);
String inputPath1 = inputFile1.getPath().substring(pwd.length() + 1);
File inputFile2 = classpath.getResource(TOC_SAMPLE_ASCIIDOC);
String inputPath2 = inputFile2.getPath().substring(pwd.length() + 1);
void should_convert_multiple_inputs() throws IOException {
final String inputPath1 = renderSampleDocument.getPath().substring(pwd.length() + 1);
final String inputPath2 = tocSampleDocument.getPath().substring(pwd.length() + 1);

new AsciidoctorInvoker().invoke(inputPath1, inputPath2);

Expand All @@ -179,10 +165,9 @@ public void should_convert_multiple_inputs() throws IOException {
}

@Test
public void glob_expression_can_be_used_to_render_AsciiDoc_files() throws IOException {
File inputFile = classpath.getResource(TOC_SAMPLE_ASCIIDOC);
String inputPath = inputFile.getPath().substring(pwd.length() + 1);
String inputGlob = new File(new File(inputPath).getParentFile(), "toc*ple.asciidoc").getPath();
void glob_expression_can_be_used_to_render_AsciiDoc_files() throws IOException {
final String inputPath = tocSampleDocument.getPath().substring(pwd.length() + 1);
final String inputGlob = new File(new File(inputPath).getParentFile(), "toc*ple.asciidoc").getPath();

new AsciidoctorInvoker().invoke(inputGlob);

Expand All @@ -193,8 +178,8 @@ public void glob_expression_can_be_used_to_render_AsciiDoc_files() throws IOExce
}

@Test
public void help_option_should_show_usage_information() throws IOException {
ByteArrayOutputStream output = redirectStdout();
void help_option_should_show_usage_information() throws IOException {
final ByteArrayOutputStream output = redirectStdout();

new AsciidoctorInvoker().invoke("--help");

Expand All @@ -203,8 +188,8 @@ public void help_option_should_show_usage_information() throws IOException {
}

@Test
public void no_parameters_should_show_usage_information() throws IOException {
ByteArrayOutputStream output = redirectStdout();
void no_parameters_should_show_usage_information() throws IOException {
final ByteArrayOutputStream output = redirectStdout();

new AsciidoctorInvoker().invoke();

Expand All @@ -213,10 +198,9 @@ public void no_parameters_should_show_usage_information() throws IOException {
}

@Test
public void output_file_hyphen_symbol_should_render_output_to_stdout() throws IOException {
ByteArrayOutputStream output = redirectStdout();
File inputFile = classpath.getResource(SAMPLE_FILE);
String inputPath = inputFile.getPath().substring(pwd.length() + 1);
void output_file_hyphen_symbol_should_render_output_to_stdout() throws IOException {
final ByteArrayOutputStream output = redirectStdout();
final String inputPath = renderSampleDocument.getPath().substring(pwd.length() + 1);

new AsciidoctorInvoker().invoke("-o", "-", inputPath);

Expand All @@ -227,10 +211,9 @@ public void output_file_hyphen_symbol_should_render_output_to_stdout() throws IO
}

@Test
public void verbose_option_should_fill_monitor_map() throws IOException {
ByteArrayOutputStream output = redirectStdout();
File inputFile = classpath.getResource(SAMPLE_FILE);
String inputPath = inputFile.getPath().substring(pwd.length() + 1);
void verbose_option_should_fill_monitor_map() throws IOException {
final ByteArrayOutputStream output = redirectStdout();
final String inputPath = renderSampleDocument.getPath().substring(pwd.length() + 1);

new AsciidoctorInvoker().invoke("--timings", inputPath);

Expand All @@ -240,10 +223,9 @@ public void verbose_option_should_fill_monitor_map() throws IOException {
}

@Test
public void quiet_option_should_not_write_to_console() throws IOException {
ByteArrayOutputStream output = redirectStdout();
File inputFile = classpath.getResource(BROKEN_INCLUDE_ASCIIDOC);
String inputPath = inputFile.getPath().substring(pwd.length() + 1);
void quiet_option_should_not_write_to_console() throws IOException {
final ByteArrayOutputStream output = redirectStdout();
final String inputPath = brokenIncludeDocument.getPath().substring(pwd.length() + 1);

new AsciidoctorInvoker().invoke("--quiet", inputPath);

Expand All @@ -252,29 +234,26 @@ public void quiet_option_should_not_write_to_console() throws IOException {
}

@Test
public void should_exit_with_zero_status_even_if_errors_were_logged() throws IOException {
File inputFile = classpath.getResource(BROKEN_INCLUDE_ASCIIDOC);
String inputPath = inputFile.getPath().substring(pwd.length() + 1);
void should_exit_with_zero_status_even_if_errors_were_logged() throws IOException {
final String inputPath = brokenIncludeDocument.getPath().substring(pwd.length() + 1);

int status = new AsciidoctorInvoker().invoke(inputPath);

assertThat(status, is(0));
}

@Test
public void should_exit_with_nonzero_status_if_logged_severity_was_at_least_failure_level() throws IOException {
File inputFile = classpath.getResource(BROKEN_INCLUDE_ASCIIDOC);
String inputPath = inputFile.getPath().substring(pwd.length() + 1);
void should_exit_with_nonzero_status_if_logged_severity_was_at_least_failure_level() throws IOException {
String inputPath = brokenIncludeDocument.getPath().substring(pwd.length() + 1);

int status = new AsciidoctorInvoker().invoke("--failure-level", "warn", inputPath);

assertThat(status, is(1));
}

@Test
public void with_absolute_path_file_should_be_rendered() throws IOException {
File inputFile = classpath.getResource(SAMPLE_FILE);
String inputPath = inputFile.getAbsolutePath();
void with_absolute_path_file_should_be_rendered() throws IOException {
String inputPath = renderSampleDocument.getAbsolutePath();

new AsciidoctorInvoker().invoke(inputPath);

Expand All @@ -284,10 +263,9 @@ public void with_absolute_path_file_should_be_rendered() throws IOException {
}

@Test
public void should_convert_to_subdirectories() throws IOException {
File inputFile = classpath.getResource("relative/sub/test.adoc");
File srcDir = inputFile.getParentFile().getParentFile();
File toDir = new File(srcDir, "target");
void should_convert_to_subdirectories(@ClasspathResource("relative/sub/test.adoc") File relativePathDocument) throws IOException {
final File srcDir = relativePathDocument.getParentFile().getParentFile();
final File toDir = new File(srcDir, "target");

new AsciidoctorInvoker().invoke("-R", srcDir.getPath(), "-D", toDir.getPath(), srcDir.getAbsolutePath() + "/**/*.adoc");

Expand All @@ -301,5 +279,4 @@ private ByteArrayOutputStream redirectStdout() {
System.setOut(new PrintStream(output));
return output;
}

}
Loading