35 lines
698 B
Go
35 lines
698 B
Go
package job
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
)
|
|
|
|
func TestJobJSONRoundTrip(t *testing.T) {
|
|
in := Job{
|
|
ID: "j1", Height: 2800000, BlockTemplate: "tpl", Difficulty: 100000,
|
|
SeedHash: "seed", Target: "target", Blob: "deadbeef", Algo: "rx/0",
|
|
}
|
|
b, err := json.Marshal(in)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
var out Job
|
|
if err := json.Unmarshal(b, &out); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if out.ID != in.ID || out.Blob != in.Blob || out.Algo != in.Algo {
|
|
t.Fatalf("mismatch: %+v", out)
|
|
}
|
|
}
|
|
|
|
func TestJobMinimalJSON(t *testing.T) {
|
|
var out Job
|
|
if err := json.Unmarshal([]byte(`{"job_id":"x"}`), &out); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if out.ID != "x" {
|
|
t.Fatalf("got %q", out.ID)
|
|
}
|
|
}
|