package ru.yandex.qatools.allure.utils; import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; import ru.yandex.qatools.allure.config.AllureModelUtils; import ru.yandex.qatools.allure.model.TestSuiteResult; import javax.xml.transform.stream.StreamSource; import javax.xml.validation.Validator; import java.io.File; import java.nio.file.Files; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static ru.yandex.qatools.allure.commons.AllureFileUtils.listTestSuiteFiles; /** * @author Dmitry Baev charlie@yandex-team.ru * Date: 19.02.14 */ public class WriteTestSuiteResultTest { public File resultsDirectory; @Rule public TemporaryFolder folder = new TemporaryFolder(); @Before public void setUp() throws Exception { resultsDirectory = folder.newFolder(); AllureResultsUtils.setResultsDirectory(resultsDirectory); } @Test public void invalidCharacterTest() throws Exception { TestSuiteResult testSuiteResult = new TestSuiteResult() .withName("somename"); String titleWithInvalidXmlCharacter = String.valueOf(Character.toChars(0x0)); testSuiteResult.setTitle(titleWithInvalidXmlCharacter); AllureResultsUtils.writeTestSuiteResult(testSuiteResult); Validator validator = AllureModelUtils.getAllureSchemaValidator(); for (File each : listTestSuiteFiles(resultsDirectory)) { validator.validate(new StreamSource(each)); } } @Test public void shouldCloseResultFileTest() throws Exception { File resultFile = new File(folder.getRoot(), "suite.xml"); AllureResultsUtils.writeTestSuiteResult(new TestSuiteResult(), resultFile); assertTrue(resultFile.exists()); Files.delete(resultFile.toPath()); assertFalse(resultFile.exists()); } @After public void tearDown() { AllureResultsUtils.setResultsDirectory(null); } }