This repository has been archived by the owner on Jan 18, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathrid_test.go
61 lines (55 loc) · 1.58 KB
/
rid_test.go
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
51
52
53
54
55
56
57
58
59
60
61
package orient_test
import (
"bytes"
"gopkg.in/istreamdata/orientgo.v2"
"testing"
)
func TestRIDString(t *testing.T) {
if s := orient.NewRID(5, 12).String(); s != "#5:12" {
t.Fatal("wrong RID generated: ", s)
}
}
func TestRIDParse(t *testing.T) {
if rid, err := orient.ParseRID(" #5:12 "); err != nil {
t.Fatal(err)
} else if rid != (orient.RID{ClusterID: 5, ClusterPos: 12}) {
t.Fatal("wrong RID parsed: ", rid)
}
if rid, err := orient.ParseRID(" 5:12 "); err != nil {
t.Fatal(err)
} else if rid != (orient.RID{ClusterID: 5, ClusterPos: 12}) {
t.Fatal("wrong RID parsed: ", rid)
}
}
func TestRIDNext(t *testing.T) {
rid1 := orient.RID{ClusterID: 5, ClusterPos: 12}
rid2 := orient.RID{ClusterID: 5, ClusterPos: 12}
rid3 := rid2.NextRID()
if rid3 == rid2 {
t.Fatal("RID is the same after Next")
} else if rid1 != rid2 {
t.Fatal("source RID is changed after Next")
} else if rid2.ClusterID != rid3.ClusterID {
t.Fatal("RID ClusterId is changed after Next")
} else if rid2.ClusterPos+1 != rid3.ClusterPos {
t.Fatal("next RID ClusterPos is wrong")
}
}
func testRIDSerialize(t *testing.T, s string) {
buf := bytes.NewBuffer(nil)
if err := orient.MustParseRID(s).ToStream(buf); err != nil {
t.Fatal(err)
} else if buf.Len() != 10 {
t.Fatalf("wrong serialized size: %d vs %d", buf.Len(), 10)
}
rid := orient.NewEmptyRID()
if err := rid.FromStream(buf); err != nil {
t.Fatal(err)
} else if rid.String() != s {
t.Fatalf("different RIDs: %v vs %v", s, rid)
}
}
func TestRIDSerialize(t *testing.T) {
testRIDSerialize(t, "#12:2556")
testRIDSerialize(t, "#-1:-2")
}