Skip to content

Commit

Permalink
test(serializer): update unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bsorrentino committed Oct 24, 2024
1 parent 13fed37 commit 5f97207
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 4 deletions.
6 changes: 6 additions & 0 deletions core-jdk8/src/test/java/org/bsc/langgraph4j/GenericType.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package org.bsc.langgraph4j;

public class GenericType<T> {

T value;
}
50 changes: 46 additions & 4 deletions core-jdk8/src/test/java/org/bsc/langgraph4j/SerializeTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@

import lombok.ToString;
import org.bsc.langgraph4j.serializer.Serializer;
import org.bsc.langgraph4j.serializer.std.NullableObjectSerializer;
import org.bsc.langgraph4j.serializer.std.ObjectStreamStateSerializer;
import org.bsc.langgraph4j.state.AgentState;
import org.junit.jupiter.api.Test;

import java.io.*;
import java.util.Map;
import java.util.*;

import static org.bsc.langgraph4j.utils.CollectionsUtils.listOf;
import static org.bsc.langgraph4j.utils.CollectionsUtils.mapOf;
import static org.junit.jupiter.api.Assertions.*;

Expand All @@ -31,23 +33,58 @@ private AgentState deserializeState( byte[] bytes ) throws Exception {
}
}

static class ValueWithNull {
private final String name;

public ValueWithNull(String name) {
this.name = name;
}
}

@Test
@SuppressWarnings("unchecked")
public void serializeStateTest() throws Exception {

stateSerializer.mapper().register( ValueWithNull.class, new NullableObjectSerializer<ValueWithNull>() {

@Override
public void write(ValueWithNull object, ObjectOutput out) throws IOException {
writeNullableUTF(object.name, out);
}

@Override
public ValueWithNull read(ObjectInput in) throws IOException, ClassNotFoundException {
return new ValueWithNull( readNullableUTF(in).orElse(null) );
}
} );
AgentState state = stateSerializer.stateOf(mapOf(
"a", "b",
"f", null,
"c", "d"
"c", 100,
"e", new ValueWithNull(null),
"list", listOf("aa", null , "cc", 200)

));

byte[] bytes = serializeState( state );

assertNotNull(bytes);
Map<String,Object> deserializeState = deserializeState( bytes ).data();

assertEquals( 3, deserializeState.size() );
assertEquals( 5, deserializeState.size() );
assertEquals( "b", deserializeState.get("a") );
assertEquals( "d", deserializeState.get("c") );
assertEquals( 100, deserializeState.get("c") );
assertNull( deserializeState.get("f") );
assertInstanceOf( ValueWithNull.class, deserializeState.get("e") );
assertNull( ((ValueWithNull)deserializeState.get("e")).name );
assertInstanceOf( List.class, deserializeState.get("list") );
List<String> list = (List<String>)deserializeState.get("list");
assertEquals( 4, list.size() );
assertEquals( "aa", list.get(0) );
assertNull( list.get(1) );
assertEquals( "cc", list.get(2) );
assertEquals( 200, list.get(3) );

}

@ToString
Expand Down Expand Up @@ -115,4 +152,9 @@ public NonSerializableElement read(ObjectInput in) throws IOException, ClassNotF
System.out.println( deserializedData );
}

@Test
public void customDeserializeStateTest() throws Exception {

}

}

0 comments on commit 5f97207

Please sign in to comment.