Skip to content

Commit 0cf4216

Browse files
DirkMahlerinjectives
authored andcommitted
Added value conversion for char[] and short[] (#966)
1 parent 24e4dde commit 0cf4216

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

driver/src/main/java/org/neo4j/driver/Values.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,13 @@ public static Value value( Object value )
121121
if ( value instanceof Iterator<?> ) { return value( (Iterator<Object>) value ); }
122122
if ( value instanceof Stream<?> ) { return value( (Stream<Object>) value ); }
123123

124+
if ( value instanceof char[] ) { return value( (char[]) value ); }
124125
if ( value instanceof byte[] ) { return value( (byte[]) value ); }
125126
if ( value instanceof boolean[] ) { return value( (boolean[]) value ); }
126127
if ( value instanceof String[] ) { return value( (String[]) value ); }
127128
if ( value instanceof long[] ) { return value( (long[]) value ); }
128129
if ( value instanceof int[] ) { return value( (int[]) value ); }
130+
if ( value instanceof short[] ) { return value( (short[]) value ); }
129131
if ( value instanceof double[] ) { return value( (double[]) value ); }
130132
if ( value instanceof float[] ) { return value( (float[]) value ); }
131133
if ( value instanceof Value[] ) { return value( (Value[]) value ); }
@@ -197,6 +199,16 @@ public static Value value( long... input )
197199
return new ListValue( values );
198200
}
199201

202+
public static Value value( short... input )
203+
{
204+
Value[] values = new Value[input.length];
205+
for ( int i = 0; i < input.length; i++ )
206+
{
207+
values[i] = value( input[i] );
208+
}
209+
return new ListValue( values );
210+
}
211+
200212
public static Value value( int... input )
201213
{
202214
Value[] values = new Value[input.length];

driver/src/test/java/org/neo4j/driver/internal/ValuesTest.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ class ValuesTest
9090
@Test
9191
void shouldConvertPrimitiveArrays()
9292
{
93+
assertThat( value( new short[]{1, 2, 3} ),
94+
equalTo( new ListValue( values( 1, 2, 3 ) ) ) );
95+
9396
assertThat( value( new int[]{1, 2, 3} ),
9497
equalTo( new ListValue( values( 1, 2, 3 ) ) ) );
9598

@@ -112,6 +115,34 @@ void shouldConvertPrimitiveArrays()
112115
equalTo( new ListValue( values( "a", "b", "c" ) ) ) );
113116
}
114117

118+
@Test
119+
void shouldConvertPrimitiveArraysFromObject()
120+
{
121+
assertThat( value( (Object) new short[]{1, 2, 3} ),
122+
equalTo( new ListValue( values( 1, 2, 3 ) ) ) );
123+
124+
assertThat( value( (Object) new int[]{1, 2, 3} ),
125+
equalTo( new ListValue( values( 1, 2, 3 ) ) ) );
126+
127+
assertThat( value( (Object) new long[]{1, 2, 3} ),
128+
equalTo( new ListValue( values( 1, 2, 3 ) ) ) );
129+
130+
assertThat( value( (Object) new float[]{1.1f, 2.2f, 3.3f} ),
131+
equalTo( new ListValue( values( 1.1f, 2.2f, 3.3f ) ) ) );
132+
133+
assertThat( value( (Object) new double[]{1.1, 2.2, 3.3} ),
134+
equalTo( new ListValue( values( 1.1, 2.2, 3.3 ) ) ) );
135+
136+
assertThat( value( (Object) new boolean[]{true, false, true} ),
137+
equalTo( new ListValue( values( true, false, true ) ) ) );
138+
139+
assertThat( value( (Object) new char[]{'a', 'b', 'c'} ),
140+
equalTo( new ListValue( values( 'a', 'b', 'c' ) ) ) );
141+
142+
assertThat( value( (Object) new String[]{"a", "b", "c"} ),
143+
equalTo( new ListValue( values( "a", "b", "c" ) ) ) );
144+
}
145+
115146
@Test
116147
void shouldComplainAboutStrangeTypes()
117148
{

0 commit comments

Comments
 (0)