diff --git a/httpclient/src/test/java/org/baeldung/httpclient/HttpClientCookieLiveTest.java b/httpclient/src/test/java/org/baeldung/httpclient/HttpClientCookieLiveTest.java index 1ed91bebc4..3cca95b7bc 100644 --- a/httpclient/src/test/java/org/baeldung/httpclient/HttpClientCookieLiveTest.java +++ b/httpclient/src/test/java/org/baeldung/httpclient/HttpClientCookieLiveTest.java @@ -69,6 +69,7 @@ public class HttpClientCookieLiveTest { final BasicCookieStore cookieStore = new BasicCookieStore(); final BasicClientCookie cookie = new BasicClientCookie("JSESSIONID", "1234"); cookie.setDomain(".github.com"); + cookie.setPath("/"); cookieStore.addCookie(cookie); final DefaultHttpClient client = new DefaultHttpClient(); client.setCookieStore(cookieStore); @@ -85,6 +86,7 @@ public class HttpClientCookieLiveTest { final BasicCookieStore cookieStore = new BasicCookieStore(); final BasicClientCookie cookie = new BasicClientCookie("JSESSIONID", "1234"); cookie.setDomain(".github.com"); + cookie.setPath("/"); cookieStore.addCookie(cookie); instance = HttpClientBuilder.create().setDefaultCookieStore(cookieStore).build(); @@ -100,6 +102,7 @@ public class HttpClientCookieLiveTest { final BasicCookieStore cookieStore = new BasicCookieStore(); final BasicClientCookie cookie = new BasicClientCookie("JSESSIONID", "1234"); cookie.setDomain(".github.com"); + cookie.setPath("/"); cookieStore.addCookie(cookie); instance = HttpClientBuilder.create().build(); @@ -107,6 +110,7 @@ public class HttpClientCookieLiveTest { final HttpContext localContext = new BasicHttpContext(); localContext.setAttribute(HttpClientContext.COOKIE_STORE, cookieStore); + // localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore); // before 4.3 response = instance.execute(request, localContext); assertThat(response.getStatusLine().getStatusCode(), equalTo(200)); diff --git a/httpclient/src/test/java/org/baeldung/httpclient/HttpClientLiveTest.java b/httpclient/src/test/java/org/baeldung/httpclient/HttpClientLiveTest.java index ad49fb4c41..3356ba92c3 100644 --- a/httpclient/src/test/java/org/baeldung/httpclient/HttpClientLiveTest.java +++ b/httpclient/src/test/java/org/baeldung/httpclient/HttpClientLiveTest.java @@ -157,4 +157,30 @@ public class HttpClientLiveTest { response = instance.execute(new HttpGet(SAMPLE_URL)); } + // tests - cancel request + + @Test + public final void whenRequestIsCanceled_thenCorrect() throws ClientProtocolException, IOException { + instance = HttpClients.custom().build(); + final HttpGet request = new HttpGet(SAMPLE_URL); + response = instance.execute(request); + + try { + final HttpEntity entity = response.getEntity(); + + System.out.println("----------------------------------------"); + System.out.println(response.getStatusLine()); + if (entity != null) { + System.out.println("Response content length: " + entity.getContentLength()); + } + System.out.println("----------------------------------------"); + + // Do not feel like reading the response body + // Call abort on the request object + request.abort(); + } finally { + response.close(); + } + } + } diff --git a/jackson/src/test/java/org/baeldung/jackson/ignore/MyDtoIgnoreNull.java b/jackson/src/test/java/org/baeldung/jackson/ignore/MyDtoIgnoreNull.java new file mode 100644 index 0000000000..db041cde10 --- /dev/null +++ b/jackson/src/test/java/org/baeldung/jackson/ignore/MyDtoIgnoreNull.java @@ -0,0 +1,51 @@ +package org.baeldung.jackson.ignore; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; + +@JsonInclude(Include.NON_NULL) +public class MyDtoIgnoreNull { + + private String stringValue; + private int intValue; + private boolean booleanValue; + + public MyDtoIgnoreNull() { + super(); + } + + public MyDtoIgnoreNull(final String stringValue, final int intValue, final boolean booleanValue) { + super(); + + this.stringValue = stringValue; + this.intValue = intValue; + this.booleanValue = booleanValue; + } + + // API + + public String getStringValue() { + return stringValue; + } + + public void setStringValue(final String stringValue) { + this.stringValue = stringValue; + } + + public int getIntValue() { + return intValue; + } + + public void setIntValue(final int intValue) { + this.intValue = intValue; + } + + public boolean isBooleanValue() { + return booleanValue; + } + + public void setBooleanValue(final boolean booleanValue) { + this.booleanValue = booleanValue; + } + +} diff --git a/jackson/src/test/java/org/baeldung/jackson/test/JacksonCollectionDeserializationUnitTest.java b/jackson/src/test/java/org/baeldung/jackson/test/JacksonCollectionDeserializationUnitTest.java new file mode 100644 index 0000000000..f3063e9ebf --- /dev/null +++ b/jackson/src/test/java/org/baeldung/jackson/test/JacksonCollectionDeserializationUnitTest.java @@ -0,0 +1,75 @@ +package org.baeldung.jackson.test; + +import static org.hamcrest.Matchers.instanceOf; +import static org.junit.Assert.assertThat; + +import java.io.IOException; +import java.util.LinkedHashMap; +import java.util.List; + +import org.baeldung.jackson.ignore.MyDto; +import org.junit.Test; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.type.CollectionType; +import com.google.common.collect.Lists; + +public class JacksonCollectionDeserializationUnitTest { + + // tests - json to multiple entity + + @Test + public final void givenJsonArray_whenDeserializingAsArray_thenCorrect() throws JsonParseException, JsonMappingException, IOException { + final ObjectMapper mapper = new ObjectMapper(); + + final List listOfDtos = Lists.newArrayList(new MyDto("a", 1, true), new MyDto("bc", 3, false)); + final String jsonArray = mapper.writeValueAsString(listOfDtos); + // [{"stringValue":"a","intValue":1,"booleanValue":true},{"stringValue":"bc","intValue":3,"booleanValue":false}] + + final MyDto[] asArray = mapper.readValue(jsonArray, MyDto[].class); + assertThat(asArray[0], instanceOf(MyDto.class)); + } + + @Test + public final void givenJsonArray_whenDeserializingAsListWithNoTypeInfo_thenNotCorrect() throws JsonParseException, JsonMappingException, IOException { + final ObjectMapper mapper = new ObjectMapper(); + + final List listOfDtos = Lists.newArrayList(new MyDto("a", 1, true), new MyDto("bc", 3, false)); + final String jsonArray = mapper.writeValueAsString(listOfDtos); + // [{"stringValue":"a","intValue":1,"booleanValue":true},{"stringValue":"bc","intValue":3,"booleanValue":false}] + + final List asList = mapper.readValue(jsonArray, List.class); + assertThat((Object) asList.get(0), instanceOf(LinkedHashMap.class)); + } + + @Test + public final void givenJsonArray_whenDeserializingAsListWithTypeReferenceHelp_thenCorrect() throws JsonParseException, JsonMappingException, IOException { + final ObjectMapper mapper = new ObjectMapper(); + + final List listOfDtos = Lists.newArrayList(new MyDto("a", 1, true), new MyDto("bc", 3, false)); + final String jsonArray = mapper.writeValueAsString(listOfDtos); + // [{"stringValue":"a","intValue":1,"booleanValue":true},{"stringValue":"bc","intValue":3,"booleanValue":false}] + + final List asList = mapper.readValue(jsonArray, new TypeReference>() { + }); + assertThat(asList.get(0), instanceOf(MyDto.class)); + } + + @Test + public final void givenJsonArray_whenDeserializingAsListWithJavaTypeHelp_thenCorrect() throws JsonParseException, JsonMappingException, IOException { + final ObjectMapper mapper = new ObjectMapper(); + + final List listOfDtos = Lists.newArrayList(new MyDto("a", 1, true), new MyDto("bc", 3, false)); + final String jsonArray = mapper.writeValueAsString(listOfDtos); + // [{"stringValue":"a","intValue":1,"booleanValue":true},{"stringValue":"bc","intValue":3,"booleanValue":false}] + + final CollectionType javaType = mapper.getTypeFactory().constructCollectionType(List.class, MyDto.class); + final List asList = mapper.readValue(jsonArray, javaType); + assertThat(asList.get(0), instanceOf(MyDto.class)); + } + +} +// a (private) no-args constructor is required (simulate without) diff --git a/jackson/src/test/java/org/baeldung/jackson/test/JacksonSerializationUnitTest.java b/jackson/src/test/java/org/baeldung/jackson/test/JacksonSerializationUnitTest.java index 04f1cf066b..8b26aee905 100644 --- a/jackson/src/test/java/org/baeldung/jackson/test/JacksonSerializationUnitTest.java +++ b/jackson/src/test/java/org/baeldung/jackson/test/JacksonSerializationUnitTest.java @@ -11,13 +11,16 @@ import org.baeldung.jackson.ignore.MyDto; import org.baeldung.jackson.ignore.MyDtoFieldNameChanged; import org.baeldung.jackson.ignore.MyDtoIgnoreField; import org.baeldung.jackson.ignore.MyDtoIgnoreFieldByName; +import org.baeldung.jackson.ignore.MyDtoIgnoreNull; import org.baeldung.jackson.ignore.MyDtoIncludeNonDefault; import org.baeldung.jackson.ignore.MyDtoWithFilter; import org.baeldung.jackson.ignore.MyMixInForString; import org.junit.Test; +import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.BeanPropertyWriter; @@ -169,6 +172,33 @@ public class JacksonSerializationUnitTest { System.out.println(dtoAsString); } + @Test + public final void givenIgnoringNullFieldsOnClass_whenSerializingObjectWithNullField_thenFieldIsIgnroed() throws JsonProcessingException { + final ObjectMapper mapper = new ObjectMapper(); + final MyDtoIgnoreNull dtoObject = new MyDtoIgnoreNull(); + + final String dtoAsString = mapper.writeValueAsString(dtoObject); + + assertThat(dtoAsString, containsString("intValue")); + assertThat(dtoAsString, containsString("booleanValue")); + assertThat(dtoAsString, not(containsString("stringValue"))); + System.out.println(dtoAsString); + } + + @Test + public final void givenIgnoringNullFieldsGlobally_whenSerializingObjectWithNullField_thenFieldIsIgnroed() throws JsonProcessingException { + final ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(Include.NON_NULL); + final MyDto dtoObject = new MyDto(); + + final String dtoAsString = mapper.writeValueAsString(dtoObject); + + assertThat(dtoAsString, containsString("intValue")); + assertThat(dtoAsString, containsString("booleanValue")); + assertThat(dtoAsString, not(containsString("stringValue"))); + System.out.println(dtoAsString); + } + // tests - multiple entities to json @Test