From 8f4f72d6e651741953d75cb1830af31fc6e0370c Mon Sep 17 00:00:00 2001 From: uo287545 Date: Fri, 26 Apr 2024 01:44:32 +0200 Subject: [PATCH] All tests working --- .../QuestionGeneratorTestController.java | 35 ------------------- .../services/QuestionGeneratorService.java | 11 +++++- src/main/resources/application.properties | 4 --- src/test/java/com/uniovi/Wiq_UnitTests.java | 12 ++++--- src/test/java/com/uniovi/steps/GameStep.java | 11 ++++-- 5 files changed, 25 insertions(+), 48 deletions(-) delete mode 100644 src/main/java/com/uniovi/components/QuestionGeneratorTestController.java diff --git a/src/main/java/com/uniovi/components/QuestionGeneratorTestController.java b/src/main/java/com/uniovi/components/QuestionGeneratorTestController.java deleted file mode 100644 index 77ee4aa2..00000000 --- a/src/main/java/com/uniovi/components/QuestionGeneratorTestController.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.uniovi.components; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.uniovi.components.generators.QuestionGeneratorV2; -import com.uniovi.entities.Question; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.io.File; -import java.io.IOException; -import java.util.List; - -@RestController -public class QuestionGeneratorTestController { - - private final String jsonFilePath = "src/main/resources/static/JSON/QuestionTemplates.json"; - - @RequestMapping("/test") - public void test() throws IOException { - // Crear un objeto File con la ruta del archivo JSON - File jsonFile = new File(jsonFilePath); - - // Crear un ObjectMapper de Jackson - ObjectMapper objectMapper = new ObjectMapper(); - - // Leer el archivo JSON y convertirlo en un JsonNode - JsonNode jsonNode = objectMapper.readTree(jsonFile); - QuestionGeneratorV2 qgen = new QuestionGeneratorV2(jsonNode); - List q = qgen.getQuestions(Question.SPANISH); - for(Question question : q){ - System.out.println(question); - } - } -} diff --git a/src/main/java/com/uniovi/services/QuestionGeneratorService.java b/src/main/java/com/uniovi/services/QuestionGeneratorService.java index 7c2d36c7..253a87db 100644 --- a/src/main/java/com/uniovi/services/QuestionGeneratorService.java +++ b/src/main/java/com/uniovi/services/QuestionGeneratorService.java @@ -5,6 +5,7 @@ import com.uniovi.components.generators.QuestionGenerator; import com.uniovi.components.generators.QuestionGeneratorV2; import com.uniovi.dto.QuestionDto; +import com.uniovi.entities.Answer; import com.uniovi.entities.Category; import com.uniovi.entities.Question; import jakarta.transaction.Transactional; @@ -27,7 +28,7 @@ public class QuestionGeneratorService { private final QuestionService questionService; - private String jsonFilePath = "src/main/resources/static/JSON/QuestionTemplates.json"; + public static final String jsonFilePath = "src/main/resources/static/JSON/QuestionTemplates.json"; private Deque types = new ArrayDeque<>(); @@ -102,6 +103,14 @@ public void generateTestQuestions() throws IOException { questions.forEach(questionService::addNewQuestion); } + @Transactional + public void generateTestQuestions(String cat) throws IOException { + Answer a1 = new Answer("1", true); + List answers = List.of(a1, new Answer("2", false), new Answer("3", false), new Answer("4", false)); + Question q = new Question("Statement", answers, a1, new Category(cat), "es"); + questionService.addNewQuestion(new QuestionDto(q)); + } + private class QuestionType { private JsonNode question; diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 44108bf6..563c3468 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -17,7 +17,3 @@ springdoc.packagesToScan=com.uniovi.controllers.api management.endpoint.metrics.enabled=true management.endpoints.web.exposure.include=prometheus management.endpoints.jmx.exposure.include=* - - -# Question templates -question.json.path=src/main/resources/static/JSON/QuestionTemplates.json \ No newline at end of file diff --git a/src/test/java/com/uniovi/Wiq_UnitTests.java b/src/test/java/com/uniovi/Wiq_UnitTests.java index 2fde133f..b370fdea 100644 --- a/src/test/java/com/uniovi/Wiq_UnitTests.java +++ b/src/test/java/com/uniovi/Wiq_UnitTests.java @@ -795,12 +795,13 @@ public void testGetQuestions() throws IOException, InterruptedException, JSONExc @Test @Order(51) public void testGetQuestionsByCategoryName() throws IOException, InterruptedException, JSONException { - insertSomeQuestions(); + String cat = "Science"; + questionGeneratorService.generateTestQuestions(cat); Player player = playerService.getUsersByRole("ROLE_USER").get(0); ApiKey apiKey = player.getApiKey(); HttpResponse response = sendRequest("GET", "/api/questions", Map.of(), - Map.of("apiKey", apiKey.getKeyToken(), "category", "Science")); + Map.of("apiKey", apiKey.getKeyToken(), "category", cat)); Assertions.assertEquals(200, response.statusCode()); JSONObject json = parseJsonResponse(response); @@ -811,10 +812,11 @@ public void testGetQuestionsByCategoryName() throws IOException, InterruptedExce @Test @Order(52) public void testGetQuestionsByCategoryId() throws IOException, InterruptedException, JSONException { - insertSomeQuestions(); + String category = "Science"; + questionGeneratorService.generateTestQuestions(category); Player player = playerService.getUsersByRole("ROLE_USER").get(0); ApiKey apiKey = player.getApiKey(); - Category cat = categoryService.getCategoryByName("Science"); + Category cat = categoryService.getCategoryByName(category); HttpResponse response = sendRequest("GET", "/api/questions", Map.of(), Map.of("apiKey", apiKey.getKeyToken(), "category", cat.getId())); @@ -1545,7 +1547,7 @@ private JSONObject parseJsonResponse(HttpResponse response) throws JSONE /** * Inserts some sample questions into the database */ - private void insertSomeQuestions() throws InterruptedException, IOException { + private void insertSomeQuestions() throws IOException { questionGeneratorService.generateTestQuestions(); } } diff --git a/src/test/java/com/uniovi/steps/GameStep.java b/src/test/java/com/uniovi/steps/GameStep.java index deaad33f..bc430547 100644 --- a/src/test/java/com/uniovi/steps/GameStep.java +++ b/src/test/java/com/uniovi/steps/GameStep.java @@ -2,6 +2,7 @@ import com.uniovi.Wiq_IntegrationTests; import com.uniovi.services.InsertSampleDataService; +import com.uniovi.services.QuestionGeneratorService; import com.uniovi.util.PropertiesExtractor; import com.uniovi.util.SeleniumUtils; import io.cucumber.java.en.Then; @@ -12,23 +13,27 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import java.io.IOException; import java.util.List; public class GameStep extends Wiq_IntegrationTests { @Autowired private InsertSampleDataService dataService; + @Autowired + private QuestionGeneratorService questionGeneratorService; + private Logger log = LoggerFactory.getLogger(GameStep.class); @When("I press Play") - public void iPressPlay() { - dataService.generateTestQuestions(); + public void iPressPlay() throws IOException { + questionGeneratorService.generateTestQuestions(); List elems = SeleniumUtils.waitLoadElementsBy(driver, "free", "//*[@href=\"/game\"]", 5); elems.get(0).click(); } @Then("I should start playing") - public void iShouldStartPlaying() throws InterruptedException { + public void iShouldStartPlaying() { boolean playing = true; String xpath = "//*[contains(text(),'" + p.getString("game.finish", PropertiesExtractor.getSPANISH()) + "')]"; int i= 0;