]> git.arvados.org - arvados.git/blob - sdk/go/arvados/block_segment_test.go
Merge branch '22965-arvados-dev-move'
[arvados.git] / sdk / go / arvados / block_segment_test.go
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: Apache-2.0
4
5 package arvados
6
7 import (
8         "encoding/json"
9
10         . "gopkg.in/check.v1"
11 )
12
13 var _ = Suite(&blockSegmentSuite{})
14
15 type blockSegmentSuite struct{}
16
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},
20         })
21         c.Check(err, IsNil)
22         c.Check(string(dst), Equals, `{"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+1 0 1":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb+3 2 1"}`)
23 }
24
25 func (s *blockSegmentSuite) TestUnmarshal(c *C) {
26         var dst struct {
27                 F map[BlockSegment]BlockSegment
28         }
29         err := json.Unmarshal([]byte(`{"f": {"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa+1 0 1": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb+3 2 1"}}`), &dst)
30         c.Check(err, IsNil)
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})
35         }
36 }
37
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},
42         }
43         j, err := json.Marshal(orig)
44         c.Check(err, IsNil)
45         var dst map[BlockSegment]BlockSegment
46         err = json.Unmarshal(j, &dst)
47         c.Check(err, IsNil)
48         c.Check(dst, DeepEquals, orig)
49 }