1
0
Fork 0
mirror of https://github.com/sourcegraph/jsonrpc2.git synced 2026-06-16 04:04:56 +02:00
jsonrpc2/codec_test.go
Quinn Slack 6e06d561ec Add pluggable transport interface + WebSocket support
simplify API by using interface{}, rename from transport -> stream

add WebSocket transport in websocket subpackage

do not buffer in ReadObject, rename GetObjectReader/ReadObject -> NextObjectReader

use xtest (jsonrpc2_test) package to allow us to test subpackages that depend on us (in a future change)

factor out vscode-specific transport code and allow pluggable transports

remove Server (unused) and Serve (unnecessary):
  The Serve func had nothing specific to JSON-RPC; it was just a loop
  around (net.Listener).Accept. It added no value.
2016-12-17 18:35:34 -08:00

34 lines
743 B
Go

package jsonrpc2
import (
"bufio"
"bytes"
"strings"
"testing"
)
func TestVarintObjectCodec(t *testing.T) {
want := 789
var buf bytes.Buffer
if err := (VarintObjectCodec{}).WriteObject(&buf, want); err != nil {
t.Fatal(err)
}
var v int
if err := (VarintObjectCodec{}).ReadObject(bufio.NewReader(&buf), &v); err != nil {
t.Fatal(err)
}
if want := want; v != want {
t.Errorf("got %v, want %v", v, want)
}
}
func TestVSCodeObjectCodec_ReadObject(t *testing.T) {
s := "Content-Type: foo\r\nContent-Length: 123\r\n\r\n789"
var v int
if err := (VSCodeObjectCodec{}).ReadObject(bufio.NewReader(strings.NewReader(s)), &v); err != nil {
t.Fatal(err)
}
if want := 789; v != want {
t.Errorf("got %v, want %v", v, want)
}
}