From e9e95ab78777f2716d824441d6eea822f2c72a83 Mon Sep 17 00:00:00 2001 From: Julien WITTOUCK Date: Thu, 24 Aug 2023 15:30:05 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20:=20test=20the=20JAXB=20binding=20w?= =?UTF-8?q?ith=20a=20real-world=20file?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../testReports/TestSuiteTest.java | 46 +++++++++++++++++++ src/test/resources/cucumber-junit-output.xml | 30 ++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 src/test/java/fr/univ_lille/gitlab/classrooms/assignments/testReports/TestSuiteTest.java create mode 100644 src/test/resources/cucumber-junit-output.xml diff --git a/src/test/java/fr/univ_lille/gitlab/classrooms/assignments/testReports/TestSuiteTest.java b/src/test/java/fr/univ_lille/gitlab/classrooms/assignments/testReports/TestSuiteTest.java new file mode 100644 index 0000000..ad63598 --- /dev/null +++ b/src/test/java/fr/univ_lille/gitlab/classrooms/assignments/testReports/TestSuiteTest.java @@ -0,0 +1,46 @@ +package fr.univ_lille.gitlab.classrooms.assignments.testReports; + +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBException; +import org.junit.jupiter.api.Test; +import org.springframework.core.io.ClassPathResource; + +import javax.xml.transform.stream.StreamSource; +import java.io.IOException; + +import static org.assertj.core.api.Assertions.*; + +class TestSuiteTest { + + @Test + void testReadXmlJaxb() throws IOException, JAXBException { + var unmarshaller = JAXBContext.newInstance(TestSuite.class).createUnmarshaller(); + + var file = new ClassPathResource("/cucumber-junit-output.xml"); + + var root = unmarshaller.unmarshal(new StreamSource(file.getInputStream()), TestSuite.class); + var testSuite = root.getValue(); + + assertThat(testSuite.getName()).isEqualTo("Cucumber"); + assertThat(testSuite.getTime()).isEqualTo(10.772f); + assertThat(testSuite.getTests()).isEqualTo("2"); + assertThat(testSuite.getSkipped()).isEqualTo("0"); + assertThat(testSuite.getFailures()).isEqualTo("1"); + assertThat(testSuite.getErrors()).isEqualTo("0"); + + assertThat(testSuite.getTestcase()).hasSize(2); + var firstTest = testSuite.getTestcase().get(0); + assertThat(firstTest.getClassname()).isEqualTo("Premier Contrôleur Spring"); + assertThat(firstTest.getFailure()).isNullOrEmpty(); + assertThat(firstTest.getSystemOut()).contains("And La réponse a un body \"Hello World\""); + + var secondTest = testSuite.getTestcase().get(1); + assertThat(secondTest.getClassname()).isEqualTo("Premier Contrôleur Spring"); + assertThat(secondTest.getFailure()).hasSize(1); + assertThat(secondTest.getFailure().get(0).getType()).isEqualTo("java.lang.AssertionError"); + assertThat(secondTest.getFailure().get(0).getMessage()).isEqualTo("Element with name 'password_verify' not present."); + assertThat(secondTest.getFailure().get(0).getValue()).contains("java.lang.AssertionError: Element with name 'password_verify' not present"); + } + + +} diff --git a/src/test/resources/cucumber-junit-output.xml b/src/test/resources/cucumber-junit-output.xml new file mode 100644 index 0000000..f1687e6 --- /dev/null +++ b/src/test/resources/cucumber-junit-output.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + -- 2.51.2