|
|
|
@ -9,6 +9,7 @@ import org.junit.jupiter.params.provider.CsvFileSource;
|
|
|
|
|
import java.io.BufferedReader;
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
import java.io.InputStreamReader;
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
@ -21,10 +22,14 @@ class SolutionTest {
|
|
|
|
|
protected Object convert( Object source, Class<?> targetType ) throws ArgumentConversionException {
|
|
|
|
|
try {
|
|
|
|
|
assertEquals( String.class, targetType, "Can only convert to String" );
|
|
|
|
|
assertTrue( source instanceof String, "Can only convert to String" );
|
|
|
|
|
final InputStream resource = SolutionTest.class.getResourceAsStream( String.valueOf( source ));
|
|
|
|
|
if ( null == resource ) {
|
|
|
|
|
if ( ((String) source).matches( "^(?!//|#|;).+" )) {
|
|
|
|
|
return source;
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BufferedReader res = new BufferedReader( new InputStreamReader( resource ));
|
|
|
|
|
return res.lines().collect( Collectors.joining( System.lineSeparator() ));
|
|
|
|
@ -52,12 +57,13 @@ class SolutionTest {
|
|
|
|
|
@CsvFileSource( resources = "testdata.csv" )
|
|
|
|
|
void main( @ConvertWith( FileContentConverter.class ) final String input,
|
|
|
|
|
@ConvertWith( MultilineConverter.class ) final String expected ) throws Exception {
|
|
|
|
|
if ( Objects.nonNull( input )) {
|
|
|
|
|
String output = SystemLambda.tapSystemOut( () ->
|
|
|
|
|
SystemLambda.withTextFromSystemIn( input )
|
|
|
|
|
.execute( () -> Solution.main( new String[0] ))
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
assertEquals( expected, output.trim() );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|