1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: Apache-2.0
13 var _ = Suite(&blockSegmentSuite{})
15 type blockSegmentSuite struct{}
17 func (s *blockSegmentSuite) TestMarshal(c *C) {
18 dst, err := json.Marshal(map[BlockSegment]BlockSegment{
19 BlockSegment{"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+1", 0, 1}: BlockSegment{"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb+3", 2, 1},
22 c.Check(string(dst), Equals, `{"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+1 0 1":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb+3 2 1"}`)
25 func (s *blockSegmentSuite) TestUnmarshal(c *C) {
27 F map[BlockSegment]BlockSegment
29 err := json.Unmarshal([]byte(`{"f": {"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+1 0 1": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb+3 2 1"}}`), &dst)
31 c.Check(dst.F, HasLen, 1)
32 for k, v := range dst.F {
33 c.Check(k, Equals, BlockSegment{"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+1", 0, 1})
34 c.Check(v, Equals, BlockSegment{"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb+3", 2, 1})
38 func (s *blockSegmentSuite) TestRoundTrip(c *C) {
39 orig := map[BlockSegment]BlockSegment{
40 BlockSegment{"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+1", 0, 1}: BlockSegment{"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb+50", 0, 1},
41 BlockSegment{"cccccccccccccccccccccccccccccccc+49", 0, 49}: BlockSegment{"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb+50", 1, 49},
43 j, err := json.Marshal(orig)
45 var dst map[BlockSegment]BlockSegment
46 err = json.Unmarshal(j, &dst)
48 c.Check(dst, DeepEquals, orig)