@@ -13,6 +13,7 @@ import com.duckbox.dto.group.GroupRegisterDto
1313import com.duckbox.dto.group.GroupUpdateDto
1414import com.duckbox.dto.user.LoginRequestDto
1515import com.duckbox.dto.user.RegisterDto
16+ import com.duckbox.errors.exception.ConflictException
1617import com.duckbox.errors.exception.ForbiddenException
1718import com.duckbox.errors.exception.NotFoundException
1819import com.duckbox.service.GroupService
@@ -541,6 +542,80 @@ class GroupControllerTest {
541542 }
542543 }
543544
545+ @Test
546+ fun is_reportGroup_throws_no_authToken_header () {
547+ // arrange
548+ val httpEntity = HttpEntity (ObjectId ().toString(), HttpHeaders ())
549+
550+ // act, assert
551+ restTemplate
552+ .exchange(" ${baseAddress} /api/v1/group/status" , HttpMethod .POST , httpEntity, Unit ::class .java)
553+ .apply {
554+ Assertions .assertThat(statusCode).isEqualTo(HttpStatus .FORBIDDEN )
555+ }
556+ }
557+
558+ @Test
559+ fun is_reportGroup_works_well () {
560+ // arrange
561+ val token: String = registerAndLogin()
562+ registerMockUser2()
563+ val httpHeaders = HttpHeaders ().apply {
564+ this [" Authorization" ] = " Bearer $token "
565+ }
566+ val mockDto: GroupRegisterDto = mockGroupRegisterDto.copy(leader = userRepository.findByEmail(mockUserEmail2).did)
567+ val groupId: String = groupService.registerGroup(mockUserEmail2, mockDto).body!! // mockUser 2
568+ val httpEntity = HttpEntity (groupId, httpHeaders)
569+
570+ // act, assert
571+ restTemplate
572+ .exchange(" ${baseAddress} /api/v1/group/status" , HttpMethod .POST , httpEntity, Unit ::class .java)
573+ .apply {
574+ Assertions .assertThat(statusCode).isEqualTo(HttpStatus .NO_CONTENT )
575+ }
576+ }
577+
578+ @Test
579+ fun is_reportGroup_throws_on_invalid_groupId () {
580+ // arrange
581+ val token: String = registerAndLogin()
582+ registerMockUser2()
583+ val httpHeaders = HttpHeaders ().apply {
584+ this [" Authorization" ] = " Bearer $token "
585+ }
586+ val httpEntity = HttpEntity (ObjectId ().toString(), httpHeaders)
587+
588+ // act, assert
589+ restTemplate
590+ .exchange(" ${baseAddress} /api/v1/group/status" , HttpMethod .POST , httpEntity, NotFoundException ::class .java)
591+ .apply {
592+ Assertions .assertThat(statusCode).isEqualTo(HttpStatus .NOT_FOUND )
593+ }
594+ }
595+
596+ @Test
597+ fun is_reportGroup_throws_on_already_reported () {
598+ // arrange
599+ val token: String = registerAndLogin()
600+ registerMockUser2()
601+ val httpHeaders = HttpHeaders ().apply {
602+ this [" Authorization" ] = " Bearer $token "
603+ }
604+ val mockDto: GroupRegisterDto = mockGroupRegisterDto.copy(leader = userRepository.findByEmail(mockUserEmail2).did)
605+ val groupId: String = groupService.registerGroup(mockUserEmail2, mockDto).body!! // mockUser 2
606+ val httpEntity = HttpEntity (groupId, httpHeaders)
607+
608+ // act
609+ groupService.reportGroup(mockUserEmail, groupId)
610+
611+ // act, assert
612+ restTemplate
613+ .exchange(" ${baseAddress} /api/v1/group/status" , HttpMethod .POST , httpEntity, ConflictException ::class .java)
614+ .apply {
615+ Assertions .assertThat(statusCode).isEqualTo(HttpStatus .CONFLICT )
616+ }
617+ }
618+
544619 @Test
545620 fun is_searchGroup_works_no_headers_token () {
546621 // act, assert
0 commit comments