View Javadoc
1   package com.rest.unit;
2   
3   /*
4    * #%L
5    * Gateway
6    * %%
7    * Copyright (C) 2015 Powered by Sergey
8    * %%
9    * Licensed under the Apache License, Version 2.0 (the "License");
10   * you may not use this file except in compliance with the License.
11   * You may obtain a copy of the License at
12   * 
13   *      http://www.apache.org/licenses/LICENSE-2.0
14   * 
15   * Unless required by applicable law or agreed to in writing, software
16   * distributed under the License is distributed on an "AS IS" BASIS,
17   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18   * See the License for the specific language governing permissions and
19   * limitations under the License.
20   * #L%
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   * Created by aautushk on 10/9/2015.
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      //user story 1.
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 }