#631 - Partial Response : Add java doc

This commit is contained in:
Gopinath Langote 2017-09-14 21:50:40 +05:30
parent 6d3dce065d
commit c89bf0eb44
4 changed files with 38 additions and 9 deletions

View File

@ -24,7 +24,16 @@
package com.iluwatar.partialresponse;
/**
* Map a video to json
*/
public class FieldJsonMapper {
/**
* @param video object containing video information
* @param fields fields information to get
* @return json of required fields from video
*/
public String toJson(Video video, String[] fields) {
return null;
}

View File

@ -53,15 +53,18 @@ public class Video {
this.language = language;
}
/**
* @return json representaion of video
*/
@Override
public String toString() {
return "{" +
"\"id\": \"" + id + "\"," +
"\"title\": \"" + title + "\"," +
"\"length\": " + length + "," +
"\"description\": \"" + description + "\"," +
"\"director\": \"" + director + "\"," +
"\"language\": \"" + language + "\"," +
"}";
return "{"
+ "\"id\": \"" + id + "\","
+ "\"title\": \"" + title + "\","
+ "\"length\": " + length + ","
+ "\"description\": \"" + description + "\","
+ "\"director\": \"" + director + "\","
+ "\"language\": \"" + language + "\","
+ "}";
}
}

View File

@ -26,15 +26,28 @@ package com.iluwatar.partialresponse;
import java.util.Map;
/**
* The resource class which serves video information.
* This class act as server in the demo. Which has all video details.
*/
public class VideoResource {
private FieldJsonMapper fieldJsonMapper;
private Map<Integer, Video> videos;
/**
* @param fieldJsonMapper map object to json.
* @param videos initialize resource with existing videos. Act as database.
*/
public VideoResource(FieldJsonMapper fieldJsonMapper, Map<Integer, Video> videos) {
this.fieldJsonMapper = fieldJsonMapper;
this.videos = videos;
}
/**
* @param id video id
* @param fields fields to get information about
* @return json of specified fields of particular video by id
*/
public String getDetails(Integer id, String... fields) {
if (fields.length == 0) {
return videos.get(id).toString();

View File

@ -38,6 +38,9 @@ import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.when;
/**
* tests {@link VideoResource}.
*/
@RunWith(MockitoJUnitRunner.class)
public class VideoResourceTest {
@Mock
@ -58,7 +61,8 @@ public class VideoResourceTest {
public void shouldGiveVideoDetailsById() {
String actualDetails = resource.getDetails(1);
String expectedDetails = "{\"id\": \"1\",\"title\": \"Avatar\",\"length\": 178,\"description\": \"epic science fiction film\",\"director\": \"James Cameron\",\"language\": \"English\",}";
String expectedDetails = "{\"id\": \"1\",\"title\": \"Avatar\",\"length\": 178,\"description\": "
+ "\"epic science fiction film\",\"director\": \"James Cameron\",\"language\": \"English\",}";
assertEquals(expectedDetails, actualDetails);
}