diff --git a/CHANGELOG.md b/CHANGELOG.md index d32997728..aff1afdd3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - Split retrying into more detailed modules ([#341](https://github.com/tarantool/cartridge-java/issues/341)) - Add deep copy instead of shallow copy in default message pack mapper - Add a factory builder for constructing mapper hierarchies +- Add "can convert value" check to TupleResultConverter ## [0.10.1] - 2023-01-13 diff --git a/src/main/java/io/tarantool/driver/mappers/converters/value/ArrayValueToTarantoolTupleResultConverter.java b/src/main/java/io/tarantool/driver/mappers/converters/value/ArrayValueToTarantoolTupleResultConverter.java index 63dc810df..0243cfb5e 100644 --- a/src/main/java/io/tarantool/driver/mappers/converters/value/ArrayValueToTarantoolTupleResultConverter.java +++ b/src/main/java/io/tarantool/driver/mappers/converters/value/ArrayValueToTarantoolTupleResultConverter.java @@ -30,4 +30,9 @@ public ArrayValueToTarantoolTupleResultConverter( public TarantoolResult fromValue(ArrayValue value) { return tarantoolResultFactory.createTarantoolTupleResultImpl(value, tupleConverter); } + + @Override + public boolean canConvertValue(ArrayValue value) { + return value.size() == 0 || value.get(0).isArrayValue(); + } } diff --git a/src/test/java/io/tarantool/driver/mappers/TarantoolCallResultMapperTest.java b/src/test/java/io/tarantool/driver/mappers/TarantoolCallResultMapperTest.java index cb25c1e50..cef5acb6d 100644 --- a/src/test/java/io/tarantool/driver/mappers/TarantoolCallResultMapperTest.java +++ b/src/test/java/io/tarantool/driver/mappers/TarantoolCallResultMapperTest.java @@ -108,7 +108,7 @@ void testDefaultTarantoolTupleResponse_singleResultShouldThrowException() { ArrayValue testTuples = ValueFactory.newArray(tupleOne.toMessagePackValue(defaultMapper)); // Another corner case, tuple result mapper should not be used for this result format - assertThrows(TarantoolTupleConversionException.class, () -> defaultResultMapper.fromValue(testTuples)); + assertThrows(MessagePackValueMapperException.class, () -> defaultResultMapper.fromValue(testTuples)); } @Test