Upgrade Kotlin, AssertJ, compile-testing, and kotlin-metadata dependencies

This commit is contained in:
Jesse Wilson 2018-09-24 21:48:25 -04:00
parent f873bd93b7
commit 735f0c39f7
5 changed files with 42 additions and 29 deletions

View file

@ -108,7 +108,7 @@
<sourceDirs> <sourceDirs>
<sourceDir>src/test/kotlin</sourceDir> <sourceDir>src/test/kotlin</sourceDir>
<sourceDir>src/test/java</sourceDir> <sourceDir>src/test/java</sourceDir>
<sourceDir>target/generated-sources/kapt/test</sourceDir> <sourceDir>target/generated-sources/kaptKotlin/test</sourceDir>
</sourceDirs> </sourceDirs>
</configuration> </configuration>
</execution> </execution>
@ -144,7 +144,9 @@
<execution> <execution>
<id>java-test-compile</id> <id>java-test-compile</id>
<phase>test-compile</phase> <phase>test-compile</phase>
<goals> <goal>testCompile</goal> </goals> <goals>
<goal>testCompile</goal>
</goals>
</execution> </execution>
</executions> </executions>
</plugin> </plugin>

View file

@ -18,6 +18,7 @@ package com.squareup.moshi;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.BigInteger; import java.math.BigInteger;
import java.util.AbstractMap.SimpleEntry;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -28,7 +29,6 @@ import org.junit.Test;
import static java.util.Collections.singletonList; import static java.util.Collections.singletonList;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.entry;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
public final class JsonValueWriterTest { public final class JsonValueWriterTest {
@ -57,8 +57,11 @@ public final class JsonValueWriterTest {
writer.name("d").nullValue(); writer.name("d").nullValue();
writer.endObject(); writer.endObject();
assertThat((Map<?, ?>) writer.root()).containsExactly( assertThat((Map<String, Object>) writer.root()).containsExactly(
entry("a", "s"), entry("b", 1.5d), entry("c", true), entry("d", null)); new SimpleEntry<String, Object>("a", "s"),
new SimpleEntry<String, Object>("b", 1.5d),
new SimpleEntry<String, Object>("c", true),
new SimpleEntry<String, Object>("d", null));
} }
@Test public void repeatedNameThrows() throws IOException { @Test public void repeatedNameThrows() throws IOException {
@ -253,8 +256,11 @@ public final class JsonValueWriterTest {
writer.name("d"); writer.name("d");
writer.value(new Buffer().writeUtf8("null")); writer.value(new Buffer().writeUtf8("null"));
writer.endObject(); writer.endObject();
assertThat((Map<?, ?>) writer.root()).containsExactly( assertThat((Map<String, Object>) writer.root()).containsExactly(
entry("a", singletonList("value")), entry("b", 2.0d), entry("c", 3L), entry("d", null)); new SimpleEntry<String, Object>("a", singletonList("value")),
new SimpleEntry<String, Object>("b", 2.0d),
new SimpleEntry<String, Object>("c", 3L),
new SimpleEntry<String, Object>("d", null));
} }
/** /**

View file

@ -17,12 +17,12 @@ package com.squareup.moshi;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.AbstractMap.SimpleEntry;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
import okio.Buffer; import okio.Buffer;
import org.assertj.core.data.MapEntry;
import org.junit.Test; import org.junit.Test;
import static com.squareup.moshi.TestUtil.newReader; import static com.squareup.moshi.TestUtil.newReader;
@ -45,7 +45,9 @@ public final class MapJsonAdapterTest {
Map<String, Boolean> fromJson = fromJson( Map<String, Boolean> fromJson = fromJson(
String.class, Boolean.class, "{\"a\":true,\"b\":false,\"c\":null}"); String.class, Boolean.class, "{\"a\":true,\"b\":false,\"c\":null}");
assertThat(fromJson).containsExactly( assertThat(fromJson).containsExactly(
MapEntry.entry("a", true), MapEntry.entry("b", false), MapEntry.entry("c", null)); new SimpleEntry<String, Boolean>("a", true),
new SimpleEntry<String, Boolean>("b", false),
new SimpleEntry<String, Boolean>("c", null));
} }
@Test public void mapWithNullKeyFailsToEmit() throws Exception { @Test public void mapWithNullKeyFailsToEmit() throws Exception {
@ -119,13 +121,15 @@ public final class MapJsonAdapterTest {
String toJson = toJson(Integer.class, Boolean.class, map); String toJson = toJson(Integer.class, Boolean.class, map);
assertThat(toJson).isEqualTo("{\"5\":true,\"6\":false,\"7\":null}"); assertThat(toJson).isEqualTo("{\"5\":true,\"6\":false,\"7\":null}");
Map<String, Boolean> fromJson = fromJson( Map<Integer, Boolean> fromJson = fromJson(
Integer.class, Boolean.class, "{\"5\":true,\"6\":false,\"7\":null}"); Integer.class, Boolean.class, "{\"5\":true,\"6\":false,\"7\":null}");
assertThat(fromJson).containsExactly( assertThat(fromJson).containsExactly(
MapEntry.entry(5, true), MapEntry.entry(6, false), MapEntry.entry(7, null)); new SimpleEntry<Integer, Boolean>(5, true),
new SimpleEntry<Integer, Boolean>(6, false),
new SimpleEntry<Integer, Boolean>(7, null));
} }
@Test public void mapWithNonStringKeysToJsonObject() throws Exception { @Test public void mapWithNonStringKeysToJsonObject() {
Map<Integer, Boolean> map = new LinkedHashMap<>(); Map<Integer, Boolean> map = new LinkedHashMap<>();
map.put(5, true); map.put(5, true);
map.put(6, false); map.put(6, false);

View file

@ -22,6 +22,7 @@ import java.math.BigDecimal;
import java.util.AbstractCollection; import java.util.AbstractCollection;
import java.util.AbstractList; import java.util.AbstractList;
import java.util.AbstractMap; import java.util.AbstractMap;
import java.util.AbstractMap.SimpleEntry;
import java.util.AbstractSet; import java.util.AbstractSet;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
@ -40,10 +41,9 @@ import org.junit.Test;
import static java.util.Collections.singletonList; import static java.util.Collections.singletonList;
import static java.util.Collections.singletonMap; import static java.util.Collections.singletonMap;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.entry;
public final class ObjectAdapterTest { public final class ObjectAdapterTest {
@Test public void toJsonUsesRuntimeType() throws Exception { @Test public void toJsonUsesRuntimeType() {
Delivery delivery = new Delivery(); Delivery delivery = new Delivery();
delivery.address = "1455 Market St."; delivery.address = "1455 Market St.";
Pizza pizza = new Pizza(); Pizza pizza = new Pizza();
@ -62,7 +62,7 @@ public final class ObjectAdapterTest {
+ "}"); + "}");
} }
@Test public void toJsonJavaLangObject() throws Exception { @Test public void toJsonJavaLangObject() {
Moshi moshi = new Moshi.Builder().build(); Moshi moshi = new Moshi.Builder().build();
JsonAdapter<Object> adapter = moshi.adapter(Object.class); JsonAdapter<Object> adapter = moshi.adapter(Object.class);
assertThat(adapter.toJson(new Object())).isEqualTo("{}"); assertThat(adapter.toJson(new Object())).isEqualTo("{}");
@ -104,7 +104,7 @@ public final class ObjectAdapterTest {
.isEqualTo(emptyDelivery); .isEqualTo(emptyDelivery);
} }
@Test public void toJsonCoercesRuntimeTypeForCollections() throws Exception { @Test public void toJsonCoercesRuntimeTypeForCollections() {
Collection<String> collection = new AbstractCollection<String>() { Collection<String> collection = new AbstractCollection<String>() {
@Override public Iterator<String> iterator() { @Override public Iterator<String> iterator() {
return Collections.singleton("A").iterator(); return Collections.singleton("A").iterator();
@ -119,7 +119,7 @@ public final class ObjectAdapterTest {
assertThat(adapter.toJson(collection)).isEqualTo("[\"A\"]"); assertThat(adapter.toJson(collection)).isEqualTo("[\"A\"]");
} }
@Test public void toJsonCoercesRuntimeTypeForLists() throws Exception { @Test public void toJsonCoercesRuntimeTypeForLists() {
List<String> list = new AbstractList<String>() { List<String> list = new AbstractList<String>() {
@Override public String get(int i) { @Override public String get(int i) {
return "A"; return "A";
@ -135,7 +135,7 @@ public final class ObjectAdapterTest {
assertThat(adapter.toJson(list)).isEqualTo("[\"A\"]"); assertThat(adapter.toJson(list)).isEqualTo("[\"A\"]");
} }
@Test public void toJsonCoercesRuntimeTypeForSets() throws Exception { @Test public void toJsonCoercesRuntimeTypeForSets() {
Set<String> set = new AbstractSet<String>() { Set<String> set = new AbstractSet<String>() {
@Override public Iterator<String> iterator() { @Override public Iterator<String> iterator() {
return Collections.singleton("A").iterator(); return Collections.singleton("A").iterator();
@ -151,7 +151,7 @@ public final class ObjectAdapterTest {
} }
@Ignore // We don't support raw maps, like Map<Object, Object>. (Even if the keys are strings!) @Ignore // We don't support raw maps, like Map<Object, Object>. (Even if the keys are strings!)
@Test public void toJsonCoercesRuntimeTypeForMaps() throws Exception { @Test public void toJsonCoercesRuntimeTypeForMaps() {
Map<String, Boolean> map = new AbstractMap<String, Boolean>() { Map<String, Boolean> map = new AbstractMap<String, Boolean>() {
@Override public Set<Entry<String, Boolean>> entrySet() { @Override public Set<Entry<String, Boolean>> entrySet() {
return Collections.singletonMap("A", true).entrySet(); return Collections.singletonMap("A", true).entrySet();
@ -163,7 +163,7 @@ public final class ObjectAdapterTest {
assertThat(adapter.toJson(map)).isEqualTo("{\"A\":true}"); assertThat(adapter.toJson(map)).isEqualTo("{\"A\":true}");
} }
@Test public void toJsonUsesTypeAdapters() throws Exception { @Test public void toJsonUsesTypeAdapters() {
Object dateAdapter = new Object() { Object dateAdapter = new Object() {
@ToJson Long dateToJson(Date d) { @ToJson Long dateToJson(Date d) {
return d.getTime(); return d.getTime();
@ -185,7 +185,7 @@ public final class ObjectAdapterTest {
*/ */
@Test public void objectAdapterDelegatesStringNamesAndValues() throws Exception { @Test public void objectAdapterDelegatesStringNamesAndValues() throws Exception {
JsonAdapter<String> stringAdapter = new JsonAdapter<String>() { JsonAdapter<String> stringAdapter = new JsonAdapter<String>() {
@Nullable @Override public String fromJson(JsonReader reader) throws IOException { @Override public String fromJson(JsonReader reader) throws IOException {
return reader.nextString().toUpperCase(Locale.US); return reader.nextString().toUpperCase(Locale.US);
} }
@ -198,8 +198,9 @@ public final class ObjectAdapterTest {
.add(String.class, stringAdapter) .add(String.class, stringAdapter)
.build(); .build();
JsonAdapter<Object> objectAdapter = moshi.adapter(Object.class); JsonAdapter<Object> objectAdapter = moshi.adapter(Object.class);
Map<?, ?> value = (Map<?, ?>) objectAdapter.fromJson("{\"a\":\"b\", \"c\":\"d\"}"); Map<String, String> value
assertThat(value).containsExactly(entry("A", "B"), entry("C", "D")); = (Map<String, String>) objectAdapter.fromJson("{\"a\":\"b\", \"c\":\"d\"}");
assertThat(value).containsExactly(new SimpleEntry<>("A", "B"), new SimpleEntry<>("C", "D"));
} }
/** /**
@ -241,7 +242,7 @@ public final class ObjectAdapterTest {
/** Confirm that the built-in adapter for Object delegates to user-supplied adapters for lists. */ /** Confirm that the built-in adapter for Object delegates to user-supplied adapters for lists. */
@Test public void objectAdapterDelegatesLists() throws Exception { @Test public void objectAdapterDelegatesLists() throws Exception {
JsonAdapter<List<?>> listAdapter = new JsonAdapter<List<?>>() { JsonAdapter<List<?>> listAdapter = new JsonAdapter<List<?>>() {
@Override public @Nullable List<?> fromJson(JsonReader reader) throws IOException { @Override public List<?> fromJson(JsonReader reader) throws IOException {
reader.skipValue(); reader.skipValue();
return singletonList("z"); return singletonList("z");
} }
@ -262,7 +263,7 @@ public final class ObjectAdapterTest {
/** Confirm that the built-in adapter for Object delegates to user-supplied adapters for maps. */ /** Confirm that the built-in adapter for Object delegates to user-supplied adapters for maps. */
@Test public void objectAdapterDelegatesMaps() throws Exception { @Test public void objectAdapterDelegatesMaps() throws Exception {
JsonAdapter<Map<?, ?>> mapAdapter = new JsonAdapter<Map<?, ?>>() { JsonAdapter<Map<?, ?>> mapAdapter = new JsonAdapter<Map<?, ?>>() {
@Override public @Nullable Map<?, ?> fromJson(JsonReader reader) throws IOException { @Override public Map<?, ?> fromJson(JsonReader reader) throws IOException {
reader.skipValue(); reader.skipValue();
return singletonMap("x", "y"); return singletonMap("x", "y");
} }

View file

@ -29,8 +29,8 @@
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.7</java.version> <java.version>1.7</java.version>
<kotlin.version>1.2.21</kotlin.version> <kotlin.version>1.2.71</kotlin.version>
<kotlin-metadata.version>1.3.0</kotlin-metadata.version> <kotlin-metadata.version>1.4.0</kotlin-metadata.version>
<dokka.version>0.9.17</dokka.version> <dokka.version>0.9.17</dokka.version>
<maven-assembly.version>3.1.0</maven-assembly.version> <maven-assembly.version>3.1.0</maven-assembly.version>
@ -38,9 +38,9 @@
<okio.version>1.15.0</okio.version> <okio.version>1.15.0</okio.version>
<!-- Test Dependencies --> <!-- Test Dependencies -->
<compile-testing.version>0.8</compile-testing.version> <compile-testing.version>0.15</compile-testing.version>
<junit.version>4.12</junit.version> <junit.version>4.12</junit.version>
<assertj.version>1.7.0</assertj.version> <assertj.version>3.11.1</assertj.version>
</properties> </properties>
<scm> <scm>