1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package types
import (
"strings"
"testing"
)
// TestStItemString checks that the String() function prints the right format,
// and that the body is printed without a nil-pointer panic.
func TestStItemString(t *testing.T) {
wantPrefix := map[StFormat]string{
StFormatReserved: "Format(reserved)",
StFormatSignedTreeHeadV1: "Format(signed_tree_head_v1): &{TreeHead",
StFormatCosignedTreeHeadV1: "Format(cosigned_tree_head_v1): &{SignedTreeHead",
StFormatConsistencyProofV1: "Format(consistency_proof_v1): &{LogId",
StFormatInclusionProofV1: "Format(inclusion_proof_v1): &{LogId",
StFormatSignedChecksumV1: "Format(signed_checksum_v1): &{Data",
StFormat(1<<16 - 1): "unknown StItem: unknown StFormat: 65535",
}
tests := append(test_cases_stitem(t), testCaseSerialize{
description: "valid: unknown StItem",
item: StItem{
Format: StFormat(1<<16 - 1),
},
})
for _, table := range tests {
item, ok := table.item.(StItem)
if !ok {
t.Fatalf("must cast to StItem in test %q", table.description)
}
prefix, ok := wantPrefix[item.Format]
if !ok {
t.Fatalf("must have prefix for StFormat %v in test %q", item.Format, table.description)
}
if got, want := item.String(), prefix; !strings.HasPrefix(got, want) {
t.Errorf("got %q but wanted prefix %q in test %q", got, want, table.description)
}
}
}
|