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 HtmlReporterTest { @Test public void reportLongFormatTest() throws Exception { String expectString = "<!doctype html>\n\n"+ "<html class=\"no-js\" lang=\"\">\n" + " <head>\n" + " <meta charset=\"utf-8\">\n" + " <meta http-equiv=\"x-ua-compatible\" content=\"ie=edge\">\n" + " <title></title>\n" + " <meta name=\"description\" content=\"\">\n" + " <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n" + " </head>\n" + " <body>\n" + " <table>\n" + " <tr>\n" + " <th>Title</th>\n" + " <th>Summary</th>\n" + " <th>Type</th>\n" + " <th>Ticket</th>\n" + " <th>File</th>\n" + " <th>Line</th>\n" + " </tr>\n" + " <tr>\n" + " <td>test</td>\n" + " <td>summary</td>\n" + " <td>java</td>\n" + " <td>100</td>\n" + " <td>file1.java</td>\n" + " <td>10</td>\n" + " </tr>\n" + " <tr>\n" + " <td>test1</td>\n" + " <td>summary</td>\n" + " <td>properties</td>\n" + " <td>101</td>\n" + " <td>file2.properties</td>\n" + " <td>12</td>\n" + " </tr>\n" + " </table>\n" + " </body>\n" + "</html>\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); HtmlReporter reporter = new HtmlReporter(); 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 = "<!doctype html>\n\n"+ "<html class=\"no-js\" lang=\"\">\n" + " <head>\n" + " <meta charset=\"utf-8\">\n" + " <meta http-equiv=\"x-ua-compatible\" content=\"ie=edge\">\n" + " <title></title>\n" + " <meta name=\"description\" content=\"\">\n" + " <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n" + " </head>\n" + " <body>\n" + " <table>\n" + " <tr>\n" + " <th>Title</th>\n" + " <th>Type</th>\n" + " <th>File</th>\n" + " <th>Line</th>\n" + " </tr>\n" + " <tr>\n" + " <td>test</td>\n" + " <td>java</td>\n" + " <td>file1.java</td>\n" + " <td>10</td>\n" + " </tr>\n" + " <tr>\n" + " <td>test1</td>\n" + " <td>properties</td>\n" + " <td>file2.properties</td>\n" + " <td>12</td>\n" + " </tr>\n" + " </table>\n" + " </body>\n" + "</html>\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); HtmlReporter reporter = new HtmlReporter(); 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); } }