package sdk

import (
	"bufio"
	"bytes"
	"encoding/json"
	"testing"
)

// Bridge'in protokol.Cerceve fonksiyonunun urettigi sabit cerceve (govde 36 bayt).
const altinCerceve = "Content-Length: 36\r\n\r\n{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":{}}"

// SDK cerceve uretimi bridge ile bayt bayt ayni olmali.
func TestCerceveAltinBaytlarlaUyumlu(t *testing.T) {
	b, err := cerceve(Mesaj{Id: json.RawMessage("1"), Result: json.RawMessage(`{}`)})
	if err != nil {
		t.Fatal(err)
	}
	if !bytes.Equal(b, []byte(altinCerceve)) {
		t.Fatalf("cerceve farkli:\nbeklenen: %q\ngelen:    %q", altinCerceve, b)
	}
}

// Bridge'in urettigi sabit cerceve SDK tarafinda dogru ayrismali.
func TestAltinCerceveOkunuyor(t *testing.T) {
	m, err := oku(bufio.NewReader(bytes.NewReader([]byte(altinCerceve))))
	if err != nil {
		t.Fatal(err)
	}
	if string(m.Id) != "1" || string(m.Result) != "{}" || m.Error != nil {
		t.Fatalf("cerceve yanlis ayristi: %+v", m)
	}
}
