Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

/*
* UserControllerTest.java
* Copyright (c) 2017 Veterans Affairs.
*/
package gov.va.oneconsult.seoc.api.controller;

import static org.assertj.core.api.Assertions.assertThat;

import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.RequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

import gov.va.oneconsult.seoc.api.service.UserService;
import gov.va.oneconsult.seoc.api.util.Constants;
import gov.va.oneconsult.seoc.api.util.DeserializeTest;

/**
* @author AbleVets
*
*/
public class UserControllerTest
{
private MockMvc mockMvc;

@Mock
private UserService userService;

@InjectMocks
private UserController userController;

public static final String ROOT_URL = "/v1/user";

public static final String GET_ROLE_URL = "/role/";

public static final String MAINTENANCE = "/maint/";

public static final DeserializeTest deserialize = new DeserializeTest();

@Before
public void setup()
{

MockitoAnnotations.initMocks(this);
this.mockMvc = MockMvcBuilders.standaloneSetup(userController).build();
}

/**
* Description: Successfully retrieve roles for the domain user id requested
*
* @throws Exception
*/
@Test
public void getUserRole_success() throws Exception
{
String userRole = "Administrator";
String domain = "DAV";
String userId = "System";
String vaUserId = domain + "\\" + userId;

Mockito.when(userService.getRoleByVaUserId(vaUserId)).thenReturn(userRole);

RequestBuilder request = MockMvcRequestBuilders.get(ROOT_URL + GET_ROLE_URL + domain + "/" + userId)
.contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON_UTF8);

MvcResult result = mockMvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.content()
.contentType(MediaType.APPLICATION_JSON_UTF8))
.andReturn();

String actualStatus = deserialize.genericResponse(result.getResponse().getContentAsString()).getStatus();

assertThat(actualStatus).isEqualTo(Constants.SUCCESS);

Mockito.verify(userService, Mockito.times(1)).getRoleByVaUserId(Mockito.anyString());
Mockito.verifyNoMoreInteractions(userService);
}

/**
* Description:Failure of request when userId is missing
*
* @throws Exception
*/
@Ignore
public void getUserRole_userMissing() throws Exception
{
RequestBuilder request = MockMvcRequestBuilders.get(ROOT_URL + GET_ROLE_URL + "DAV" + "/ ")
.contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON_UTF8);

MvcResult result = mockMvc.perform(request).andExpect(MockMvcResultMatchers.status().isBadRequest())
.andExpect(MockMvcResultMatchers.content()
.contentType(MediaType.APPLICATION_JSON_UTF8))
.andReturn();

String actualStatus = deserialize.genericResponse(result.getResponse().getContentAsString()).getStatus();

assertThat(actualStatus).isEqualTo(Constants.FAILURE);

}


/**
* Description:Failure of request when userId is missing
*
* @throws Exception
*/
@Ignore
public void getUserRole_domainMissing() throws Exception
{
RequestBuilder request = MockMvcRequestBuilders.get(ROOT_URL + GET_ROLE_URL + " " +"/System")
.contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON_UTF8);

MvcResult result = mockMvc.perform(request).andExpect(MockMvcResultMatchers.status().isBadRequest())
.andExpect(MockMvcResultMatchers.content()
.contentType(MediaType.APPLICATION_JSON_UTF8))
.andReturn();

String actualStatus = deserialize.genericResponse(result.getResponse().getContentAsString()).getStatus();

assertThat(actualStatus).isEqualTo(Constants.FAILURE);


}

/**
* Description:Failure of request when no user exists for the gven userid or role not available in the database
*
* @throws Exception
*/
@Test
public void getUserRole_userRoleMissing() throws Exception
{
String userRole = "";
String domain = "DAV";
String userId = "Sys";
String vaUserId = domain + "\\" + userId;

Mockito.when(userService.getRoleByVaUserId(vaUserId)).thenReturn(userRole);

RequestBuilder request = MockMvcRequestBuilders.get(ROOT_URL + GET_ROLE_URL + domain + "/" + userId)
.contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON_UTF8);

MvcResult result = mockMvc.perform(request).andExpect(MockMvcResultMatchers.status().isNoContent())
.andExpect(MockMvcResultMatchers.content()
.contentType(MediaType.APPLICATION_JSON_UTF8))
.andReturn();

String actualStatus = deserialize.genericResponse(result.getResponse().getContentAsString()).getStatus();

assertThat(actualStatus).isEqualTo(Constants.FAILURE);

Mockito.verify(userService, Mockito.times(1)).getRoleByVaUserId(Mockito.anyString());
Mockito.verifyNoMoreInteractions(userService);
}


}