blob: 105cc8b8c5e6e9f27bd0a37efeffeedbe406227e [file] [log] [blame]
package com.pt5.pthouduan.controller;
import com.pt5.pthouduan.entity.Complain;
import com.pt5.pthouduan.service.ComplainService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.Arrays;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
class ComplainControllerTest {
@Mock
private ComplainService complainService;
@InjectMocks
private ComplainController complainController;
@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this);
}
@Test
void createComplain_ShouldReturnCreatedComplain() {
Complain complain = new Complain();
complain.setComplainid(1);
complain.setPuse(100L);
complain.setDuser(200L);
complain.setContent("Bad behavior");
complain.setTorrentid(123L);
when(complainService.createComplain(any(Complain.class))).thenReturn(complain);
Complain result = complainController.createComplain(complain);
assertEquals("Bad behavior", result.getContent());
assertEquals(100L, result.getPuse());
verify(complainService).createComplain(any(Complain.class));
}
@Test
void deleteComplain_ShouldReturnTrue_WhenDeleted() {
when(complainService.deleteComplain(1)).thenReturn(true);
boolean result = complainController.deleteComplain(1);
assertTrue(result);
verify(complainService).deleteComplain(1);
}
@Test
void updateComplain_ShouldReturnTrue_WhenUpdated() {
Complain complain = new Complain();
complain.setComplainid(1);
complain.setContent("Updated complaint");
when(complainService.updateComplain(any(Complain.class))).thenReturn(true);
boolean result = complainController.updateComplain(complain);
assertTrue(result);
verify(complainService).updateComplain(complain);
}
@Test
void getComplainsByTargetUser_ShouldReturnList() {
Complain c1 = new Complain();
c1.setDuser(200L);
c1.setContent("Cheating");
when(complainService.getComplainsByTargetUser(200L)).thenReturn(List.of(c1));
List<Complain> result = complainController.getComplainsByTargetUser(200L);
assertEquals(1, result.size());
assertEquals("Cheating", result.get(0).getContent());
}
@Test
void getComplainsByPostingUser_ShouldReturnList() {
Complain c = new Complain();
c.setPuse(100L);
c.setContent("Spam complaint");
when(complainService.getComplainsByPostingUser(100L)).thenReturn(List.of(c));
List<Complain> result = complainController.getComplainsByPostingUser(100L);
assertEquals(1, result.size());
assertEquals("Spam complaint", result.get(0).getContent());
}
@Test
void getAllComplains_ShouldReturnAll() {
Complain c1 = new Complain();
c1.setContent("Complain A");
Complain c2 = new Complain();
c2.setContent("Complain B");
when(complainService.getAllComplains()).thenReturn(Arrays.asList(c1, c2));
List<Complain> result = complainController.getAllComplains();
assertEquals(2, result.size());
assertEquals("Complain A", result.get(0).getContent());
assertEquals("Complain B", result.get(1).getContent());
}
@Test
void getComplainInfo_ShouldReturnComplainDetails() {
Complain c = new Complain();
c.setComplainid(1);
c.setPuse(100L);
c.setDuser(200L);
c.setTorrentid(500L);
when(complainService.getComplainById(1)).thenReturn(c);
Complain result = complainController.getComplainInfo(1);
assertEquals(100L, result.getPuse());
assertEquals(200L, result.getDuser());
assertEquals(500L, result.getTorrentid());
}
}