| /* |
| * Copyright 2015-2022 the original author or authors. |
| * |
| * All rights reserved. This program and the accompanying materials are |
| * made available under the terms of the Eclipse Public License v2.0 which |
| * accompanies this distribution and is available at |
| * |
| * https://www.eclipse.org/legal/epl-v20.html |
| */ |
| |
| package example.registration; |
| |
| import java.nio.file.Path; |
| |
| import org.junit.jupiter.api.Test; |
| import org.junit.jupiter.api.extension.AfterEachCallback; |
| import org.junit.jupiter.api.extension.ExtensionContext; |
| import org.junit.jupiter.api.extension.RegisterExtension; |
| |
| //tag::user_guide[] |
| class DocumentationDemo { |
| |
| static Path lookUpDocsDir() { |
| // return path to docs dir |
| // end::user_guide[] |
| return null; |
| // tag::user_guide[] |
| } |
| |
| @RegisterExtension |
| DocumentationExtension docs = DocumentationExtension.forPath(lookUpDocsDir()); |
| |
| @Test |
| void generateDocumentation() { |
| // use this.docs ... |
| } |
| } |
| //end::user_guide[] |
| |
| class DocumentationExtension implements AfterEachCallback { |
| |
| @SuppressWarnings("unused") |
| private final Path path; |
| |
| private DocumentationExtension(Path path) { |
| this.path = path; |
| } |
| |
| static DocumentationExtension forPath(Path path) { |
| return new DocumentationExtension(path); |
| } |
| |
| @Override |
| public void afterEach(ExtensionContext context) { |
| /* no-op for demo */ |
| } |
| |
| } |