22 lines
591 B
Go
22 lines
591 B
Go
package main
|
|
|
|
import "testing"
|
|
|
|
func TestTakenOfLedgerAnswers(t *testing.T) {
|
|
for _, c := range []struct {
|
|
name, raw string
|
|
want int
|
|
err bool
|
|
}{
|
|
{"never written", `{"instance":"x","state":null,"sequence":0}`, 0, false},
|
|
{"written", `{"instance":"x","state":{"taken":{"a":{}}},"sequence":3}`, 1, false},
|
|
{"bad state", `{"instance":"x","state":"oops","sequence":3}`, 0, true},
|
|
{"bad answer", `nope`, 0, true},
|
|
} {
|
|
b, err := takenOf([]byte(c.raw))
|
|
if (err != nil) != c.err || len(b.Taken) != c.want {
|
|
t.Errorf("%s: %v %d", c.name, err, len(b.Taken))
|
|
}
|
|
}
|
|
}
|