/** * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. * * Copyright 2012-2015 the original author or authors. */ package org.assertj.swing.junit.ant; import static java.lang.Double.parseDouble; import static org.assertj.core.api.Assertions.assertThat; import java.io.ByteArrayOutputStream; import org.apache.tools.ant.taskdefs.optional.junit.JUnitTest; import org.apache.tools.ant.util.DOMElementWriter; import org.assertj.swing.junit.xml.XmlNode; import org.junit.Test; /** * Tests for <code>{@link XmlJUnitResultFormatter#endTestSuite(JUnitTest)}</code>. * * @author Alex Ruiz */ public class XmlJUnitResultFormatter_endTestSuite_Test extends XmlJUnitResultFormatter_TestCase { private JUnitTest suite; @Override void onSetUp() { suite = startTestSuiteWithStatistics(); } @Test public void should_Write_Suite_StatisticsAndWriteXmlToOutputStream() { formatter.endTestSuite(suite); assertThatStatisticsWereAddedToXml(); XmlNode root = root(); assertThatThereAreNoPropertiesIn(root); assertThat(textIn(output)).isEqualTo(textOf(root)); } @Test public void should_Write_XML_To_OutputStream() { formatter.endTestSuite(suite); assertThat(textIn(output)).isEqualTo(textOf(root())); } @Test public void should_Not_Throw_Error_If_Output_Is_Null() { formatter.setOutput(null); formatter.endTestSuite(suite); assertThatThereAreNoPropertiesIn(root()); assertThat(output.toByteArray()).isEmpty(); } private void assertThatStatisticsWereAddedToXml() { XmlNode root = root(); assertThat(root.attributeCount()).isEqualTo(7); assertThat(root.valueOfAttribute("errors")).isEqualTo("6"); assertThat(root.valueOfAttribute("failures")).isEqualTo("8"); assertThat(root.valueOfAttribute("tests")).isEqualTo("18"); double time = parseDouble(root.valueOfAttribute("time")); assertThat(time).isGreaterThanOrEqualTo(0d); assertThatSuiteAndEnvironmentInfoWereAddedTo(root); } private JUnitTest startTestSuiteWithStatistics() { JUnitTest s = startSuite(); s.setCounts(18, 8, 6); return s; } private static String textOf(XmlNode xml) { ByteArrayOutputStream o = new ByteArrayOutputStream(); new XmlOutputWriter().write(xml, o, new DOMElementWriter()); return textIn(o); } private static String textIn(ByteArrayOutputStream o) { return new String(o.toByteArray()); } }