001package edu.pdx.cs.joy.grader; 002 003import org.junit.jupiter.api.Test; 004 005import java.io.PrintWriter; 006import java.io.StringWriter; 007 008import static org.hamcrest.CoreMatchers.equalTo; 009import static org.hamcrest.MatcherAssert.assertThat; 010 011public class APIDocumentationDocletTest { 012 013 @Test 014 public void removePackageNameFromJavaLangString() { 015 assertThat(APIDocumentationDoclet.removePackageNames("java.lang.String"), equalTo("String")); 016 } 017 018 @Test 019 public void removePackageNameFromArrayOfJavaLangString() { 020 assertThat(APIDocumentationDoclet.removePackageNames("java.lang.String[]"), equalTo("String[]")); 021 } 022 023 @Test 024 public void removePackageNameFromMapOfStringToString() { 025 String fullName = "java.util.Map<java.lang.String,java.lang.String>"; 026 String shortName = "Map<String,String>"; 027 assertThat(APIDocumentationDoclet.removePackageNames(fullName), equalTo(shortName)); 028 } 029 030 @Test 031 public void leadingWhitespaceIsRemovedWhenIndenting() { 032 String rawText = "classes - The names of the classes the student is taking. A student \n" + 033 " may take zero or more classes."; 034 String expected = " classes - The names of the classes the student is taking. A student\n" + 035 " may take zero or more classes.\n"; 036 assertThat(indentString(rawText, 4), equalTo(expected)); 037 } 038 039 private String indentString(String rawText, int indent) { 040 StringWriter sw = new StringWriter(); 041 APIDocumentationDoclet.indent(rawText, indent, new PrintWriter(sw, true)); 042 return sw.toString(); 043 } 044 045 @Test 046 public void noSpaceAfterDotInMiddleOfWord() { 047 assertThat(indentString("1.2.3", 2), equalTo(" 1.2.3\n")); 048 } 049 050 @Test 051 public void spacesAfterPeriodAreCollapsedIntoOneSpace() { 052 String rawText = "One sentence. Two sentences."; 053 String expected = " One sentence. Two sentences.\n"; 054 assertThat(indentString(rawText, 2), equalTo(expected)); 055 } 056 057}