@Test public void canReadTestExecutionReport() throws Exception { TestExecutionReport original = new TestExecutionReport(); original.version = "version"; original.rootPath = "rootPath"; original.setTotalRunTimeInMillis(totalTimeMeasurementWithElapsedMillis(42)); StringWriter writer = new StringWriter(); original.toXml(writer, VelocityFactory.getVelocityEngine()); ExecutionReport report = ExecutionReport.makeReport(writer.toString()); assertTrue(report instanceof TestExecutionReport); assertEquals(original, report); assertEquals(42, report.getTotalRunTimeInMillis()); }
@Test public void shouldHandleMissingRunTimesGraceFully() throws Exception { TestExecutionReport report = new TestExecutionReport(); Element element = mock(Element.class); NodeList emptyNodeList = mock(NodeList.class); when(element.getElementsByTagName("totalRunTimeInMillis")).thenReturn(emptyNodeList); when(emptyNodeList.getLength()).thenReturn(0); assertThat(report.getTotalRunTimeInMillisOrZeroIfNotPresent(element), is(0L)); element = mock(Element.class); NodeList matchingNodeList = mock(NodeList.class); Node elementWithText = mock(Element.class); NodeList childNodeList = mock(NodeList.class); Text text = mock(Text.class); when(element.getElementsByTagName("totalRunTimeInMillis")).thenReturn(matchingNodeList); when(matchingNodeList.getLength()).thenReturn(1); when(matchingNodeList.item(0)).thenReturn(elementWithText); when(elementWithText.getChildNodes()).thenReturn(childNodeList); when(childNodeList.getLength()).thenReturn(1); when(childNodeList.item(0)).thenReturn(text); when(text.getNodeValue()).thenReturn("255"); assertThat(report.getTotalRunTimeInMillisOrZeroIfNotPresent(element), is(255L)); }