/* * Copyright 2014-2016 CyberVision, Inc. * * Licensed 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.kaaproject.kaa.avro.avrogen; import org.apache.avro.Schema; import org.apache.avro.Schema.Type; import org.junit.Assert; import org.junit.Test; import java.util.Arrays; public class TypeConverterTest { @Test public void testTypes() { Assert.assertTrue(TypeConverter.isAvroBytes(Schema.create(Type.BYTES))); Assert.assertFalse(TypeConverter.isAvroBytes(Schema.create(Type.STRING))); Assert.assertTrue(TypeConverter.isAvroArray(Schema.createArray(Schema.create(Type.BYTES)))); Assert.assertFalse(TypeConverter.isAvroArray(Schema.create(Type.BYTES))); Assert.assertTrue(TypeConverter.isAvroString(Schema.create(Type.STRING))); Assert.assertFalse(TypeConverter.isAvroString(Schema.create(Type.BOOLEAN))); Assert.assertTrue(TypeConverter.isAvroEnum(Schema.createEnum("name", "doc", "namespace", Arrays.asList("node")))); Assert.assertFalse(TypeConverter.isAvroEnum(Schema.create(Type.BOOLEAN))); Assert.assertTrue(TypeConverter.isAvroNull(Schema.create(Type.NULL))); Assert.assertFalse(TypeConverter.isAvroNull(Schema.create(Type.BOOLEAN))); Assert.assertTrue(TypeConverter.isAvroPrimitive(Schema.create(Type.BOOLEAN))); Assert.assertTrue(TypeConverter.isAvroPrimitive(Schema.create(Type.INT))); Assert.assertTrue(TypeConverter.isAvroPrimitive(Schema.create(Type.LONG))); Assert.assertTrue(TypeConverter.isAvroPrimitive(Schema.createEnum("name", "doc", "namespace", Arrays.asList("node")))); Assert.assertFalse(TypeConverter.isAvroPrimitive(Schema.create(Type.STRING))); Assert.assertFalse(TypeConverter.isAvroPrimitive(Schema.create(Type.BYTES))); Assert.assertTrue(TypeConverter.isAvroUnion(Schema.createUnion( Arrays.asList(Schema.create(Type.BYTES), Schema.create(Type.STRING))))); Assert.assertFalse(TypeConverter.isAvroUnion(Schema.create(Type.STRING))); Assert.assertTrue(TypeConverter.isAvroRecord(Schema.createRecord("name", "doc", "namespace", false))); Assert.assertFalse(TypeConverter.isAvroRecord(Schema.create(Type.STRING))); Assert.assertTrue(TypeConverter.isAvroUnion(Schema.createUnion( Arrays.asList(Schema.create(Type.BYTES), Schema.create(Type.STRING))))); Assert.assertFalse(TypeConverter.isAvroUnion(Schema.create(Type.STRING))); Assert.assertTrue(TypeConverter.isAvroString(Schema.create(Type.STRING))); Assert.assertFalse(TypeConverter.isAvroString(Schema.create(Type.INT))); } @Test public void testDirection() { final String DIRECTION_FIELD = "direction"; Schema inOutSchema = Schema.createEnum("test1", "doc", "namespace", Arrays.asList("node")); Assert.assertTrue(TypeConverter.isTypeOut(inOutSchema)); Assert.assertTrue(TypeConverter.isTypeIn(inOutSchema)); Schema outSchema = Schema.createRecord("test2", "doc", "namespace", false); outSchema.addProp(DIRECTION_FIELD, "out"); Assert.assertTrue(TypeConverter.isTypeOut(outSchema)); Assert.assertFalse(TypeConverter.isTypeIn(outSchema)); Schema inSchema = Schema.createRecord("test13", "doc", "namespace", false); inSchema.addProp(DIRECTION_FIELD, "in"); Assert.assertTrue(TypeConverter.isTypeIn(inSchema)); Assert.assertFalse(TypeConverter.isTypeOut(inSchema)); Schema invalidDirectionSchema = Schema.createRecord("test4", "doc", "namespace", false); invalidDirectionSchema.addProp(DIRECTION_FIELD, "inOut"); Assert.assertFalse(TypeConverter.isTypeIn(invalidDirectionSchema)); Assert.assertFalse(TypeConverter.isTypeOut(invalidDirectionSchema)); } @Test public void testIsRecordNeedDeallocator() { Assert.assertFalse(TypeConverter.isRecordNeedDeallocator(Schema.create(Type.INT))); } }