package blade.migrate.provider; import static org.junit.Assert.assertEquals; import blade.migrate.api.Migration; import blade.migrate.api.Problem; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.PrintStream; import java.util.ArrayList; import java.util.List; import org.junit.Test; public class TestReporterTest { @Test public void reportLongFormatTest() throws Exception { String expectString = " ____________________________________________________________\n" + " | Title| Summary| Type | Ticket| File | Line|\n" + " |===========================================================|\n" + "1. | test | summary| java | 100 | file1.java | 10 |\n" + "2. | test1| summary| properties| 101 | file2.properties| 12 |\n"; Problem problem = new Problem(); problem.title = "test"; problem.summary = "summary"; problem.ticket = "100"; problem.type = "java"; problem.file = new File("file1.java"); problem.lineNumber = 10; Problem problem1 = new Problem(); problem1.title = "test1"; problem1.summary = "summary"; problem1.ticket = "101"; problem1.type = "properties"; problem1.file = new File("file2.properties"); problem1.lineNumber = 12; List<Problem> problems = new ArrayList<>(); problems.add(problem); problems.add(problem1); ByteArrayOutputStream baos = new ByteArrayOutputStream(); PrintStream printStream = new PrintStream(baos); System.setOut(printStream); TextReporter reporter = new TextReporter(); reporter.beginReporting(Migration.DETAIL_LONG, baos); for (Problem p : problems) { reporter.report(p); } reporter.endReporting(); String realString = baos.toString().replace("\r", ""); assertEquals(expectString, realString); } @Test public void reportShortFormatTest() throws Exception { String expectString = " ___________________________________________\n" + " | Title| Type | File | Line|\n" + " |==========================================|\n" + "1. | test | java | file1.java | 10 |\n" + "2. | test1| properties| file2.properties| 12 |\n"; Problem problem = new Problem(); problem.title = "test"; problem.type = "java"; problem.file = new File("file1.java"); problem.lineNumber = 10; Problem problem1 = new Problem(); problem1.title = "test1"; problem1.type = "properties"; problem1.file = new File("file2.properties"); problem1.lineNumber = 12; List<Problem> problems = new ArrayList<>(); problems.add(problem); problems.add(problem1); ByteArrayOutputStream baos = new ByteArrayOutputStream(); PrintStream printStream = new PrintStream(baos); System.setOut(printStream); TextReporter reporter = new TextReporter(); reporter.beginReporting(Migration.DETAIL_SHORT, baos); for (Problem p : problems) { reporter.report(p); } reporter.endReporting(); baos = new ByteArrayOutputStream(); printStream = new PrintStream(baos); System.setOut(printStream); reporter.beginReporting(Migration.DETAIL_SHORT, baos); for (Problem p : problems) { reporter.report(p); } reporter.endReporting(); String realString = baos.toString().replace("\r", ""); assertEquals(expectString, realString); } }