IGNITE-3345 WIP Added tests.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/300a93a2 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/300a93a2 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/300a93a2 Branch: refs/heads/ignite-3345 Commit: 300a93a2486f861b4d8cc0ffe33337df3a617214 Parents: 1d22e79 Author: Alexey Kuznetsov <[email protected]> Authored: Sun Feb 18 17:13:15 2018 +0700 Committer: Alexey Kuznetsov <[email protected]> Committed: Sun Feb 18 17:13:15 2018 +0700 ---------------------------------------------------------------------- .../JettyRestProcessorAbstractSelfTest.java | 46 ++++++++++++++++++-- .../http/jetty/GridJettyRestHandler.java | 16 +++++++ 2 files changed, 58 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/300a93a2/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java index fda7ebc..9092d7b 100644 --- a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java +++ b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java @@ -2029,85 +2029,123 @@ public abstract class JettyRestProcessorAbstractSelfTest extends AbstractRestPro public void testTypedPutGet() throws Exception { // Test boolean type. putTypedValue("boolean", "true", "false"); + putTypedValue("java.lang.boolean", "false", "true"); IgniteCache<Boolean, Boolean> cBool = jcache(); assertEquals(cBool.get(true), Boolean.FALSE); + assertEquals(cBool.get(false), Boolean.TRUE); // Test byte type. putTypedValue("byte", "64", "100"); + putTypedValue("java.lang.byte", "-25", "-127"); IgniteCache<Byte, Byte> cByte = jcache(); assertEquals(cByte.get(Byte.valueOf("64")), Byte.valueOf("100")); + assertEquals(cByte.get(Byte.valueOf("-25")), Byte.valueOf("-127")); // Test short type. putTypedValue("short", "1024", "4096"); + putTypedValue("java.lang.short", "-15000", "-16000"); IgniteCache<Short, Short> cShort = jcache(); assertEquals(cShort.get(Short.valueOf("1024")), Short.valueOf("4096")); + assertEquals(cShort.get(Short.valueOf("-15000")), Short.valueOf("-16000")); // Test integer type. putTypedValue("int", "65555", "128256"); putTypedValue("integer", "74555", "200000"); + putTypedValue("java.lang.integer", "-200", "-100000"); IgniteCache<Integer, Integer> cInt = jcache(); assertEquals(cInt.get(65555), Integer.valueOf(128256)); assertEquals(cInt.get(74555), Integer.valueOf(200000)); + assertEquals(cInt.get(-200), Integer.valueOf(-100000)); // Test long type. putTypedValue("long", "3000000", "400000"); + putTypedValue("java.lang.long", "-3000000", "-400000"); IgniteCache<Long, Long> cLong = jcache(); assertEquals(cLong.get(3000000L), Long.valueOf(400000)); + assertEquals(cLong.get(-3000000L), Long.valueOf(-400000)); // Test float type. putTypedValue("float", "1.5", "2.5"); + putTypedValue("java.lang.float", "-7.5", "-8.5"); IgniteCache<Float, Float> cFloat = jcache(); assertEquals(cFloat.get(1.5f), 2.5f); + assertEquals(cFloat.get(-7.5f), -8.5f); // Test double type. putTypedValue("double", "5.5", "75.5"); + putTypedValue("java.lang.double", "-155.5", "-255.5"); IgniteCache<Double, Double> cDouble = jcache(); assertEquals(cDouble.get(5.5d), 75.5d); + assertEquals(cDouble.get(-155.5d), -255.5d); // Test date type. putTypedValue("date", "2018-02-18", "2017-01-01"); + putTypedValue("java.sql.date", "2018-01-01", "2017-02-02"); IgniteCache<Date, Date> cDate = jcache(); assertEquals(cDate.get(Date.valueOf("2018-02-18")), Date.valueOf("2017-01-01")); + assertEquals(cDate.get(Date.valueOf("2018-01-01")), Date.valueOf("2017-02-02")); // Test time type. putTypedValue("time", "01:01:01", "02:02:02"); + putTypedValue("java.sql.time", "03:03:03", "04:04:04"); IgniteCache<Time, Time> cTime = jcache(); assertEquals(cTime.get(Time.valueOf("01:01:01")), Time.valueOf("02:02:02")); + assertEquals(cTime.get(Time.valueOf("03:03:03")), Time.valueOf("04:04:04")); // Test timestamp type. putTypedValue("timestamp", "2018-02-18%2001:01:01", "2017-01-01%2002:02:02"); + putTypedValue("java.sql.timestamp", "2018-01-01%2001:01:01", "2018-05-05%2005:05:05"); IgniteCache<Timestamp, Timestamp> cTimestamp = jcache(); assertEquals(cTimestamp.get(Timestamp.valueOf("2018-02-18 01:01:01")), Timestamp.valueOf("2017-01-01 02:02:02")); + assertEquals(cTimestamp.get(Timestamp.valueOf("2018-01-01 01:01:01")), Timestamp.valueOf("2018-05-05 05:05:05")); // Test UUID type. - UUID k = UUID.fromString("121f5ae8-148d-11e8-b642-0ed5f89f718b"); - UUID v = UUID.fromString("64c6c225-b31c-4000-b136-ef14562ac785"); + UUID k1 = UUID.fromString("121f5ae8-148d-11e8-b642-0ed5f89f718b"); + UUID v1 = UUID.fromString("64c6c225-b31c-4000-b136-ef14562ac785"); + UUID k2 = UUID.randomUUID(); + UUID v2 = UUID.randomUUID(); - putTypedValue("UUID", k.toString(), v.toString()); + putTypedValue("UUID", k1.toString(), v1.toString()); + putTypedValue("java.util.UUID", k2.toString(), v2.toString()); IgniteCache<UUID, UUID> cUUID = jcache(); - assertEquals(cUUID.get(k), v); + assertEquals(cUUID.get(k1), v1); + assertEquals(cUUID.get(k2), v2); + + // Test IgniteUuid type. + IgniteUuid ik1 = IgniteUuid.randomUuid(); + IgniteUuid iv1 = IgniteUuid.randomUuid(); + IgniteUuid ik2 = IgniteUuid.randomUuid(); + IgniteUuid iv2 = IgniteUuid.randomUuid(); + + putTypedValue("IgniteUuid", ik1.toString(), iv1.toString()); + putTypedValue("org.apache.ignite.lang.IgniteUuid", ik2.toString(), iv2.toString()); + + IgniteCache<IgniteUuid, IgniteUuid> cIgniteUUID = jcache(); + + assertEquals(cIgniteUUID.get(ik1), iv1); + assertEquals(cIgniteUUID.get(ik2), iv2); } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/300a93a2/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java ---------------------------------------------------------------------- diff --git a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java index 4c04ccb..f09a818 100644 --- a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java +++ b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java @@ -57,6 +57,7 @@ import org.apache.ignite.internal.processors.rest.request.RestQueryRequest; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.lang.IgniteClosure; +import org.apache.ignite.lang.IgniteUuid; import org.apache.ignite.plugin.security.SecurityCredentials; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.handler.AbstractHandler; @@ -397,39 +398,54 @@ public class GridJettyRestHandler extends AbstractHandler { switch (type.toLowerCase()) { case "boolean": + case "java.lang.boolean": return Boolean.valueOf(s); case "byte": + case "java.lang.byte": return Byte.valueOf(s); case "short": + case "java.lang.short": return Short.valueOf(s); case "int": case "integer": + case "java.lang.integer": return Integer.valueOf(s); case "long": + case "java.lang.long": return Long.valueOf(s); case "float": + case "java.lang.float": return Float.valueOf(s); case "double": + case "java.lang.double": return Double.valueOf(s); case "date": + case "java.sql.date": return Date.valueOf(s); case "time": + case "java.sql.time": return Time.valueOf(s); case "timestamp": + case "java.sql.timestamp": return Timestamp.valueOf(s); case "uuid": + case "java.util.uuid": return UUID.fromString(s); + case "igniteuuid": + case "org.apache.ignite.lang.igniteuuid": + return IgniteUuid.fromString(s); + default: // No-op. }
