|
59 | 59 | import static org.mockito.Mockito.mock; |
60 | 60 | import static org.mockito.Mockito.when; |
61 | 61 |
|
62 | | -import com.datastax.dse.driver.api.core.data.geometry.LineString; |
63 | | -import com.datastax.dse.driver.api.core.data.geometry.Polygon; |
64 | 62 | import com.datastax.dse.driver.api.core.data.time.DateRange; |
65 | | -import com.datastax.dse.driver.internal.core.data.geometry.DefaultLineString; |
66 | | -import com.datastax.dse.driver.internal.core.data.geometry.DefaultPoint; |
67 | | -import com.datastax.dse.driver.internal.core.data.geometry.DefaultPolygon; |
68 | 63 | import com.datastax.oss.driver.api.core.data.ByteUtils; |
69 | 64 | import com.datastax.oss.driver.api.core.uuid.Uuids; |
70 | 65 | import com.datastax.oss.driver.shaded.guava.common.collect.ImmutableMap; |
@@ -1010,75 +1005,97 @@ void should_parse_point() { |
1010 | 1005 | assertThat(CodecUtils.parsePoint(null)).isNull(); |
1011 | 1006 | assertThat(CodecUtils.parsePoint("")).isNull(); |
1012 | 1007 | assertThat(CodecUtils.parsePoint("POINT (-1.1 -2.2)")) |
1013 | | - .isEqualTo(new DefaultPoint(-1.1d, -2.2d)); |
| 1008 | + .isNotNull() |
| 1009 | + .extracting(p -> p.asWellKnownText()) |
| 1010 | + .isEqualTo("POINT (-1.1 -2.2)"); |
1014 | 1011 | assertThat(CodecUtils.parsePoint("'POINT (-1.1 -2.2)'")) |
1015 | | - .isEqualTo(new DefaultPoint(-1.1d, -2.2d)); |
| 1012 | + .isNotNull() |
| 1013 | + .extracting(p -> p.asWellKnownText()) |
| 1014 | + .isEqualTo("POINT (-1.1 -2.2)"); |
1016 | 1015 | assertThat(CodecUtils.parsePoint("{\"type\":\"Point\",\"coordinates\":[-1.1,-2.2]}")) |
1017 | | - .isEqualTo(new DefaultPoint(-1.1d, -2.2d)); |
| 1016 | + .isNotNull() |
| 1017 | + .extracting(p -> p.asWellKnownText()) |
| 1018 | + .isEqualTo("POINT (-1.1 -2.2)"); |
1018 | 1019 | assertThat(CodecUtils.parsePoint("AQEAAACamZmZmZnxv5qZmZmZmQHA")) |
1019 | | - .isEqualTo(new DefaultPoint(-1.1d, -2.2d)); |
| 1020 | + .isNotNull() |
| 1021 | + .extracting(p -> p.asWellKnownText()) |
| 1022 | + .isEqualTo("POINT (-1.1 -2.2)"); |
1020 | 1023 | assertThat(CodecUtils.parsePoint("0x01010000009a9999999999f1bf9a999999999901c0")) |
1021 | | - .isEqualTo(new DefaultPoint(-1.1d, -2.2d)); |
| 1024 | + .isNotNull() |
| 1025 | + .extracting(p -> p.asWellKnownText()) |
| 1026 | + .isEqualTo("POINT (-1.1 -2.2)"); |
1022 | 1027 | assertThatThrownBy(() -> CodecUtils.parsePoint("not a valid point")) |
1023 | 1028 | .isInstanceOf(IllegalArgumentException.class) |
1024 | 1029 | .hasMessageContaining("Invalid point literal"); |
1025 | 1030 | } |
1026 | 1031 |
|
1027 | 1032 | @Test |
1028 | 1033 | void should_parse_line_string() { |
1029 | | - LineString lineString = |
1030 | | - new DefaultLineString( |
1031 | | - new DefaultPoint(30, 10), new DefaultPoint(10, 30), new DefaultPoint(40, 40)); |
1032 | 1034 | assertThat(CodecUtils.parseLineString(null)).isNull(); |
1033 | 1035 | assertThat(CodecUtils.parseLineString("")).isNull(); |
1034 | 1036 | assertThat(CodecUtils.parseLineString("LINESTRING (30 10, 10 30, 40 40)")) |
1035 | | - .isEqualTo(lineString); |
| 1037 | + .isNotNull() |
| 1038 | + .extracting(ls -> ls.asWellKnownText()) |
| 1039 | + .isEqualTo("LINESTRING (30 10, 10 30, 40 40)"); |
1036 | 1040 | assertThat(CodecUtils.parseLineString("'LINESTRING (30 10, 10 30, 40 40)'")) |
1037 | | - .isEqualTo(lineString); |
| 1041 | + .isNotNull() |
| 1042 | + .extracting(ls -> ls.asWellKnownText()) |
| 1043 | + .isEqualTo("LINESTRING (30 10, 10 30, 40 40)"); |
1038 | 1044 | assertThat( |
1039 | 1045 | CodecUtils.parseLineString( |
1040 | 1046 | "{\"type\":\"LineString\",\"coordinates\":[[30.0,10.0],[10.0,30.0],[40.0,40.0]]}")) |
1041 | | - .isEqualTo(lineString); |
| 1047 | + .isNotNull() |
| 1048 | + .extracting(ls -> ls.asWellKnownText()) |
| 1049 | + .isEqualTo("LINESTRING (30 10, 10 30, 40 40)"); |
1042 | 1050 | assertThat( |
1043 | 1051 | CodecUtils.parseLineString( |
1044 | 1052 | "AQIAAAADAAAAAAAAAAAAPkAAAAAAAAAkQAAAAAAAACRAAAAAAAAAPkAAAAAAAABEQAAAAAAAAERA")) |
1045 | | - .isEqualTo(lineString); |
| 1053 | + .isNotNull() |
| 1054 | + .extracting(ls -> ls.asWellKnownText()) |
| 1055 | + .isEqualTo("LINESTRING (30 10, 10 30, 40 40)"); |
1046 | 1056 | assertThat( |
1047 | 1057 | CodecUtils.parseLineString( |
1048 | 1058 | "0x0102000000030000000000000000003e40000000000000244000000000000024400000000000003e4000000000000044400000000000004440")) |
1049 | | - .isEqualTo(lineString); |
| 1059 | + .isNotNull() |
| 1060 | + .extracting(ls -> ls.asWellKnownText()) |
| 1061 | + .isEqualTo("LINESTRING (30 10, 10 30, 40 40)"); |
1050 | 1062 | assertThatThrownBy(() -> CodecUtils.parseLineString("not a valid line string")) |
1051 | 1063 | .isInstanceOf(IllegalArgumentException.class) |
1052 | 1064 | .hasMessageContaining("Invalid line string literal"); |
1053 | 1065 | } |
1054 | 1066 |
|
1055 | 1067 | @Test |
1056 | 1068 | void should_parse_polygon() { |
1057 | | - Polygon polygon = |
1058 | | - new DefaultPolygon( |
1059 | | - new DefaultPoint(30, 10), |
1060 | | - new DefaultPoint(10, 20), |
1061 | | - new DefaultPoint(20, 40), |
1062 | | - new DefaultPoint(40, 40)); |
| 1069 | + String poligonString = "POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))"; |
1063 | 1070 | assertThat(CodecUtils.parsePolygon(null)).isNull(); |
1064 | 1071 | assertThat(CodecUtils.parsePolygon("")).isNull(); |
1065 | | - assertThat(CodecUtils.parsePolygon("POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))")) |
1066 | | - .isEqualTo(polygon); |
| 1072 | + assertThat(CodecUtils.parsePolygon(poligonString)) |
| 1073 | + .isNotNull() |
| 1074 | + .extracting(p -> p.asWellKnownText()) |
| 1075 | + .isEqualTo(poligonString); |
1067 | 1076 | assertThat(CodecUtils.parsePolygon("'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))'")) |
1068 | | - .isEqualTo(polygon); |
| 1077 | + .isNotNull() |
| 1078 | + .extracting(p -> p.asWellKnownText()) |
| 1079 | + .isEqualTo(poligonString); |
1069 | 1080 | assertThat( |
1070 | 1081 | CodecUtils.parsePolygon( |
1071 | 1082 | "{\"type\":\"Polygon\",\"coordinates\":[[[30.0,10.0],[10.0,20.0],[20.0,40.0],[40.0,40.0],[30.0,10.0]]]}")) |
1072 | | - .isEqualTo(polygon); |
| 1083 | + .isNotNull() |
| 1084 | + .extracting(p -> p.asWellKnownText()) |
| 1085 | + .isEqualTo(poligonString); |
1073 | 1086 | assertThat( |
1074 | 1087 | CodecUtils.parsePolygon( |
1075 | 1088 | "AQMAAAABAAAABQAAAAAAAAAAAD5AAAAAAAAAJEAAAAAAAABEQAAAAAAAAERAAAAAAAAANEAAAAAAAABEQAAAAAAAACRAAAAAAAAANEAAAAAAAAA+QAAAAAAAACRA")) |
1076 | | - .isEqualTo(polygon); |
| 1089 | + .isNotNull() |
| 1090 | + .extracting(p -> p.asWellKnownText()) |
| 1091 | + .isEqualTo(poligonString); |
1077 | 1092 | assertThat( |
1078 | 1093 | CodecUtils.parsePolygon( |
1079 | 1094 | "0x010300000001000000050000000000000000003e4000000000000024400000000000004440000000000000444" |
1080 | 1095 | + "000000000000034400000000000004440000000000000244000000000000034400000000000003e400000000000002440")) |
1081 | | - .isEqualTo(polygon); |
| 1096 | + .isNotNull() |
| 1097 | + .extracting(p -> p.asWellKnownText()) |
| 1098 | + .isEqualTo(poligonString); |
1082 | 1099 | assertThatThrownBy(() -> CodecUtils.parsePolygon("not a valid polygon")) |
1083 | 1100 | .isInstanceOf(IllegalArgumentException.class) |
1084 | 1101 | .hasMessageContaining("Invalid polygon literal"); |
|
0 commit comments