First commit of protocol buffers. (#452)
This commit is contained in:
committed by
Grzegorz Piwowarek
parent
d9223b24fb
commit
85ad446ccf
@@ -0,0 +1,76 @@
|
||||
package com.baeldung.protobuf;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.SpringApplicationConfiguration;
|
||||
import org.springframework.boot.test.WebIntegrationTest;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import com.baeldung.protobuf.BaeldungTraining.Course;
|
||||
import com.googlecode.protobuf.format.JsonFormat;
|
||||
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.hamcrest.CoreMatchers.containsString;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@SpringApplicationConfiguration(classes = Application.class)
|
||||
@WebIntegrationTest
|
||||
public class ApplicationTest {
|
||||
private static final String COURSE1_URL = "http://localhost:8080/courses/1";
|
||||
@Autowired
|
||||
private RestTemplate restTemplate;
|
||||
|
||||
@Test
|
||||
public void whenUsingRestTemplate_thenSucceed() {
|
||||
ResponseEntity<Course> course = restTemplate.getForEntity(COURSE1_URL, Course.class);
|
||||
assertResponse(course.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenUsingHttpClient_thenSucceed() throws IOException {
|
||||
InputStream responseStream = executeHttpRequest(COURSE1_URL);
|
||||
String jsonOutput = convertProtobufMessageStreamToJsonString(responseStream);
|
||||
assertResponse(jsonOutput);
|
||||
}
|
||||
|
||||
private InputStream executeHttpRequest(String url) throws IOException {
|
||||
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||
HttpGet request = new HttpGet(url);
|
||||
HttpResponse httpResponse = httpClient.execute(request);
|
||||
return httpResponse.getEntity().getContent();
|
||||
}
|
||||
|
||||
private String convertProtobufMessageStreamToJsonString(InputStream protobufStream) throws IOException {
|
||||
JsonFormat jsonFormat = new JsonFormat();
|
||||
Course course = Course.parseFrom(protobufStream);
|
||||
return jsonFormat.printToString(course);
|
||||
}
|
||||
|
||||
private void assertResponse(String response) {
|
||||
assertThat(response, containsString("id"));
|
||||
assertThat(response, containsString("course_name"));
|
||||
assertThat(response, containsString("REST with Spring"));
|
||||
assertThat(response, containsString("student"));
|
||||
assertThat(response, containsString("first_name"));
|
||||
assertThat(response, containsString("last_name"));
|
||||
assertThat(response, containsString("email"));
|
||||
assertThat(response, containsString("john.doe@baeldung.com"));
|
||||
assertThat(response, containsString("richard.roe@baeldung.com"));
|
||||
assertThat(response, containsString("jane.doe@baeldung.com"));
|
||||
assertThat(response, containsString("phone"));
|
||||
assertThat(response, containsString("number"));
|
||||
assertThat(response, containsString("type"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user