1 package com.rest.unit;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 import com.dto.GroupRequestDto;
25 import com.dto.InvitationRequestDto;
26 import com.dto.InvitationResponseDto;
27 import com.dto.ProjectRequestDto;
28 import com.entity.*;
29 import com.repository.*;
30 import com.rest.InvitationRest;
31 import com.rest.ProjectRest;
32 import com.utils.SecurityContextReader;
33 import org.junit.Test;
34 import org.mockito.Mockito;
35 import org.springframework.http.HttpStatus;
36 import org.springframework.http.ResponseEntity;
37
38 import java.util.ArrayList;
39 import java.util.List;
40
41 import static org.junit.Assert.assertTrue;
42 import static org.mockito.Matchers.any;
43 import static org.mockito.Mockito.times;
44 import static org.mockito.Mockito.verify;
45 import static org.mockito.Mockito.when;
46
47
48
49
50 public class ProjectRestUnitTest {
51 ProjectRest projectRest = new ProjectRest();
52 IProjectRepository mockProjectRepository = Mockito.mock(IProjectRepository.class);
53 IProjectUserRepository mockProjectUserRepository = Mockito.mock(IProjectUserRepository.class);
54 IAuthorityRepository mockAuthorityRepository = Mockito.mock(IAuthorityRepository.class);
55 ITranslationRepository mockTranslationRepository = Mockito.mock(ITranslationRepository.class);
56 IGroupRepository mockGroupRepository = Mockito.mock(IGroupRepository.class);
57 IProjectGroupRepository mockProjectGroupRepository = Mockito.mock(IProjectGroupRepository.class);
58 IInvitationRepository mockInvitationRepository = Mockito.mock(IInvitationRepository.class);
59 IInvitationGroupRepository mockInvitationGroupRepository = Mockito.mock(IInvitationGroupRepository.class);
60
61 SecurityContextReader mockSecurityContextReader = Mockito.mock(SecurityContextReader.class);
62
63 ProjectRequestDto projectRequestDto = new ProjectRequestDto();
64
65 public ProjectRestUnitTest(){
66 projectRest.projectRepository = mockProjectRepository;
67 projectRest.projectUserRepository = mockProjectUserRepository;
68 projectRest.authorityRepository = mockAuthorityRepository;
69 projectRest.translationRepository = mockTranslationRepository;
70 projectRest.groupRepository = mockGroupRepository;
71 projectRest.projectGroupRepository = mockProjectGroupRepository;
72 projectRest.invitationRepository = mockInvitationRepository;
73 projectRest.invitationGroupRepository = mockInvitationGroupRepository;
74
75 projectRest.securityContextReader = mockSecurityContextReader;
76
77 projectRequestDto.setDescription("My project");
78
79 ArrayList<GroupRequestDto> groups = new ArrayList<GroupRequestDto>();
80 GroupRequestDto group = new GroupRequestDto();
81 group.setGroupGuid("1");
82 group.setGroupName("group_1");
83 groups.add(group);
84
85 projectRequestDto.setGroups(groups);
86
87 ArrayList<InvitationRequestDto> invitations = new ArrayList<InvitationRequestDto>();
88 InvitationRequestDto invitation = new InvitationRequestDto();
89 invitation.setGroups(groups);
90 invitations.add(invitation);
91
92 projectRequestDto.setInvitations(invitations);
93 }
94
95
96 @Test
97 public void createProject(){
98 when(mockSecurityContextReader.getUsername()).thenReturn("admin@gmail.com");
99
100 ResponseEntity responseEntity = projectRest.createProject(projectRequestDto);
101
102 assertTrue(responseEntity.getStatusCode() == HttpStatus.OK);
103 verify(mockProjectRepository, times(1)).save(any(ProjectEntity.class));
104
105 verify(mockProjectUserRepository, times(1)).save(any(ProjectUserEntity.class));
106 verify(mockAuthorityRepository, times(1)).save(any(AuthorityEntity.class));
107 verify(mockTranslationRepository, times(1)).save(any(TranslationEntity.class));
108 verify(mockGroupRepository, times(1)).save(any(GroupEntity.class));
109 verify(mockProjectGroupRepository, times(1)).save(any(ProjectGroupEntity.class));
110 verify(mockInvitationRepository, times(1)).save(any(InvitationEntity.class));
111 verify(mockInvitationGroupRepository, times(1)).save(any(InvitationGroupEntity.class));
112 }
113 }