From 1224565ea9363317599669cdd6e0efa0e68a4d10 Mon Sep 17 00:00:00 2001 From: roost-io <8110509+mgdevstack@users.noreply.github.com> Date: Sun, 3 May 2026 22:15:15 +0530 Subject: [PATCH] Unit test generated by RoostGPT Using AI Model gpt-5 --- pom.xml | 249 +++++++++++------- .../PagesControllerMinhaPaginaTest.java | 107 ++++++++ 2 files changed, 260 insertions(+), 96 deletions(-) create mode 100644 src/test/java/com/medeiros/SPRINGProject/Controllers/PagesControllerMinhaPaginaTest.java diff --git a/pom.xml b/pom.xml index d5e071f9..cf9d3292 100644 --- a/pom.xml +++ b/pom.xml @@ -1,96 +1,153 @@ - - - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 3.0.6 - - - com.medeiros - SPRINGProject - 0.0.1-SNAPSHOT - SPRINGProject - Demo project for Spring Boot - - 20 - - 6.0.3 - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-devtools - runtime - true - - - com.mysql - mysql-connector-j - runtime - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.springframework.boot - spring-boot-starter-thymeleaf - 3.0.6 - - - - org.springframework.boot - spring-boot-starter-security - - - - io.jsonwebtoken - jjwt-api - 0.11.5 - - - - - - - org.springframework.security - spring-security-core - 6.0.3 - - - - - - - io.jsonwebtoken - jjwt-impl - 0.11.5 - runtime - - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 3.0.6 + + + + com.medeiros + SPRINGProject + 0.0.1-SNAPSHOT + SPRINGProject + Demo project for Spring Boot + + 20 + + 6.0.3 + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-devtools + runtime + true + + + com.mysql + mysql-connector-j + runtime + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-starter-thymeleaf + 3.0.6 + + + org.springframework.boot + spring-boot-starter-security + + + + io.jsonwebtoken + jjwt-api + 0.11.5 + + + + org.springframework.security + spring-security-core + 6.0.3 + + + + + io.jsonwebtoken + jjwt-impl + 0.11.5 + runtime + + + org.mockito + mockito-junit-jupiter + 2.23.4 + test + + + + io.spring.javaformat + spring-javaformat-formatter + 0.0.40 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + org.jacoco + jacoco-maven-plugin + 0.8.11 + + + + prepare-agent + + + + report + test + + report + + + coverageReport + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.2.5 + + + + org.apache.maven.plugins + maven-surefire-report-plugin + 3.2.5 + + testReport + + + + + org.apache.maven.plugins + maven-site-plugin + 2.1 + + testReport + + + + + io.spring.javaformat + spring-javaformat-maven-plugin + 0.0.40 + + + + + + + + \ No newline at end of file diff --git a/src/test/java/com/medeiros/SPRINGProject/Controllers/PagesControllerMinhaPaginaTest.java b/src/test/java/com/medeiros/SPRINGProject/Controllers/PagesControllerMinhaPaginaTest.java new file mode 100644 index 00000000..1d0f8808 --- /dev/null +++ b/src/test/java/com/medeiros/SPRINGProject/Controllers/PagesControllerMinhaPaginaTest.java @@ -0,0 +1,107 @@ + +// ********RoostGPT******** +/* +Test generated by RoostGPT for test maven-music-github using AI Type Azure Open AI and AI Model gpt-5 + +ROOST_METHOD_HASH=minhaPagina_faf3e427f2 +ROOST_METHOD_SIG_HASH=minhaPagina_b5557d79c5 + + +Scenario 1: Returns a non-null ModelAndView + +Details: + TestName: returnsNonNullModelAndView + Description: Verify that calling minhaPagina returns a non-null ModelAndView instance, ensuring the controller action always produces a response object. + +Execution: + Arrange: Instantiate PagesController (with or without dependency injection for LogRepository). + Act: Invoke minhaPagina. + Assert: Use JUnit assertions to confirm the returned ModelAndView is not null (assertNotNull). + +Validation: + Ensure that the controller method reliably produces a ModelAndView. Since there is no conditional logic, a non-null result is expected every time, confirming the method’s basic contract. + +*/ + +// ********RoostGPT******** + +package com.medeiros.SPRINGProject.Controllers; + +import com.medeiros.SPRINGProject.Models.LogRepository; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.web.servlet.ModelAndView; +import java.util.Map; +import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.*; +import com.medeiros.SPRINGProject.Models.LogModel; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@ExtendWith(MockitoExtension.class) +public class PagesControllerMinhaPaginaTest { + + @Mock + private LogRepository Log; // Mocked external dependency if used in the future + + @InjectMocks + private PagesController controller; + + @Test + @Tag("valid") + public void testReturnsNonNullModelAndView() { + ModelAndView mav = controller.minhaPagina(); + assertNotNull((Object) mav); + } + + @Test + @Tag("valid") + public void testViewNameIsMinhaPagina() { + ModelAndView mav = controller.minhaPagina(); + String viewName = (String) mav.getViewName(); + assertEquals((String) "minhaPagina", (String) viewName); + assertNotNull((String) viewName); + } + + @Test + @Tag("valid") + public void testModelContainsTituloAndMensagemWithExpectedValues() { + ModelAndView mav = controller.minhaPagina(); + Map model = (Map) mav.getModel(); + assertTrue((boolean) model.containsKey("titulo")); + assertTrue((boolean) model.containsKey("mensagem")); + Object titulo = model.get("titulo"); + Object mensagem = model.get("mensagem"); + assertNotNull((Object) titulo); + assertNotNull((Object) mensagem); + assertEquals((String) "Minha Página", (String) titulo); + assertEquals((String) "Bem-vindo à minha página!", (String) mensagem); + } + + @Test + @Tag("boundary") + public void testRepeatedCallsReturnNewInstances() { + ModelAndView mav1 = controller.minhaPagina(); + ModelAndView mav2 = controller.minhaPagina(); + assertNotSame((Object) mav1, (Object) mav2); + assertEquals((String) "minhaPagina", (String) mav1.getViewName()); + assertEquals((String) "minhaPagina", (String) mav2.getViewName()); + } + + @Test + @Tag("valid") + public void testModelAttributeTypesAreStrings() { + ModelAndView mav = controller.minhaPagina(); + Map model = (Map) mav.getModel(); + Object titulo = model.get("titulo"); + Object mensagem = model.get("mensagem"); + assertTrue((boolean) (titulo instanceof String)); + assertTrue((boolean) (mensagem instanceof String)); + } + +} \ No newline at end of file