Package org.neo4j.smack.serialization.strategy

Source Code of org.neo4j.smack.serialization.strategy.TestNodeSerializationStrategy

package org.neo4j.smack.serialization.strategy;

import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import java.util.ArrayList;
import java.util.Collections;

import org.apache.commons.io.output.ByteArrayOutputStream;
import org.codehaus.jackson.JsonFactory;
import org.junit.Test;
import org.neo4j.graphdb.Node;
import org.neo4j.smack.serialization.JsonSerializer;

public class TestNodeSerializationStrategy {

    @Test
    public void shouldSerializeNodeWithNoProperties() {
       
        ByteArrayOutputStream buffer = new ByteArrayOutputStream();
        JsonSerializer serializer = new JsonSerializer(new JsonFactory(), buffer);
       
        Node mockNode = mock(Node.class);
        when(mockNode.getId()).thenReturn(0l);
        when(mockNode.getPropertyKeys()).thenReturn(Collections.<String> emptyList());
       
        NodeSerializationStrategy strategy = new NodeSerializationStrategy();
        strategy.serialize(mockNode, serializer);
        serializer.flush();
       
        assertThat(new String(buffer.toByteArray()),is("{" +
                "\"data\":{}," +
                "\"self\":\"/db/data/node/0\"," +
                "\"extensions\":{}" +
            "}"));
    }
   
    @Test
    public void shouldSerializeNodeWithProperties() {
       
        ByteArrayOutputStream buffer = new ByteArrayOutputStream();
        JsonSerializer serializer = new JsonSerializer(new JsonFactory(), buffer);
       
        Node mockNode = mock(Node.class);
        when(mockNode.getId()).thenReturn(0l);
        when(mockNode.getPropertyKeys()).thenReturn(new ArrayList<String>() {
            private static final long serialVersionUID = 1248180220593789023L;
        {
            add("name");
            add("age");
            add("favorite_numbers");
        }});
       
        when(mockNode.getProperty("name")).thenReturn("bob");
        when(mockNode.getProperty("age")).thenReturn(12);
        when(mockNode.getProperty("favorite_numbers")).thenReturn(new int [] {1,2,3});
       
        NodeSerializationStrategy strategy = new NodeSerializationStrategy();
        strategy.serialize(mockNode, serializer);
        serializer.flush();
       
        assertThat(new String(buffer.toByteArray()),is(
                "{" +
                  "\"data\":{" +
                    "\"name\":\"bob\"," +
                    "\"age\":12," +
                    "\"favorite_numbers\":[1,2,3]" +
                  "}," +
                  "\"self\":\"/db/data/node/0\"," +
                  "\"extensions\":{}" +
                "}"));
    }
   
}
TOP

Related Classes of org.neo4j.smack.serialization.strategy.TestNodeSerializationStrategy

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.