package org.codefx.mvn.jdeps.parse; import org.codefx.mvn.jdeps.dependency.InternalType; import org.junit.Before; import org.junit.Test; import java.util.Optional; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; /** * Tests the class {@link InternalTypeLineParser}. */ public class InternalTypeLineParserTest { private InternalTypeLineParser parser; @Before public void setup() { parser = new InternalTypeLineParser(); } // isInternalTypeLine @Test(expected = NullPointerException.class) public void isInternalTypeLine_nullLine_throwsException() throws Exception { parser.isInternalTypeLine(null); } @Test public void isInternalTypeLine_emptyLine_returnsFalse() throws Exception { boolean isInternalTypeLine = parser.isInternalTypeLine(""); assertFalse(isInternalTypeLine); } @Test public void isInternalTypeLine_matchingLine$1_returnsTrue() throws Exception { String example = " -> sun.misc.BASE64Decoder JDK internal API (rt.jar)"; boolean isInternalTypeLine = parser.isInternalTypeLine(example); assertTrue(isInternalTypeLine); } @Test public void isInternalTypeLine_matchingLine$2_returnsTrue() throws Exception { String example = " -> sun.misc.Unsafe JDK internal API (rt.jar)"; boolean isInternalTypeLine = parser.isInternalTypeLine(example); assertTrue(isInternalTypeLine); } @Test public void isInternalTypeLine_matchingLineStartingWithCapitalLetters_returnsTrue() throws Exception { String example = " -> Sun.misc.Unsafe JDK internal API (rt.jar)"; boolean isInternalTypeLine = parser.isInternalTypeLine(example); assertTrue(isInternalTypeLine); } // parseLine @Test(expected = NullPointerException.class) public void parseLine_nullLine_throwsException() throws Exception { parser.parseLine(null); } @Test public void parseLine_emptyLine_returnsFalse() throws Exception { Optional<InternalType> type = parser.parseLine(""); assertFalse(type.isPresent()); } @Test public void parseLine_matchingLine$1_returnsTrue() throws Exception { String example = " -> sun.misc.BASE64Decoder JDK internal API (rt.jar)"; Optional<InternalType> type = parser.parseLine(example); assertThat(type) .isPresent() .contains(InternalType.of("sun.misc", "BASE64Decoder", "JDK internal API", "rt.jar")); } @Test public void parseLine_matchingLine$2_returnsTrue() throws Exception { String example = " -> sun.misc.Unsafe JDK internal API (rt.jar)"; Optional<InternalType> type = parser.parseLine(example); assertThat(type) .isPresent() .contains(InternalType.of("sun.misc", "Unsafe", "JDK internal API", "rt.jar")); } @Test public void parseLine_matchingLineStartingWithCapitalLetters_returnsTrue() throws Exception { String example = " -> Sun.misc.Unsafe JDK internal API (rt.jar)"; Optional<InternalType> type = parser.parseLine(example); assertThat(type) .isPresent() .contains(InternalType.of("Sun.misc", "Unsafe", "JDK internal API", "rt.jar")); } }