aboutsummaryrefslogtreecommitdiffstats
path: root/swarm/storage/mru/topic_test.go
blob: dad7c7ddceb33326852e1c816b0ca079232b7680 (plain) (blame)
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
41
42
43
44
45
46
47
48
49
50
package mru

import (
    "testing"

    "github.com/ethereum/go-ethereum/common/hexutil"
)

func TestTopic(t *testing.T) {
    related, _ := hexutil.Decode("0xabcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789")
    topicName := "test-topic"
    topic, _ := NewTopic(topicName, related)
    hex := topic.Hex()
    expectedHex := "0xdfa89c750e3108f9c2aeef0123456789abcdef0123456789abcdef0123456789"
    if hex != expectedHex {
        t.Fatalf("Expected %s, got %s", expectedHex, hex)
    }

    var topic2 Topic
    topic2.FromHex(hex)
    if topic2 != topic {
        t.Fatal("Expected recovered topic to be equal to original one")
    }

    if topic2.Name(related) != topicName {
        t.Fatal("Retrieved name does not match")
    }

    bytes, err := topic2.MarshalJSON()
    if err != nil {
        t.Fatal(err)
    }
    expectedJSON := `"0xdfa89c750e3108f9c2aeef0123456789abcdef0123456789abcdef0123456789"`
    equal, err := areEqualJSON(expectedJSON, string(bytes))
    if err != nil {
        t.Fatal(err)
    }
    if !equal {
        t.Fatalf("Expected JSON to be %s, got %s", expectedJSON, string(bytes))
    }

    err = topic2.UnmarshalJSON(bytes)
    if err != nil {
        t.Fatal(err)
    }
    if topic2 != topic {
        t.Fatal("Expected recovered topic to be equal to original one")
    }

}