package hudson.plugins.cmvc.util; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import hudson.plugins.cmvc.CmvcChangeLogSet; import hudson.plugins.cmvc.CmvcChangeLogSet.CmvcChangeLog; import hudson.plugins.cmvc.CmvcChangeLogSet.CmvcChangeLog.ModifiedFile; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.File; import java.io.InputStreamReader; import java.io.StringWriter; import java.util.List; import org.apache.commons.io.IOUtils; import org.junit.Test; public class CmvcRawParserTest { final String testTrackViewResultNoLogin = "1.0|236|d|complete||107/11/08 12:41:" + "37||Leandro Goncalves||LVL0711091728|107/11/10 00" + ":34:27|d|[UC15] Alteracao de pergunta combo dependente de s" + "im/nao\n1.0|290|u21|complete||107/11/08 15:01:48||" + "|root|LVL0711091728|107/11/10 00:34:34|f|UC 21\n1.0|239|d|" + "complete||107/11/08 15:39:47||Leandro Goncalves||" + "LVL0711091728|107/11/10 00:34:28|d|[UC15] Apos inclusao de " + "dependente deve-se limpar a tela\n1.0|250|d|complete||107/1" + "1/08 15:59:54||Leandro Goncalves||LVL0711091728|1" + "07/11/10 00:34:28|d|[UC15] Campo \"Filtro Relatorio\" nao p" + "ode ser editavel\n1.0|305|u*|complete||107/11/08 16:18:43|" + "|Leandro Goncalves||LVL0711091728|107/11/10 00:34:" + "35|f|Ajustes\n1.0|311|u24|complete||107/11/08 16:54:39|" + "|Andrew Henrique da Rosa||LVL0711091728|107/11/10 00:34" + ":35|f|UC24 - Coletar Auditoria - Incluir - Integragco e sto" + "red procs.\n1.0|213|d|complete||107/11/08 17:29:24|" + "|Leandro Goncalves||LVL0711091728|107/11/10 00:34:26|d|[U" + "C15] Apresentar posicao da pergunta na lista de perguntas\n" + "1.0|316|u29|complete||107/11/08 17:51:29|||root|LVL" + "0711091728|107/11/10 00:34:36|f|UC 29 Solicitar Relatorios" + "\n1.0|322|u*|complete||107/11/08 19:28:37||Leandr" + "o Goncalves||LVL0711091728|107/11/10 00:34:36|f|RM - Render" + "izar campo transplante\n1.0|323|u29|complete||107/11/09 08:" + "03:31|||root|LVL0711142025|107/11/15 01:19:51|f|UC" + " 29 Solicitar Relatorios\n1.0|331|u24|complete||107/11/09 " + "14:34:22||Andrew Henrique da Rosa||LVL0711091728|10" + "7/11/10 00:34:36|f|UC24 - Atualizagco de procs\n1.0|332|u*|" + "complete||107/11/09 14:42:52||Fabio||LVL0711091728|10" + "7/11/10 00:34:37|f|criacao de classes utilitarias\n1.0|333|" + "u*|complete||107/11/09 15:13:00||Fabio||LVL0711091728" + "|107/11/10 00:34:37|f|ajustes testes HIAE\n1.0|334|u*|compl" + "ete||107/11/09 15:20:13||Fabio||LVL0711091728|107/11/" + "10 00:34:37|f|ajustes build"; @SuppressWarnings("unchecked") @Test public void parsingTheResultsOfExecutingReportInTrackView() throws Exception { List<CmvcChangeLog> result = null; BufferedReader reader = new BufferedReader(new InputStreamReader( new ByteArrayInputStream(testTrackViewResultNoLogin .getBytes("UTF-8")), "UTF-8")); try { result = CmvcRawParser.parseTrackViewReport(reader, new CmvcChangeLogSet(null)); } finally { IOUtils.closeQuietly(reader); } assertEquals(14, result.size()); } @Test public void parsingTheResultsOfExecutingReportInChangeView() throws Exception { String testChangeViewResult = "1.0|279|LVL0711091728|1.1|SRC/databas" + "e/SGAU_SP_CONSULTA_FORMULARIOS_FILHOS.sql|create|u*|Procedu" + "res|f|lgoncalves|Leandro Goncalves|\n" + "1.0|279|LVL0711091728|1.1|SRC/database/SGAU_SP_CONSULTA_I" + "D_PRIMEIRA_VERSAO_FORM.sql|create|u*|Procedures|f|lgoncalve" + "s|Leandro Goncalves|\n1.0|280|LVL0711091728|1.33|SRC/Gerenc" + "iamentoDeAuditoria/Formulario/Servicos/DALC/cFormularioDALC" + ".cs|delta|u*|Ajustes |f|lgoncalves|Leandro Goncalves|\n1.0|" + "261|LVL0711091728|1.1|SRC/GerenciamentoDeAuditoria/Formular" + "io/Controlador/cPopuladorFiltroHIS.cs|create|u*|Renderizar " + "campo HIS|f|gandrade|Guilherme|\n1.0|261|LVL0711091728|1.1|" + "SRC/GerenciamentoDeAuditoria/Formulario/Controlador/cRemove" + "RespostaHIS.cs|create|u*|Renderizar campo HIS|f|gandrade|Gu" + "ilherme|\n1.0|261|LVL0711091728|1.1|SRC/GerenciamentoDeAudi" + "toria/Formulario/Formulario/Coleta/cRespostaHIS.cs|create|" + "u*|Renderizar campo HIS|f|gandrade|Guilherme|\n1.0|261|LVL0" + "711091728|1.1|SRC/GerenciamentoDeAuditoria/Formulario/Ui/Wi" + "dget/cHISWidget.cs|create|u*|Renderizar campo HIS|f|gandrad" + "e|Guilherme|"; List<ModifiedFile> changes = null; BufferedReader reader = new BufferedReader( new InputStreamReader(new ByteArrayInputStream( testChangeViewResult.getBytes("UTF-8")), "UTF-8")); try { changes = CmvcRawParser.parseChangeViewReport(reader); } finally { IOUtils.closeQuietly(reader); } assertEquals(7, changes.size()); } @Test public void testParseChangeViewReport() throws Throwable { List<CmvcChangeLog> result = null; BufferedReader reader = new BufferedReader(new InputStreamReader( new ByteArrayInputStream(testTrackViewResultNoLogin .getBytes("UTF-8")), "UTF-8")); try { File tempFile = File.createTempFile("changes", "xml"); tempFile.deleteOnExit(); result = CmvcRawParser.parseTrackViewReport(reader, new CmvcChangeLogSet(null)); StringWriter stringWriter = new StringWriter(); CmvcChangeLogSet changeLogSet = new CmvcChangeLogSet(null, result); CmvcRawParser.writeChangeLogFile(changeLogSet, stringWriter); System.out.println(stringWriter.getBuffer().toString()); } finally { IOUtils.closeQuietly(reader); } } @Test public void parsingChangeLogFile() throws Throwable { List<CmvcChangeLog> result = null; BufferedReader reader = new BufferedReader(new InputStreamReader( ClassLoader.getSystemResourceAsStream("changelog.xml"))); result = CmvcRawParser.parseChangeLogFile(reader); assertNotNull(result); assertEquals(4, result.size()); assertEquals(1, result.get(0).getFiles().size()); assertEquals(1, result.get(1).getFiles().size()); assertEquals(1, result.get(2).getFiles().size()); assertEquals(7, result.get(3).getFiles().size()); } }