Search in sources :

Example 6 with PackedOutputArray

use of org.neo4j.bolt.v1.packstream.PackedOutputArray in project neo4j by neo4j.

the class Neo4jPackTest method shouldErrorOnUnpackingMapWithDuplicateKeys.

@Test
public void shouldErrorOnUnpackingMapWithDuplicateKeys() throws IOException {
    // Given
    PackedOutputArray output = new PackedOutputArray();
    Neo4jPack.Packer packer = new Neo4jPack.Packer(output);
    packer.packMapHeader(2);
    packer.pack("key");
    packer.pack(1);
    packer.pack("key");
    packer.pack(2);
    // When
    PackedInputArray input = new PackedInputArray(output.bytes());
    Neo4jPack.Unpacker unpacker = new Neo4jPack.Unpacker(input);
    unpacker.unpack();
    // Then
    assertThat(unpacker.consumeError().get(), equalTo(Neo4jError.from(Status.Request.Invalid, "Duplicate map key `key`.")));
}
Also used : PackedInputArray(org.neo4j.bolt.v1.packstream.PackedInputArray) PackedOutputArray(org.neo4j.bolt.v1.packstream.PackedOutputArray) Test(org.junit.Test)

Example 7 with PackedOutputArray

use of org.neo4j.bolt.v1.packstream.PackedOutputArray in project neo4j by neo4j.

the class Neo4jPackTest method shouldTreatSingleCharAsSingleCharacterString.

@Test
public void shouldTreatSingleCharAsSingleCharacterString() throws IOException {
    // Given
    PackedOutputArray output = new PackedOutputArray();
    Neo4jPack.Packer packer = new Neo4jPack.Packer(output);
    packer.pack('C');
    Object unpacked = unpacked(output.bytes());
    // Then
    assertThat(unpacked, instanceOf(String.class));
    assertThat(unpacked, equalTo("C"));
}
Also used : PackedOutputArray(org.neo4j.bolt.v1.packstream.PackedOutputArray) Test(org.junit.Test)

Example 8 with PackedOutputArray

use of org.neo4j.bolt.v1.packstream.PackedOutputArray in project neo4j by neo4j.

the class Neo4jPackTest method shouldFailWhenNullKeysInMaps.

@SuppressWarnings("unchecked")
@Test
public void shouldFailWhenNullKeysInMaps() throws IOException {
    // Given
    PackedOutputArray output = new PackedOutputArray();
    Neo4jPack.Packer packer = new Neo4jPack.Packer(output);
    HashMap<String, Object> map = new HashMap<>();
    map.put(null, 42L);
    map.put("foo", 1337L);
    packer.pack(map);
    assertTrue(packer.hasErrors());
}
Also used : HashMap(java.util.HashMap) PackedOutputArray(org.neo4j.bolt.v1.packstream.PackedOutputArray) Test(org.junit.Test)

Example 9 with PackedOutputArray

use of org.neo4j.bolt.v1.packstream.PackedOutputArray in project neo4j by neo4j.

the class Neo4jPackTest method shouldBeAbleToPackAndUnpackListStream.

@SuppressWarnings("unchecked")
@Test
public void shouldBeAbleToPackAndUnpackListStream() throws IOException {
    // Given
    PackedOutputArray output = new PackedOutputArray();
    Neo4jPack.Packer packer = new Neo4jPack.Packer(output);
    packer.packListStreamHeader();
    List<String> expected = new ArrayList<>();
    for (Label label : ALICE.getLabels()) {
        String labelName = label.name();
        packer.pack(labelName);
        expected.add(labelName);
    }
    packer.packEndOfStream();
    Object unpacked = unpacked(output.bytes());
    // Then
    assertThat(unpacked, instanceOf(List.class));
    List<String> unpackedList = (List<String>) unpacked;
    assertThat(unpackedList, equalTo(expected));
}
Also used : ArrayList(java.util.ArrayList) Label(org.neo4j.graphdb.Label) ArrayList(java.util.ArrayList) Arrays.asList(java.util.Arrays.asList) List(java.util.List) PackedOutputArray(org.neo4j.bolt.v1.packstream.PackedOutputArray) Test(org.junit.Test)

Aggregations

PackedOutputArray (org.neo4j.bolt.v1.packstream.PackedOutputArray)9 Test (org.junit.Test)8 HashMap (java.util.HashMap)4 Map (java.util.Map)3 ArrayList (java.util.ArrayList)2 Arrays.asList (java.util.Arrays.asList)2 List (java.util.List)2 PackedInputArray (org.neo4j.bolt.v1.packstream.PackedInputArray)2 Label (org.neo4j.graphdb.Label)1