diff --git a/CHANGELOG.md b/CHANGELOG.md index 60cc138a..86343465 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +# 6.5.1 +* Handle arrays of DictionaryType in javaFuncs.getJavaType() + # 6.5.0 * Introduce 'format' attribute to StringType diff --git a/tests/generators/test_javaFuncs.py b/tests/generators/test_javaFuncs.py index fb38dc4d..9f4f0075 100644 --- a/tests/generators/test_javaFuncs.py +++ b/tests/generators/test_javaFuncs.py @@ -5,8 +5,8 @@ import yacg.model.model as model from yacg.model.model import IntegerType, IntegerTypeFormatEnum, NumberType, NumberTypeFormatEnum -# from yacg.model.model import StringType, UuidType -# from yacg.model.model import EnumType, DateTimeType, TimeType +from yacg.model.model import StringType, EnumType, DictionaryType +from yacg.model.model import DateType, TimeType, DateTimeType, UuidType from yacg.model.model import ComplexType, BytesType, ObjectType import yacg.generators.helper.javaFuncs as javaFuncs import yacg.model.modelFuncs as modelFuncs @@ -21,7 +21,7 @@ def getExampleType(): return modelTypes[0] -# For executing these tests run: python -m unittest -v tests/generators/test_javaFuncs.py +# For executing these tests run: python3 -m unittest -v tests/generators/test_javaFuncs.py class TestJavaFuncs (unittest.TestCase): def testIsDouble(self): @@ -131,6 +131,14 @@ def testgetJavaTypes(self): self.assertEqual('Double', javaFuncs.getJavaType(numberType, False)) self.assertEqual('java.util.List', javaFuncs.getJavaType(numberType, True)) + stringType = StringType() + self.assertEqual('String', javaFuncs.getJavaType(stringType, False)) + self.assertEqual('java.util.List', javaFuncs.getJavaType(stringType, True)) + + uuidType = UuidType() + self.assertEqual('java.util.UUID', javaFuncs.getJavaType(uuidType, False)) + self.assertEqual('java.util.List', javaFuncs.getJavaType(uuidType, True)) + objectType = ObjectType() self.assertEqual('Object', javaFuncs.getJavaType(objectType, False)) self.assertEqual('java.util.List', javaFuncs.getJavaType(objectType, True)) @@ -139,6 +147,27 @@ def testgetJavaTypes(self): self.assertEqual('byte[]', javaFuncs.getJavaType(bytesType, False)) self.assertEqual('java.util.List', javaFuncs.getJavaType(bytesType, True)) + dateType = DateType() + self.assertEqual('java.time.LocalDate', javaFuncs.getJavaType(dateType, False)) + self.assertEqual('java.util.List', javaFuncs.getJavaType(dateType, True)) + + timeType = TimeType() + self.assertEqual('java.time.LocalTime', javaFuncs.getJavaType(timeType, False)) + self.assertEqual('java.util.List', javaFuncs.getJavaType(timeType, True)) + + dateTimeType = DateTimeType() + self.assertEqual('java.time.LocalDateTime', javaFuncs.getJavaType(dateTimeType, False)) + self.assertEqual('java.util.List', javaFuncs.getJavaType(dateTimeType, True)) + + enumType = EnumType() + enumType.name = 'Foo' + self.assertEqual('Foo', javaFuncs.getJavaType(enumType, False)) + self.assertEqual('java.util.List', javaFuncs.getJavaType(enumType, True)) + + dictType = DictionaryType() + dictType.valueType = UuidType() + self.assertEqual('java.util.Map', javaFuncs.getJavaType(dictType, False)) + self.assertEqual('java.util.List>', javaFuncs.getJavaType(dictType, True)) def testJavaFuncs(self): myType = getExampleType() diff --git a/tests/model/test_modelFunc.py b/tests/model/test_modelFunc.py index b7d19ada..65bed3b5 100644 --- a/tests/model/test_modelFunc.py +++ b/tests/model/test_modelFunc.py @@ -46,7 +46,7 @@ def getComplexTypeWithBase(): return myType -# For executing these test run: python -m unittest -v tests/model/test_modelFunc.py +# For executing these test run: python3 -m unittest -v tests/model/test_modelFunc.py class TestModelFuncs (unittest.TestCase): def testHasPropertyOfTypeNoBaseType(self): diff --git a/version.txt b/version.txt index f22d756d..a194c18e 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -6.5.0 +6.5.1 diff --git a/yacg/generators/helper/javaFuncs.py b/yacg/generators/helper/javaFuncs.py index 6f1b169a..62aff8a1 100644 --- a/yacg/generators/helper/javaFuncs.py +++ b/yacg/generators/helper/javaFuncs.py @@ -45,7 +45,7 @@ def getJavaType(typeObj, isArray): elif isinstance(typeObj, model.DateTimeType): return 'java.time.LocalDateTime' if not isArray else 'java.util.List' elif isinstance(typeObj, model.DictionaryType): - return 'java.util.Map'.format(getJavaType(typeObj.valueType, False)) + return 'java.util.Map'.format(getJavaType(typeObj.valueType, False)) if not isArray else 'java.util.List>'.format(getJavaType(typeObj.valueType, False)) elif isinstance(typeObj, model.ComplexType): return typeObj.name if not isArray else 'java.util.List<{}>'.format(typeObj.name) else: