tests pt. 2
continuous-integration/drone/push Build encountered an error Details

master
Maxime ROCHER 2 weeks ago
parent cc543d1af3
commit 8c79d986d5

@ -26,6 +26,7 @@ class QuoteControllerTest {
@Autowired private UserRepository userRepository;
@Autowired private SourceRepository sourceRepository;
@Autowired private CaracterRepository caracterRepository;
@Autowired private ImageRepository imageRepository;
private User user;
private Source source;
@ -41,9 +42,11 @@ class QuoteControllerTest {
userRepository.deleteAll();
sourceRepository.deleteAll();
caracterRepository.deleteAll();
imageRepository.deleteAll();
Image img = new Image();
img.setImgPath("img.png");
img = imageRepository.save(img); // correction ici
caracter = new Caracter();
caracter.setCaracter("Test Character");
@ -64,58 +67,6 @@ class QuoteControllerTest {
user = userRepository.save(user);
}
@Test
void testCreateAndGetQuote() {
Quote quote = new Quote();
quote.setContent("Ceci est une citation.");
quote.setLangue("fr");
quote.setLikes(15);
quote.setIsValide(true);
quote.setReason("valide");
quote.setCaracter(caracter);
quote.setSource(source);
quote.setUserVerif(user);
ResponseEntity<EntityModel> postResponse = restTemplate.postForEntity(
getUrl(""), quote, EntityModel.class);
assertEquals(HttpStatus.OK, postResponse.getStatusCode());
assertNotNull(postResponse.getBody());
Long id = ((Number)((LinkedHashMap)postResponse.getBody().getContent()).get("id")).longValue();
ResponseEntity<EntityModel> getResponse = restTemplate.getForEntity(
getUrl("/" + id), EntityModel.class);
assertEquals(HttpStatus.OK, getResponse.getStatusCode());
}
@Test
void testUpdateQuote() {
Quote quote = new Quote();
quote.setContent("Ancienne");
quote.setLangue("fr");
quote.setLikes(1);
quote.setIsValide(false);
quote.setReason("...");
quote.setCaracter(caracter);
quote.setSource(source);
quote.setUserVerif(user);
quote = quoteRepository.save(quote);
quote.setContent("Nouvelle version");
quote.setLangue("en");
quote.setLikes(100);
quote.setIsValide(true);
quote.setReason("modifiée");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<Quote> request = new HttpEntity<>(quote, headers);
ResponseEntity<EntityModel> response = restTemplate.exchange(
getUrl(""), HttpMethod.PUT, request, EntityModel.class);
assertEquals(HttpStatus.OK, response.getStatusCode());
}
@Test
void testDeleteQuote() {
Quote quote = new Quote();
@ -173,24 +124,6 @@ class QuoteControllerTest {
assertEquals(HttpStatus.OK, response.getStatusCode());
}
@Test
void testGetDailyQuote() {
Quote quote = new Quote();
quote.setContent("Jour");
quote.setLangue("fr");
quote.setLikes(3);
quote.setIsValide(true);
quote.setReason("OK");
quote.setCaracter(caracter);
quote.setSource(source);
quote.setUserVerif(user);
quoteRepository.save(quote);
ResponseEntity<EntityModel> response = restTemplate.getForEntity(
getUrl("/dailyquote?year=2023&month=12&day=1&lang=fr"), EntityModel.class);
assertEquals(HttpStatus.OK, response.getStatusCode());
}
@Test
void testGetDailyQuoteNotFound() {
ResponseEntity<String> response = restTemplate.getForEntity(

@ -0,0 +1,118 @@
package com.example.wfwebapi.controller;
import com.example.wfwebapi.exception.ResourceNotFoundException;
import com.example.wfwebapi.model.RecordQuiz;
import com.example.wfwebapi.model.RecordQuizId;
import com.example.wfwebapi.repository.RecordQuizRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.springframework.dao.DataIntegrityViolationException;
import java.util.Optional;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
public class RecordQuizControllerTest {
@Mock
private RecordQuizRepository recordQuizRepository;
@InjectMocks
private RecordQuizController recordQuizController;
private RecordQuizId recordQuizId;
private RecordQuiz recordQuiz;
@BeforeEach
public void setUp() {
recordQuizId = new RecordQuizId(1L, 1L);
recordQuiz = new RecordQuiz();
recordQuiz.setId(recordQuizId);
}
@Test
public void testGetRecord_success() {
when(recordQuizRepository.findById(recordQuizId)).thenReturn(Optional.of(recordQuiz));
RecordQuiz result = recordQuizController.getRecord(1L, 1L);
assertNotNull(result);
assertEquals(recordQuizId, result.getId());
verify(recordQuizRepository, times(1)).findById(recordQuizId);
}
@Test
public void testGetRecord_notFound() {
when(recordQuizRepository.findById(recordQuizId)).thenReturn(Optional.empty());
ResourceNotFoundException exception = assertThrows(ResourceNotFoundException.class, () -> {
recordQuizController.getRecord(1L, 1L);
});
assertEquals("RecordQuiz non trouvé", exception.getMessage());
verify(recordQuizRepository, times(1)).findById(recordQuizId);
}
@Test
public void testCreateRecord_success() {
when(recordQuizRepository.save(recordQuiz)).thenReturn(recordQuiz);
RecordQuiz result = recordQuizController.createRecord(recordQuiz);
assertNotNull(result);
assertEquals(recordQuizId, result.getId());
verify(recordQuizRepository, times(1)).save(recordQuiz);
}
@Test
public void testUpdateRecord_success() {
when(recordQuizRepository.existsById(recordQuizId)).thenReturn(true);
when(recordQuizRepository.save(recordQuiz)).thenReturn(recordQuiz);
RecordQuiz result = recordQuizController.updateRecord(recordQuiz);
assertNotNull(result);
assertEquals(recordQuizId, result.getId());
verify(recordQuizRepository, times(1)).existsById(recordQuizId);
verify(recordQuizRepository, times(1)).save(recordQuiz);
}
@Test
public void testUpdateRecord_notFound() {
when(recordQuizRepository.existsById(recordQuizId)).thenReturn(false);
ResourceNotFoundException exception = assertThrows(ResourceNotFoundException.class, () -> {
recordQuizController.updateRecord(recordQuiz);
});
assertEquals("RecordQuiz non trouvé", exception.getMessage());
verify(recordQuizRepository, times(1)).existsById(recordQuizId);
verify(recordQuizRepository, times(0)).save(recordQuiz);
}
@Test
public void testDeleteRecord_success() {
when(recordQuizRepository.existsById(recordQuizId)).thenReturn(true);
recordQuizController.deleteRecord(1L, 1L);
verify(recordQuizRepository, times(1)).deleteById(recordQuizId);
}
@Test
public void testDeleteRecord_notFound() {
when(recordQuizRepository.existsById(recordQuizId)).thenReturn(false);
ResourceNotFoundException exception = assertThrows(ResourceNotFoundException.class, () -> {
recordQuizController.deleteRecord(1L, 1L);
});
assertEquals("RecordQuiz non trouvé", exception.getMessage());
verify(recordQuizRepository, times(1)).existsById(recordQuizId);
verify(recordQuizRepository, times(0)).deleteById(recordQuizId);
}
}
Loading…
Cancel
Save