Created
April 13, 2020 13:30
-
-
Save pradeepwebonise/60843721a4a6c8ced0b65b4c93d62b31 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import com.fasterxml.jackson.databind.ObjectMapper; | |
import org.junit.Before; | |
import org.junit.Test; | |
import org.mockito.InjectMocks; | |
import org.mockito.Mock; | |
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.setup.MockMvcBuilders; | |
import java.util.ArrayList; | |
import static com.drf.userpreferences.helper.UserPicksHelper.createRaceKeyDTO; | |
import static org.junit.Assert.assertNotNull; | |
import static org.mockito.ArgumentMatchers.any; | |
import static org.mockito.Mockito.when; | |
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; | |
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; | |
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; | |
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; | |
public class UserControllerTest { | |
private static final String TRACK_ID = "trackId"; | |
private static final String RACE_DATE = "raceDate"; | |
private static final String RACE_NUMBER = "raceNumber"; | |
private static final String DAY_EVENING = "dayEvening"; | |
private static final String COUNTRY = "country"; | |
@InjectMocks | |
private UserController userController; | |
@Mock | |
private UserService userServiceSpy; | |
private MockMvc mockMvc; | |
private ObjectMapper objectMapper = new ObjectMapper(); | |
@Before | |
public void setUp() { | |
MockitoAnnotations.initMocks(this); | |
mockMvc = MockMvcBuilders.standaloneSetup(userController).build(); | |
} | |
@Test | |
public void testFetchFavoriteAndRecentTracks() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
get("/user/{drfUserId}/tracks/favorite-recent/{fromDays}", | |
MockData.USER_ID.getMockLong(), | |
MockData.FROM_DATE.getMockString(), | |
MockData.DAYS.getMockInt())) | |
.andExpect(status().isOk()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void fetchFavoriteAndRecentTracksWithMethodNotAllow() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
post("/user/{drfUserId}/tracks/favorite-recent/{fromDays}", | |
MockData.USER_ID.getMockLong(), | |
MockData.FROM_DATE.getMockString(), | |
MockData.DAYS.getMockInt())) | |
.andExpect(status().isMethodNotAllowed()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void fetchFavoriteAndRecentTracksWithNotFound() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
get("/user/{drfUserId}/tracks/favorite-recent/", | |
MockData.USER_ID.getMockLong(), | |
MockData.FROM_DATE.getMockString(), | |
MockData.DAYS.getMockInt())) | |
.andExpect(status().isNotFound()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void testAddOrRemoveFavoriteTrack() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
put("/user/{drfUserId}/tracks/favorite/{trackId}", | |
MockData.USER_ID.getMockLong(), | |
MockData.TRACK_ID.getMockString())) | |
.andExpect(status().isOk()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void addOrRemoveFavoriteTrackWithMethodNotAllow() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
post("/user/{drfUserId}/tracks/favorite/{trackId}", | |
MockData.USER_ID.getMockLong(), | |
MockData.TRACK_ID.getMockString())) | |
.andExpect(status().isMethodNotAllowed()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void addOrRemoveFavoriteTrackWithNotFound() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
put("/user/{drfUserId}/tracks/favorite/", | |
MockData.USER_ID.getMockLong(), | |
MockData.TRACK_ID.getMockString())) | |
.andExpect(status().isNotFound()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void testAddFavoriteTrack() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
put("/user/{drfUserId}/tracks/add/favorite/{trackId}", | |
MockData.USER_ID.getMockLong(), | |
MockData.TRACK_ID.getMockString())) | |
.andExpect(status().isOk()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void addFavoriteTrackWithMethodNotAllow() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
post("/user/{drfUserId}/tracks/add/favorite/{trackId}", | |
MockData.USER_ID.getMockLong(), | |
MockData.TRACK_ID.getMockString())) | |
.andExpect(status().isMethodNotAllowed()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void addFavoriteTrackWithNotFound() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
put("/user/{drfUserId}/tracks/add/favorite/", | |
MockData.USER_ID.getMockLong(), | |
MockData.TRACK_ID.getMockString())) | |
.andExpect(status().isNotFound()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void testUpdatePositionOfFavoriteTrack() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
put("/user/{drfUserId}/tracks/favorite/move/{fromTrackId}/to/{toTrackId}", | |
MockData.USER_ID.getMockLong(), | |
MockData.TRACK_ID.getMockString(), | |
MockData.TRACK_ID.getMockString())) | |
.andExpect(status().isOk()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void updatePositionOfFavoriteTrackWithMethodNotAllow() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
get("/user/{drfUserId}/tracks/favorite/move/{fromTrackId}/to/{toTrackId}", | |
MockData.USER_ID.getMockLong(), | |
MockData.TRACK_ID.getMockString(), | |
MockData.TRACK_ID.getMockString())) | |
.andExpect(status().isMethodNotAllowed()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void updatePositionOfFavoriteTrackWithNotFound() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
get("/user/{drfUserId}/tracks/favorite/move/{fromTrackId}/to", | |
MockData.USER_ID.getMockLong(), | |
MockData.TRACK_ID.getMockString(), | |
MockData.TRACK_ID.getMockString())) | |
.andExpect(status().isNotFound()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void testAddOrUpdateRecentTracks() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
put("/user/{drfUserId}/tracks/recent/{trackId}/{fromDays}", | |
MockData.USER_ID.getMockLong(), | |
MockData.TRACK_ID.getMockString(), | |
MockData.DAYS.getMockInt())) | |
.andExpect(status().isOk()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void addOrUpdateRecentTracksWithMethodNotAllow() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
get("/user/{drfUserId}/tracks/recent/{trackId}/{fromDays}", | |
MockData.USER_ID.getMockLong(), | |
MockData.TRACK_ID.getMockString(), | |
MockData.DAYS.getMockInt())) | |
.andExpect(status().isMethodNotAllowed()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void addOrUpdateRecentTracksWithNotFound() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
get("/user/{drfUserId}/tracks/recent/{trackId}", | |
MockData.USER_ID.getMockLong(), | |
MockData.TRACK_ID.getMockString(), | |
MockData.DAYS.getMockInt())) | |
.andExpect(status().isNotFound()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void getPpHorseScratchedStatus() throws Exception { | |
when(userServiceSpy.getPpHorseScratchedStatus(any(), any())).thenReturn(new ArrayList<>()); | |
MvcResult mvcResult = mockMvc.perform( | |
get("/user/{drfUserId}/tracks/horse-scratched-status", | |
MockData.USER_ID.getMockLong()) | |
.param(TRACK_ID, MockData.TRACK_ID.getMockString()) | |
.param(RACE_DATE, MockData.RACE_DATE.getMockString()) | |
.param(DAY_EVENING, MockData.DAY_EVE.getMockString()) | |
.param(COUNTRY, MockData.COUNTRY.getMockString())) | |
.andExpect(status().isOk()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void getPpHorseScratchedStatusWithMethodNotAllowed() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
post("/user/{drfUserId}/tracks/horse-scratched-status", | |
MockData.USER_ID.getMockLong()) | |
.param(TRACK_ID, MockData.TRACK_ID.getMockString()) | |
.param(RACE_DATE, MockData.RACE_DATE.getMockString()) | |
.param(DAY_EVENING, MockData.DAY_EVE.getMockString()) | |
.param(COUNTRY, MockData.COUNTRY.getMockString())) | |
.andExpect(status().isMethodNotAllowed()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void getPpHorseScratchedStatusWithNotFound() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
get("/user/{drfUserId}/tracks/horse-scratched", | |
MockData.USER_ID.getMockLong()) | |
.param(TRACK_ID, MockData.TRACK_ID.getMockString()) | |
.param(RACE_DATE, MockData.RACE_DATE.getMockString()) | |
.param(DAY_EVENING, MockData.DAY_EVE.getMockString()) | |
.param(COUNTRY, MockData.COUNTRY.getMockString())) | |
.andExpect(status().isNotFound()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void getPpHorseScratchedStatusWithBadRequest() throws Exception { | |
MvcResult mvcResult = mockMvc.perform( | |
get("/user/{drfUserId}/tracks/horse-scratched-status", | |
MockData.USER_ID.getMockLong()) | |
.param(TRACK_ID, MockData.TRACK_ID.getMockString()) | |
.param(RACE_DATE, MockData.RACE_NUM.getMockString()) | |
.param(DAY_EVENING, MockData.DAY_EVE.getMockString()) | |
.param(COUNTRY, MockData.COUNTRY.getMockString())) | |
.andExpect(status().isBadRequest()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void addOrUpdatePpHorseScratchedStatus() throws Exception { | |
String raceKey = objectMapper.writeValueAsString(createRaceKeyDTO()); | |
MvcResult mvcResult = mockMvc.perform( | |
put("/user/{drfUserId}/tracks/horse-scratched-status/{horseScratchedStatus}", | |
MockData.USER_ID.getMockLong(), MockData.STATUS.getMockInt()) | |
.contentType(MediaType.APPLICATION_JSON).content(raceKey)) | |
.andExpect(status().isOk()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void addOrUpdatePpHorseScratchedStatusWithMethodNotAllowed() throws Exception { | |
String raceKey = objectMapper.writeValueAsString(createRaceKeyDTO()); | |
MvcResult mvcResult = mockMvc.perform( | |
post("/user/{drfUserId}/tracks/horse-scratched-status/{horseScratchedStatus}", | |
MockData.USER_ID.getMockLong(), MockData.STATUS.getMockInt()) | |
.contentType(MediaType.APPLICATION_JSON).content(raceKey)) | |
.andExpect(status().isMethodNotAllowed()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void addOrUpdatePpHorseScratchedStatusIsNotFound() throws Exception { | |
String raceKey = objectMapper.writeValueAsString(createRaceKeyDTO()); | |
MvcResult mvcResult = mockMvc.perform( | |
post("/user/{drfUserId}/tracks/horse-scratched/{horseScratchedStatus}", | |
MockData.USER_ID.getMockLong(), MockData.STATUS.getMockInt()) | |
.contentType(MediaType.APPLICATION_JSON).content(raceKey)) | |
.andExpect(status().isNotFound()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
@Test | |
public void addOrUpdatePpHorseScratchedStatusBadRequest() throws Exception { | |
String raceKey = objectMapper.writeValueAsString(createRaceKeyDTO()); | |
MvcResult mvcResult = mockMvc.perform( | |
put("/user/{drfUserId}/tracks/horse-scratched-status/{horseScratchedStatus}", | |
MockData.USER_ID.getMockLong(), MockData.STATUS.getMockInt()) | |
.contentType(MediaType.APPLICATION_JSON).content("")) | |
.andExpect(status().isBadRequest()) | |
.andReturn(); | |
String returnResult = mvcResult.getResponse().getContentAsString(); | |
assertNotNull(returnResult); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment