From b92637759a52f8011a94412702c8201af0d3fb1d Mon Sep 17 00:00:00 2001 From: Ali Ince Date: Tue, 20 Jun 2017 15:51:42 +0100 Subject: [PATCH 1/3] Added overloads of pack and value methods with a char parameter to stop calls of this to be invoked on int overloads. Added corresponding tests. --- .../internal/packstream/PackStream.java | 5 +++++ .../main/java/org/neo4j/driver/v1/Values.java | 2 ++ .../org/neo4j/driver/internal/ValuesTest.java | 3 +++ .../internal/packstream/PackStreamTest.java | 20 +++++++++++++++++++ 4 files changed, 30 insertions(+) diff --git a/driver/src/main/java/org/neo4j/driver/internal/packstream/PackStream.java b/driver/src/main/java/org/neo4j/driver/internal/packstream/PackStream.java index 2852f94ec6..e3f69fb591 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/packstream/PackStream.java +++ b/driver/src/main/java/org/neo4j/driver/internal/packstream/PackStream.java @@ -177,6 +177,11 @@ public void pack( boolean value ) throws IOException out.writeByte( value ? TRUE : FALSE ); } + public void pack( char value ) throws IOException + { + pack( String.valueOf(value) ); + } + public void pack( long value ) throws IOException { if ( value >= MINUS_2_TO_THE_4 && value < PLUS_2_TO_THE_7) diff --git a/driver/src/main/java/org/neo4j/driver/v1/Values.java b/driver/src/main/java/org/neo4j/driver/v1/Values.java index 4a36871c47..7c6a67b8f7 100644 --- a/driver/src/main/java/org/neo4j/driver/v1/Values.java +++ b/driver/src/main/java/org/neo4j/driver/v1/Values.java @@ -207,6 +207,8 @@ public static Value value( Iterator val ) return new ListValue( values.toArray( new Value[values.size()] ) ); } + public static Value value (final char val ) { return new StringValue( String.valueOf(val) ); } + public static Value value( final String val ) { return new StringValue( val ); diff --git a/driver/src/test/java/org/neo4j/driver/internal/ValuesTest.java b/driver/src/test/java/org/neo4j/driver/internal/ValuesTest.java index 4415d991f0..18e9da130f 100644 --- a/driver/src/test/java/org/neo4j/driver/internal/ValuesTest.java +++ b/driver/src/test/java/org/neo4j/driver/internal/ValuesTest.java @@ -118,6 +118,9 @@ public void equalityRules() throws Throwable assertNotEquals( value( "Hello" ), value( "hello" ) ); assertNotEquals( value( "This åäö string ?? contains strange " ), value( "This åäö string ?? contains strange Ü" ) ); + + assertEquals( value ( 'A' ), value( 'A' )); + assertEquals( value ( 'A' ), value( "A" )); } @Test diff --git a/driver/src/test/java/org/neo4j/driver/internal/packstream/PackStreamTest.java b/driver/src/test/java/org/neo4j/driver/internal/packstream/PackStreamTest.java index d232dabc65..e5d55cd211 100644 --- a/driver/src/test/java/org/neo4j/driver/internal/packstream/PackStreamTest.java +++ b/driver/src/test/java/org/neo4j/driver/internal/packstream/PackStreamTest.java @@ -395,6 +395,26 @@ public void testCanPackAndUnpackBytes() throws Throwable } + @Test + public void testCanPackAndUnpackChar() throws Throwable + { + // Given + Machine machine = new Machine(); + + // When + PackStream.Packer packer = machine.packer(); + packer.pack( 'A' ); + packer.flush(); + + // Then + PackStream.Unpacker unpacker = newUnpacker( machine.output() ); + PackType packType = unpacker.peekNextType(); + + // Then + assertThat( packType, equalTo( PackType.STRING ) ); + assertThat( unpacker.unpackString(), equalTo( "A" )); + } + @Test public void testCanPackAndUnpackString() throws Throwable { From 1dd1b01cd9304da0ff85940aaa5b6eafafb95898 Mon Sep 17 00:00:00 2001 From: Ali Ince Date: Tue, 20 Jun 2017 18:15:36 +0100 Subject: [PATCH 2/3] Added Values#value(char... input) overload as advised by @lutovich --- .../src/main/java/org/neo4j/driver/v1/Values.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/driver/src/main/java/org/neo4j/driver/v1/Values.java b/driver/src/main/java/org/neo4j/driver/v1/Values.java index 7c6a67b8f7..0719719204 100644 --- a/driver/src/main/java/org/neo4j/driver/v1/Values.java +++ b/driver/src/main/java/org/neo4j/driver/v1/Values.java @@ -141,6 +141,17 @@ public static Value value( boolean... input ) } return new ListValue( values ); } + + public static Value value( char... input ) + { + Value[] values = new Value[input.length]; + for ( int i = 0; i < input.length; i++ ) + { + values[i] = value( input[i] ); + } + return new ListValue( values ); + } + public static Value value( long... input ) { Value[] values = new Value[input.length]; @@ -207,7 +218,7 @@ public static Value value( Iterator val ) return new ListValue( values.toArray( new Value[values.size()] ) ); } - public static Value value (final char val ) { return new StringValue( String.valueOf(val) ); } + public static Value value (final char val ) { return new StringValue( String.valueOf( val ) ); } public static Value value( final String val ) { From 1a8907bbfc04fa947fab90b44e3335477ca46729 Mon Sep 17 00:00:00 2001 From: Ali Ince Date: Wed, 21 Jun 2017 09:24:00 +0100 Subject: [PATCH 3/3] added test cases for Values#value(char... input) --- driver/src/test/java/org/neo4j/driver/internal/ValuesTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/driver/src/test/java/org/neo4j/driver/internal/ValuesTest.java b/driver/src/test/java/org/neo4j/driver/internal/ValuesTest.java index 18e9da130f..4037ec5d3b 100644 --- a/driver/src/test/java/org/neo4j/driver/internal/ValuesTest.java +++ b/driver/src/test/java/org/neo4j/driver/internal/ValuesTest.java @@ -80,6 +80,9 @@ public void shouldConvertPrimitiveArrays() throws Throwable assertThat( value( new boolean[]{true, false, true} ), equalTo( (Value) new ListValue( values( true, false, true ) ) ) ); + assertThat( value( new char[]{'a', 'b', 'c'} ), + equalTo( (Value) new ListValue( values( 'a', 'b', 'c' ) ) ) ); + assertThat( value( new String[]{"a", "b", "c"} ), equalTo( (Value) new ListValue( values( "a", "b", "c" ) ) ) ); }