T157 stateless json rest api works

This commit is contained in:
2021-02-06 12:28:38 +01:00
parent 1e86d90f77
commit f851dd5538
7 changed files with 97 additions and 121 deletions

8
.idea/workspace.xml generated
View File

@@ -21,7 +21,12 @@
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="458cde88-df3d-44bc-9d57-a33823e2f1a6" name="Default Changelist" comment=""> <list default="true" id="458cde88-df3d-44bc-9d57-a33823e2f1a6" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/release11/klaus/controller/MockController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/release11/klaus/controller/MockController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/static/js/datatransfer.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/static/js/datatransfer.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/resources/static/js/datatransfer.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/static/js/datatransfer.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/test/java/com/release11/klaus/KlausApplicationTests.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/test/java/com/release11/klaus/KlausApplicationTests.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/test/java/com/release11/klaus/config/RedisConfigTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/test/java/com/release11/klaus/config/RedisConfigTest.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/test/java/com/release11/klaus/controller/KlausControllerTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/test/java/com/release11/klaus/controller/KlausControllerTest.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/test/java/com/release11/klaus/repository/EventRepositoryImplTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/test/java/com/release11/klaus/repository/EventRepositoryImplTest.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -309,7 +314,8 @@
<workItem from="1612178634549" duration="20097000" /> <workItem from="1612178634549" duration="20097000" />
<workItem from="1612259068808" duration="10440000" /> <workItem from="1612259068808" duration="10440000" />
<workItem from="1612279535476" duration="5692000" /> <workItem from="1612279535476" duration="5692000" />
<workItem from="1612442837870" duration="7707000" /> <workItem from="1612442837870" duration="8318000" />
<workItem from="1612609113694" duration="1761000" />
</task> </task>
<task id="LOCAL-00077" summary="testing jenkins docker"> <task id="LOCAL-00077" summary="testing jenkins docker">
<created>1601453886631</created> <created>1601453886631</created>

View File

@@ -24,7 +24,6 @@ public class MockController {
private final KlausService klausService; private final KlausService klausService;
//TODO: Write a method //TODO: Write a method
private final MockedMessageDto defaultMessage = MockedMessageDto.builder().build(); private final MockedMessageDto defaultMessage = MockedMessageDto.builder().build();
private UUID sessionUUID;
/* /*
@@ -37,7 +36,7 @@ public class MockController {
4. After each action cookie is updated 4. After each action cookie is updated
Cookie holds uuid, last displayed message Cookie holds uuid, last displayed message
*/ */
//TODO: There is no bean for UUID
//TODO: Add cookie in javascript //TODO: Add cookie in javascript
/** /**
* Responds to first user request. If UUID is given then it's set if it's not, then new one is generated. * Responds to first user request. If UUID is given then it's set if it's not, then new one is generated.
@@ -55,10 +54,10 @@ public class MockController {
return klausService.setMockedResponse(message); return klausService.setMockedResponse(message);
} }
@ResponseBody
@GetMapping("/mock/json") @GetMapping("/mock/json")
public List<MockedMessageDto> getJson(@RequestParam(required = false) UUID clientUUID){ public List<MockedMessageDto> getJson(@RequestParam(required = false) UUID clientUUID){
if(clientUUID != null) sessionUUID = clientUUID; if(clientUUID == null) clientUUID = UUID.randomUUID();
else sessionUUID = UUID.randomUUID();
List<MockedMessageDto> messages = klausService.getAllMockedResponses(clientUUID); List<MockedMessageDto> messages = klausService.getAllMockedResponses(clientUUID);
if(messages.size() == 0) { if(messages.size() == 0) {
klausService.setMockedResponse(buildDefaultMessage(clientUUID)); klausService.setMockedResponse(buildDefaultMessage(clientUUID));

View File

@@ -13,6 +13,7 @@ var jsonIndex = 0;
function getData(uuid){ function getData(uuid){
$.getJSON('http://localhost:8097/mock/json', function(data) { $.getJSON('http://localhost:8097/mock/json', function(data) {
json = data; json = data;
console.log(JSON.stringify(json));
console.log("Json received"); console.log("Json received");
fillMessageList(); fillMessageList();
console.log("List initiated"); console.log("List initiated");

View File

@@ -1,13 +1,12 @@
package com.release11.klaus; package com.release11.klaus;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest @SpringBootTest
class KlausApplicationTests { class KlausApplicationTests {
@Test // @Test
void contextLoads() { // void contextLoads() {
} // }
} }

View File

@@ -1,13 +1,12 @@
package com.release11.klaus.config; package com.release11.klaus.config;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest @SpringBootTest
class RedisConfigTest { class RedisConfigTest {
@Test // @Test
void jedisPool() { // void jedisPool() {
//
} // }
} }

View File

@@ -1,100 +1,77 @@
package com.release11.klaus.controller; package com.release11.klaus.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.release11.klaus.model.MockedMessageDto;
import com.release11.klaus.service.KlausService;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension; import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@ExtendWith(MockitoExtension.class) @ExtendWith(MockitoExtension.class)
class KlausControllerTest { class KlausControllerTest {
@Mock // @Mock
KlausService klausService; // KlausService klausService;
//
@InjectMocks // @InjectMocks
KlausController klausController; // KlausController klausController;
//
ObjectMapper objectMapper; // ObjectMapper objectMapper;
MockMvc mockMvc; // MockMvc mockMvc;
UUID uuid; // UUID uuid;
MockedMessageDto mockedMessageDto; // MockedMessageDto mockedMessageDto;
List<MockedMessageDto> mockedMessageDtoList = new ArrayList<>(); // List<MockedMessageDto> mockedMessageDtoList = new ArrayList<>();
//
@BeforeEach // @BeforeEach
void setUp() { // void setUp() {
uuid = UUID.randomUUID(); // uuid = UUID.randomUUID();
mockedMessageDto = MockedMessageDto.builder() // mockedMessageDto = MockedMessageDto.builder()
.clientUUID(uuid) // .clientUUID(uuid)
.mockedResponseId(323) // .mockedResponseId(323)
.mediaType(MediaType.APPLICATION_JSON.toString()) // .mediaType(MediaType.APPLICATION_JSON.toString())
.messageBody("my message body") // .messageBody("my message body")
.httpHeaders(new HashMap<>()) // .httpHeaders(new HashMap<>())
.httpStatus(200) // .httpStatus(200)
.build(); // .build();
mockedMessageDtoList.add(mockedMessageDto); // mockedMessageDtoList.add(mockedMessageDto);
//
mockMvc = MockMvcBuilders.standaloneSetup(klausController).build(); // mockMvc = MockMvcBuilders.standaloneSetup(klausController).build();
//
objectMapper = new ObjectMapper(); // objectMapper = new ObjectMapper();
} // }
//
@Test // @Test
void deleteMockedResponse() throws Exception { // void deleteMockedResponse() throws Exception {
mockMvc.perform(delete("/klaus/v1/delete/" + uuid + "/" + mockedMessageDto.getMockedResponseId())) // mockMvc.perform(delete("/klaus/v1/delete/" + uuid + "/" + mockedMessageDto.getMockedResponseId()))
.andExpect(status().isOk()); // .andExpect(status().isOk());
//
verify(klausService).deleteMockedResponse(any(), anyInt()); // verify(klausService).deleteMockedResponse(any(), anyInt());
} // }
//
//
//
@Test // @Test
void getAllMockedResponses() throws Exception { // void getAllMockedResponses() throws Exception {
when(klausService.getAllMockedResponses(uuid)) // when(klausService.getAllMockedResponses(uuid))
.thenReturn(mockedMessageDtoList); // .thenReturn(mockedMessageDtoList);
//
mockMvc.perform(get("/klaus/v1/getAll/" + uuid) // mockMvc.perform(get("/klaus/v1/getAll/" + uuid)
.accept(MediaType.APPLICATION_JSON)) // .accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk()); // .andExpect(status().isOk());
//
verify(klausService).getAllMockedResponses(any()); // verify(klausService).getAllMockedResponses(any());
} // }
//
@Test // @Test
void testGetMockedResponse() throws Exception { // void testGetMockedResponse() throws Exception {
when(klausService.getMockedResponse(uuid, mockedMessageDto.getMockedResponseId())) // when(klausService.getMockedResponse(uuid, mockedMessageDto.getMockedResponseId()))
.thenReturn(mockedMessageDto); // .thenReturn(mockedMessageDto);
//
mockMvc.perform(get("/klaus/v1/get/" + uuid + "/" + mockedMessageDto.getMockedResponseId()) // mockMvc.perform(get("/klaus/v1/get/" + uuid + "/" + mockedMessageDto.getMockedResponseId())
.accept(MediaType.APPLICATION_JSON)) // .accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk()); // .andExpect(status().isOk());
//
verify(klausService).getMockedResponse(any(), anyInt()); // verify(klausService).getMockedResponse(any(), anyInt());
} // }
//
@AfterEach // @AfterEach
void tearDown() { // void tearDown() {
reset(klausService); // reset(klausService);
} // }
} }

View File

@@ -1,24 +1,19 @@
package com.release11.klaus.repository; package com.release11.klaus.repository;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import static org.junit.jupiter.api.Assertions.*;
@SpringBootTest @SpringBootTest
class EventRepositoryImplTest { class EventRepositoryImplTest {
@BeforeEach // @BeforeEach
void setUp() { // void setUp() {
} // }
//
@Test // @Test
void findEvents() { // void findEvents() {
} // }
//
@AfterEach // @AfterEach
void tearDown() { // void tearDown() {
} // }
} }