You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by bl...@apache.org on 2017/07/07 16:15:07 UTC
[08/14] cassandra git commit: Merge branch cassandra-3.0 into
cassandra-3.11
http://git-wip-us.apache.org/repos/asf/cassandra/blob/48ffad89/test/unit/org/apache/cassandra/db/marshal/JsonConversionTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/db/marshal/JsonConversionTest.java
index 0000000,f7795c7..0cebd9e
mode 000000,100644..100644
--- a/test/unit/org/apache/cassandra/db/marshal/JsonConversionTest.java
+++ b/test/unit/org/apache/cassandra/db/marshal/JsonConversionTest.java
@@@ -1,0 -1,320 +1,320 @@@
+ /*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ package org.apache.cassandra.db.marshal;
+
+ import static org.junit.Assert.assertEquals;
+
+ import java.nio.ByteBuffer;
+ import org.apache.cassandra.cql3.QueryOptions;
-import org.apache.cassandra.transport.Server;
++import org.apache.cassandra.transport.ProtocolVersion;
+ import org.apache.cassandra.utils.UUIDGen;
+ import org.codehaus.jackson.map.ObjectMapper;
+ import org.junit.Test;
+
+ public class JsonConversionTest
+ {
+ private static final ObjectMapper JSON_OBJECT_MAPPER = new ObjectMapper();
+
+ @Test
+ public void testMap() throws Exception
+ {
+ String type = "FrozenType(MapType(TupleType(ListType(Int32Type), ListType(Int32Type)), ListType(Int32Type)))";
+ String json = "{"
+ + "\"[[1, 2, 3], [1, 2, 3]]\": [1, 2, 3], "
+ + "\"[[1, 2, 3, 4], [1, 2, 3, 4]]\": [1, 2, 3, 4], "
+ + "\"[[1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]\": [1, 2, 3, 4, 5]"
+ + "}";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testUDT() throws Exception
+ {
+ // 6161-> aa
+ // 78 -> x
+ String type = "UserType(ks,6161,78:TupleType(ListType(Int32Type), ListType(Int32Type)))";
+ String json = "{"
+ + "\"x\": [[1, 2, 3], [1, 2, 3]]"
+ + "}";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testSimpleDate() throws Exception
+ {
+ String type = "SimpleDateType";
+ String json = "\"1991-06-20\"";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testDate() throws Exception
+ {
+ String type = "DateType";
+ String json = "\"1991-06-20 18:00:00.000Z\"";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testCounterColumn() throws Exception
+ {
+ Long value = 1L;
+ String json = "1";
+ assertBytebufferPositionAndOutput(json, value, CounterColumnType.instance);
+ }
+
+ @Test
+ public void testTimestamp() throws Exception
+ {
+ String type = "TimestampType";
+ String json = "\"1991-06-20 18:00:00.000Z\"";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testDynamicCompositeType() throws Exception
+ {
+ String type = "DynamicCompositeType(a=>Int32Type, b=>Int32Type)";
+ // not supported
+ String json = "{"
+ + "\"a\":1,"
+ + "\"b\":2"
+ + "}";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testCompositeType() throws Exception
+ {
+ String type = "CompositeType(Int32Type, Int32Type)";
+ // not supported
+ String json = "{"
+ + "\"a\":1,"
+ + "\"b\":2"
+ + "}";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testList() throws Exception
+ {
+ String type = "FrozenType(ListType(TupleType(ListType(Int32Type), ListType(Int32Type))))";
+ String json = "["
+ + "[[1, 2, 3], [1, 2, 3]], "
+ + "[[1, 2, 3, 4], [1, 2, 3, 4]], "
+ + "[[1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]"
+ + "]";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testSet() throws Exception
+ {
+ String type = "FrozenType(SetType(TupleType(Int32Type, Int32Type)))";
+ String json = "[[1, 2], [1, 3], [2, 3]]";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testTuple() throws Exception
+ {
+ String type = "FrozenType(TupleType(TupleType(ListType(Int32Type), ListType(Int32Type))))";
+ String json = "["
+ + "[[1, 2, 3], [1, 2, 3]]"
+ + "]";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testInt32() throws Exception
+ {
+ String type = "Int32Type";
+ String json = "10000000";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testReversed() throws Exception
+ {
+ String type = "ReversedType(Int32Type)";
+ String json = "10000000";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testInteger() throws Exception
+ {
+ String type = "IntegerType";
+ String json = "10000000";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testDecimal() throws Exception
+ {
+ String type = "DecimalType";
+ String json = "100000.01";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testEmpty() throws Exception
+ {
+ String type = "EmptyType";
+ String json = "\"\"";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testDouble() throws Exception
+ {
+ String type = "DoubleType";
+ String json = "100000.01";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testFloat() throws Exception
+ {
+ String type = "FloatType";
+ String json = "100000.01";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testShort() throws Exception
+ {
+ String type = "ShortType";
+ String json = "100";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testByte() throws Exception
+ {
+ String type = "ByteType";
+ String json = "0";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testTime() throws Exception
+ {
+ String type = "TimeType";
+ String json = "\"00:00:00.000001991\"";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testInetAddress() throws Exception
+ {
+ String type = "InetAddressType";
+ String json = "\"127.0.0.1\"";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testBoolean() throws Exception
+ {
+ String type = "BooleanType";
+ String json = "false";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testLong() throws Exception
+ {
+ String type = "LongType";
+ String json = "10000000000";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testAscii() throws Exception
+ {
+ String type = "AsciiType";
+ String json = "\"aaa\"";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testBytes() throws Exception
+ {
+ String type = "BytesType";
+ String json = "\"0x00000001\"";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testUUID() throws Exception
+ {
+ String type = "UUIDType";
+ String json = "\"6bddc89a-5644-11e4-97fc-56847afe9799\"";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testLexicalUUID() throws Exception
+ {
+ String type = "LexicalUUIDType";
+ String json = "\"6bddc89a-5644-11e4-97fc-56847afe9799\"";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testTimeUUID() throws Exception
+ {
+ String type = "TimeUUIDType";
+ String json = "\"" + UUIDGen.getTimeUUID() + "\"";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ @Test
+ public void testUtf8() throws Exception
+ {
+ String type = "UTF8Type";
+ String json = "\"abc\"";
+ assertBytebufferPositionAndOutput(json, type);
+ }
+
+ // for those only supports toJson, eg. Counter
+ private static <T> void assertBytebufferPositionAndOutput(String json, T value, AbstractType<T> type)
+ throws Exception
+ {
+ ByteBuffer bb = type.getSerializer().serialize(value);
+ int position = bb.position();
+
- String output = type.toJSONString(bb, Server.CURRENT_VERSION);
++ String output = type.toJSONString(bb, ProtocolVersion.CURRENT);
+ assertEquals(position, bb.position());
+ assertEquals(json, output);
+ }
+
+ // test fromJSONObject and toJSONString
+ private static void assertBytebufferPositionAndOutput(String json, String typeString) throws Exception
+ {
+ AbstractType<?> type = TypeParser.parse(typeString);
+ Object jsonObject = JSON_OBJECT_MAPPER.readValue(json, Object.class);
+ ByteBuffer bb = type.fromJSONObject(jsonObject).bindAndGet(QueryOptions.DEFAULT);
+ int position = bb.position();
+
- String output = type.toJSONString(bb, Server.CURRENT_VERSION);
++ String output = type.toJSONString(bb, ProtocolVersion.CURRENT);
+ assertEquals(position, bb.position());
+ assertEquals(json, output);
+ }
+ }
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org