From 48240ee6fb56c87f04bf171e6e9a7a9472c3b551 Mon Sep 17 00:00:00 2001 From: Yves Junqueira Date: Sun, 8 Aug 2010 01:46:30 +0200 Subject: [PATCH] bencode: Adding a unit-test proving that "dictionary inside a dictionary" works, as long as you know how to use it. Closes issue #2 (user error!). --- bencode_test.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/bencode_test.go b/bencode_test.go index c8c468c..cbcd5f6 100644 --- a/bencode_test.go +++ b/bencode_test.go @@ -234,6 +234,15 @@ type structA struct { } func TestUnmarshal(t *testing.T) { + type structNested struct { + T string "t" + Y string "y" + Q string "q" + A map[string]string "a" + } + innerDict := map[string]string{"id": "abcdefghij0123456789"} + nestedDictionary := structNested{"aa", "q", "ping", innerDict} + tests := []SVPair{ SVPair{"i0e", int64(0)}, SVPair{"i0e", 0}, @@ -249,6 +258,7 @@ func TestUnmarshal(t *testing.T) { SVPair{"de", map[string]any{}}, SVPair{"d3:cati1e3:dogi2ee", map[string]any{"cat": 1, "dog": 2}}, SVPair{"d1:ai10e1:b3:fooe", structA{10, "foo"}}, + SVPair{"d1:ad2:id20:abcdefghij0123456789e1:q4:ping1:t2:aa1:y1:qe", nestedDictionary}, } for _, sv := range tests { if err := checkUnmarshal(sv.s, sv.v); err != nil {