package io.seldon.rpc;
import org.junit.Test;
import com.google.protobuf.InvalidProtocolBufferException;
import com.google.protobuf.util.JsonFormat;
import com.google.protobuf.util.JsonFormat.TypeRegistry;
import io.seldon.api.rpc.ClassificationReply;
import io.seldon.api.rpc.ClassificationRequest;
import io.seldon.api.rpc.DefaultCustomPredictRequest;
import io.seldon.api.rpc.example.CustomPredictReply;
public class CustomClassTest {
@Test
public void testParseFromJSON() throws InvalidProtocolBufferException
{
String json = "{\"meta\":{\"modelName\":\"some-name\"},\"custom\":{\"@type\":\"type.googleapis.com/io.seldon.api.rpc.example.CustomPredictReply\",\"data\":\"some custom data\"}}";
ClassificationReply.Builder builder = ClassificationReply.newBuilder();
CustomPredictReply.Builder customBuilder = CustomPredictReply.newBuilder();
TypeRegistry registry = TypeRegistry.newBuilder().add(customBuilder.getDescriptorForType()).build();
JsonFormat.Parser jFormatter = JsonFormat.parser().usingTypeRegistry(registry);
jFormatter.merge(json, builder);
ClassificationReply reply = builder.build();
System.out.println(reply);
}
@Test
public void testParseFromJSONDefault() throws InvalidProtocolBufferException
{
String json = "{\"data\":{\"@type\":\"type.googleapis.com/io.seldon.api.rpc.DefaultCustomPredictRequest\",\"values\":[1.2,2.1]}}";
ClassificationRequest.Builder builder = ClassificationRequest.newBuilder();
DefaultCustomPredictRequest.Builder customBuilder = DefaultCustomPredictRequest.newBuilder();
TypeRegistry registry = TypeRegistry.newBuilder().add(customBuilder.getDescriptorForType()).build();
JsonFormat.Parser jFormatter = JsonFormat.parser().usingTypeRegistry(registry);
jFormatter.merge(json, builder);
ClassificationRequest request = builder.build();
System.out.println(request);
}
}