12
12
import io .tarantool .driver .mappers .factories .ResultMapperFactoryFactory ;
13
13
import org .junit .jupiter .api .Test ;
14
14
import org .msgpack .value .ArrayValue ;
15
+ import org .msgpack .value .ImmutableMapValue ;
16
+ import org .msgpack .value .MapValue ;
17
+ import org .msgpack .value .StringValue ;
15
18
import org .msgpack .value .Value ;
16
19
import org .msgpack .value .ValueFactory ;
17
20
18
21
import java .util .Arrays ;
22
+ import java .util .HashMap ;
19
23
import java .util .List ;
20
24
21
25
import static org .junit .jupiter .api .Assertions .assertEquals ;
22
26
23
27
class TarantoolResultMapperTest {
24
28
@ Test
25
- void testWithTarantoolTuple () {
29
+ void testWithArrayTarantoolTuple () {
26
30
MessagePackMapper defaultMapper = DefaultMessagePackMapperFactory .getInstance ().defaultComplexTypesMapper ();
27
31
ResultMapperFactoryFactoryImpl
28
32
mapperFactoryFactory = new ResultMapperFactoryFactoryImpl ();
@@ -44,6 +48,34 @@ void testWithTarantoolTuple() {
44
48
assertEquals (nestedList2 , result .get (1 ).getList (2 ));
45
49
}
46
50
51
+ @ Test
52
+ void testWithRowsMetadataTarantoolTuple () {
53
+ MessagePackMapper defaultMapper = DefaultMessagePackMapperFactory .getInstance ().defaultComplexTypesMapper ();
54
+ ResultMapperFactoryFactoryImpl
55
+ mapperFactoryFactory = new ResultMapperFactoryFactoryImpl ();
56
+ TarantoolResultMapper <TarantoolTuple > mapper = mapperFactoryFactory
57
+ .rowsMetadataTupleResultMapperFactory ().withRowsMetadataToTarantoolTupleResultConverter (defaultMapper );
58
+ List <Object > nestedList1 = Arrays .asList ("nested" , "array" , 1 );
59
+ TarantoolTuple tupleOne = new TarantoolTupleImpl (Arrays .asList ("abc" , 1234 , nestedList1 ), defaultMapper );
60
+ List <Object > nestedList2 = Arrays .asList ("nested" , "array" , 2 );
61
+ TarantoolTuple tupleTwo = new TarantoolTupleImpl (Arrays .asList ("def" , 5678 , nestedList2 ), defaultMapper );
62
+ ArrayValue testTuples = ValueFactory .newArray (
63
+ tupleOne .toMessagePackValue (defaultMapper ), tupleTwo .toMessagePackValue (defaultMapper ));
64
+ HashMap <StringValue , Value > rowsMetadata = new HashMap <StringValue , Value >() {{
65
+ put (ValueFactory .newString ("metadata" ), ValueFactory .newArray ());
66
+ put (ValueFactory .newString ("rows" ), testTuples );
67
+ }};
68
+ MapValue mpRowsMetadata = ValueFactory .newMap (rowsMetadata );
69
+ TarantoolResult <TarantoolTuple > result = mapper .fromValue (mpRowsMetadata , TarantoolTupleResult .class );
70
+ assertEquals (2 , result .size ());
71
+ assertEquals ("abc" , result .get (0 ).getString (0 ));
72
+ assertEquals (1234 , result .get (0 ).getInteger (1 ));
73
+ assertEquals (nestedList1 , result .get (0 ).getList (2 ));
74
+ assertEquals ("def" , result .get (1 ).getString (0 ));
75
+ assertEquals (5678 , result .get (1 ).getInteger (1 ));
76
+ assertEquals (nestedList2 , result .get (1 ).getList (2 ));
77
+ }
78
+
47
79
@ Test
48
80
void testWithCustomTuple () {
49
81
MessagePackMapper defaultMapper = DefaultMessagePackMapperFactory .getInstance ().defaultComplexTypesMapper ();
0 commit comments