X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=document%2Fdocument_test.go;h=6113fac00b739dc0632764ab6a87bb839cc24989;hb=59a3cf3ee57735430af09be01402bf11561b2167;hp=45cac1f1b0ae1bcd27b29fc15ba4fb7b2ed9bbd8;hpb=bcab164584653fd264f4ceee5dd65f03a1f6cc35;p=epoint diff --git a/document/document_test.go b/document/document_test.go index 45cac1f..6113fac 100644 --- a/document/document_test.go +++ b/document/document_test.go @@ -59,17 +59,17 @@ sig -----END PGP SIGNATURE----- `)} -var F = map[string]string{ - "A": "foo", - "B": "bar", - "a": "baz", +var F = []Field{ + {"A", "foo"}, + {"B", "bar"}, + {"a", "baz"}, } var testData = []struct { D []byte C *ClearSigned T string - F map[string]string + F []Field }{ {[]byte(D1), C1, "cert", F}, {[]byte(D2), C2, "cert", F}, @@ -81,18 +81,21 @@ func eqClearSigned(c1, c2 *ClearSigned) bool { string(c1.ArmoredSignature) == string(c2.ArmoredSignature) } -func eqFields(f1, f2 map[string]string) bool { - for k,v := range f1 { - if f2[k] != v { +func eqFields(f1, f2 []Field) bool { + if len(f1) != len(f2) { + return false + } + for i, v := range f1 { + if f2[i].Key != v.Key && f2[i].Value != v.Value { return false } } - return len(f1) == len(f2) + return true } func TestClearSigned(t *testing.T) { for _, x := range testData { - c, err := DecodeClearSigned(x.D) + c, err := ParseClearSigned(x.D) if err != nil { t.Errorf("decoding %#v failed: %s\n", x.D, err) continue @@ -102,7 +105,7 @@ func TestClearSigned(t *testing.T) { } } for _, x := range testData { - d, err := EncodeClearSigned(x.C) + d, err := FormatClearSigned(x.C) if err != nil { t.Errorf("encoding %#v failed: %s\n", x.C, err) continue @@ -131,28 +134,65 @@ func TestParse(t *testing.T) { const draftBody = `Content-Type: text/plain.epoint.draft; charset=utf-8 -Drawer: 000000000000000000000000000000000000000a -Beneficiary: 000000000000000000000000000000000000000b +Drawer: 000000000000000000000000000000000000000A +Beneficiary: 000000000000000000000000000000000000000B Amount: 1 Denomination: half euro -IssueDate: 2 -MaturityDate: 3 +Issuer: 000000000000000000000000000000000000000D +Authorized-By: 000000000000000000000000000000000000000C +Date: 2011-11-13T12:20:35Z +Maturity-Date: 2011-11-13T12:20:35Z +Expiry-Date: 2011-12-27T09:18:46Z Notes: some notes Nonce: 42 -Server: 000000000000000000000000000000000000000c -Drawee: 000000000000000000000000000000000000000d ` func TestDraft(t *testing.T) { d, err := ParseDraft([]byte(draftBody)) if err != nil { - t.Errorf("parse %q draft failed: %s\n", draftBody, err) + t.Errorf("ParseDraft failed: %s\n", err) + return } - s, err := RenderDraft(d) + s, err := FormatDraft(d) if err != nil { t.Errorf("render %v draft failed: %s\n", d, err) } if string(s) != draftBody { - t.Errorf("parsed %#v, expected %#v\n", d, draftBody) + t.Errorf("parsed %#v\nexpected: %s\ngot: %s\n", d, draftBody, s) + } +} + +const certBody = `Content-Type: text/plain.epoint.cert; charset=utf-8 + +Holder: 0000000000000000000000000000000000000009 +Serial: 13 +Date: 2011-11-01T10:29:38Z +Balance: 23 +Denomination: half euro +Issuer: 000000000000000000000000000000000000000B +Authorized-By: 000000000000000000000000000000000000000A +Last-Debit-Serial: 0 +Last-Credit-Serial: 12 +Last-Cert: 000000000000000000000000000000000000000C +Difference: 1 +Draft: 000000000000000000000000000000000000000D +Drawer: 000000000000000000000000000000000000000E +Drawer-Cert: 000000000000000000000000000000000000000F +Notes: - +References: 000000000000000000000000000000000000000C 000000000000000000000000000000000000000F +` + +func TestCert(t *testing.T) { + c, err := ParseCert([]byte(certBody)) + if err != nil { + t.Errorf("ParseCert failed: %s\n", err) + return + } + s, err := FormatCert(c) + if err != nil { + t.Errorf("render %v cert failed: %s\n", c, err) + } + if string(s) != certBody { + t.Errorf("parsed %#v\nexpected: %s\ngot: %s\n", c, certBody, s) } }