wedroid/wrapper/src/test/java/it/unisannio/ding/ids/wedroid/wrapper/api/CardCommentServiceTest.java

132 lines
3.9 KiB
Java

package it.unisannio.ding.ids.wedroid.wrapper.api;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import it.unisannio.ding.ids.wedroid.wrapper.entity.Comment;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.util.List;
import okhttp3.mockwebserver.MockResponse;
import okhttp3.mockwebserver.MockWebServer;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class CardCommentServiceTest {
private MockWebServer mockWebServer = new MockWebServer();
private CardCommentService service = null;
@Before
public void setUp() {
try {
mockWebServer.start();
service = new Retrofit.Builder()
.baseUrl(mockWebServer.url("/"))
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(CardCommentService.class);
} catch (IOException e) {
e.printStackTrace();
}
}
@After
public void teardown() {
try {
mockWebServer.shutdown();
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void getAllComments() {
MockResponse response = new MockResponse()
.setResponseCode(HttpURLConnection.HTTP_OK)
.setBody(
"[ " + COMMENT_1 + ", " + COMMENT_2 + ", " + COMMENT_3 + " ]"
);
mockWebServer.enqueue(response);
try {
List<Comment> lists = service.getAllComments("board id", "card id")
.execute().body();
assertNotNull(lists);
assertEquals(3, lists.size());
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void postNewComment() {
MockResponse response = new MockResponse()
.setResponseCode(HttpURLConnection.HTTP_OK)
.setBody(COMMENT_1);
mockWebServer.enqueue(response);
try {
Comment comment = service.postNewComment(
"board id",
"card id",
"author id",
"comment"
).execute().body();
assertNotNull(comment);
assertNotNull(comment.getId());
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void getComment() {
MockResponse response = new MockResponse()
.setResponseCode(HttpURLConnection.HTTP_OK)
.setBody(COMMENT_3);
mockWebServer.enqueue(response);
try {
Comment comment = service.getComment(
"board id",
"card id",
"comment id"
).execute().body();
assertNotNull(comment);
assertNotNull(comment.getAuthorId());
assertNotNull(comment.getComment());
} catch (IOException e) {
e.printStackTrace();
}
}
private static final String COMMENT_1 = "{" +
"\"_id\":\"zwzAgjHdW4fNJ9YLc\"," +
"\"comment\":\"comment 1\"," +
"\"authorId\":\"Si69gNgkJfQuk6uiJ\"" +
"}";
private static final String COMMENT_2 = "{" +
"\"_id\":\"zwzAgjHdW4fNJ9YLt\"," +
"\"comment\":\"comment 2\"," +
"\"authorId\":\"Si69gNgkJfQuk6uiJ\"" +
"}";
private static final String COMMENT_3 = "{" +
"\"_id\":\"DofhD9v96DbX7Wirp\"," +
"\"userId\":\"Si69gNgkJfQuk6uiJ\"," +
"\"text\":\"commento api\"," +
"\"cardId\":\"XQtnuqWEJnEcm6iy2\"," +
"\"boardId\":\"TtjXrJyvPkG3xsbkw\"," +
"\"createdAt\":\"2019-11-12T20:12:55.749Z\"," +
"\"modifiedAt\":\"2019-11-12T20:12:55.749Z\"" +
"}";
}