arangorb 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ArangoRB.gemspec +18 -18
- data/Gemfile +8 -7
- data/LICENSE +21 -21
- data/README.md +906 -867
- data/lib/ArangoRB_AQL.rb +181 -160
- data/lib/ArangoRB_Cache.rb +174 -174
- data/lib/ArangoRB_Col.rb +526 -499
- data/lib/ArangoRB_DB.rb +363 -339
- data/lib/ArangoRB_Doc.rb +319 -298
- data/lib/ArangoRB_Edg.rb +184 -169
- data/lib/ArangoRB_Gra.rb +201 -180
- data/lib/ArangoRB_Index.rb +135 -115
- data/lib/ArangoRB_Replication.rb +261 -0
- data/lib/ArangoRB_Ser.rb +446 -441
- data/lib/ArangoRB_Task.rb +129 -113
- data/lib/ArangoRB_Tra.rb +169 -142
- data/lib/ArangoRB_Tran.rb +68 -53
- data/lib/ArangoRB_User.rb +149 -136
- data/lib/ArangoRB_Ver.rb +162 -147
- data/lib/arangorb.rb +16 -15
- data/spec/arangoRB_helper.rb +4 -4
- data/spec/arangoRestart_helper.rb +14 -14
- data/spec/lib/0.1.0/arangoAQL_helper.rb +64 -64
- data/spec/lib/0.1.0/arangoC_helper.rb +170 -170
- data/spec/lib/0.1.0/arangoDB_helper.rb +119 -119
- data/spec/lib/0.1.0/arangoDoc_helper.rb +79 -79
- data/spec/lib/0.1.0/arangoE_helper.rb +50 -50
- data/spec/lib/0.1.0/arangoG_helper.rb +78 -78
- data/spec/lib/0.1.0/arangoS_helper.rb +37 -37
- data/spec/lib/0.1.0/arangoT_helper.rb +48 -48
- data/spec/lib/0.1.0/arangoV_helper.rb +65 -65
- data/spec/lib/1.0.0/arangoC_helper.rb +73 -73
- data/spec/lib/1.0.0/arangoDB_helper.rb +48 -48
- data/spec/lib/1.0.0/arangoI_helper.rb +43 -43
- data/spec/lib/1.0.0/arangoS_helper.rb +192 -192
- data/spec/lib/1.0.0/arangoTa_helper.rb +49 -49
- data/spec/lib/1.0.0/arangoTr_helper.rb +15 -15
- data/spec/lib/1.0.0/arangoU_helper.rb +72 -72
- data/spec/lib/1.1.0/arangoRB_helper.rb +144 -144
- data/spec/lib/1.1.0/arangoRB_walks_helper.rb +19 -19
- data/spec/lib/1.2.0/arangoCache_helper.rb +66 -66
- data/spec/lib/1.3.0/arangoHash_helper.rb +30 -0
- data/spec/lib/arangoRB_0.1.0_helper.rb +9 -9
- data/spec/lib/arangoRB_1.0.0_helper.rb +6 -6
- data/spec/lib/arangoRB_1.1.0_helper.rb +2 -2
- data/spec/lib/arangoRB_1.2.0_helper.rb +2 -1
- data/spec/spec_helper.rb +41 -41
- metadata +6 -5
@@ -1,119 +1,119 @@
|
|
1
|
-
require_relative './../../spec_helper'
|
2
|
-
|
3
|
-
describe ArangoDatabase do
|
4
|
-
|
5
|
-
context "#new" do
|
6
|
-
it "create a new instance without global" do
|
7
|
-
myDatabase = ArangoDatabase.new database: "MyDatabase"
|
8
|
-
expect(myDatabase.database).to eq "MyDatabase"
|
9
|
-
end
|
10
|
-
|
11
|
-
it "create a new instance with global" do
|
12
|
-
myDatabase = ArangoDatabase.new
|
13
|
-
expect(myDatabase.database).to eq "MyDatabase"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
context "#create" do
|
18
|
-
it "create a new Database" do
|
19
|
-
@myDatabase.destroy
|
20
|
-
myDatabase = @myDatabase.create
|
21
|
-
expect(myDatabase.database).to eq "MyDatabase"
|
22
|
-
end
|
23
|
-
|
24
|
-
it "create a duplicate Database" do
|
25
|
-
myDatabase = @myDatabase.create
|
26
|
-
expect(myDatabase).to eq "duplicate name"
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
context "#info" do
|
31
|
-
it "obtain general info" do
|
32
|
-
info = @myDatabase.info
|
33
|
-
expect(info["name"]).to eq "MyDatabase"
|
34
|
-
end
|
35
|
-
|
36
|
-
it "list databases" do
|
37
|
-
list = ArangoDatabase.databases
|
38
|
-
expect(list.length).to be >= 1
|
39
|
-
end
|
40
|
-
|
41
|
-
it "list collections" do
|
42
|
-
list = @myDatabase.collections
|
43
|
-
expect(list.length).to be 0
|
44
|
-
end
|
45
|
-
|
46
|
-
it "list graphs" do
|
47
|
-
list = @myDatabase.graphs
|
48
|
-
expect(list.length).to be 0
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
context "#query" do
|
53
|
-
it "properties" do
|
54
|
-
expect(@myDatabase.propertiesQuery["enabled"]).to be true
|
55
|
-
end
|
56
|
-
|
57
|
-
it "current" do
|
58
|
-
expect(@myDatabase.currentQuery).to eq []
|
59
|
-
end
|
60
|
-
|
61
|
-
it "slow" do
|
62
|
-
expect(@myDatabase.slowQuery).to eq []
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
context "#delete query" do
|
67
|
-
it "stopSlow" do
|
68
|
-
expect(@myDatabase.stopSlowQuery).to be true
|
69
|
-
end
|
70
|
-
|
71
|
-
it "kill" do
|
72
|
-
@myCollection = ArangoCollection.new.create
|
73
|
-
@myCollection.create_document document: [{"num" => 1, "_key" => "FirstKey"}, {"num" => 1}, {"num" => 1}, {"num" => 1}, {"num" => 1}, {"num" => 1}, {"num" => 1}, {"num" => 2}, {"num" => 2}, {"num" => 2}, {"num" => 3}, {"num" => 2}, {"num" => 5}, {"num" => 2}]
|
74
|
-
@myAQL.size = 3
|
75
|
-
@myAQL.execute
|
76
|
-
expect((@myDatabase.killQuery query: @myAQL).split(" ")[0]).to eq "cannot"
|
77
|
-
end
|
78
|
-
|
79
|
-
it "changeProperties" do
|
80
|
-
result = @myDatabase.changePropertiesQuery maxSlowQueries: 65
|
81
|
-
expect(result["maxSlowQueries"]).to eq 65
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
context "#cache" do
|
86
|
-
it "clear" do
|
87
|
-
expect(@myDatabase.clearCache).to be true
|
88
|
-
end
|
89
|
-
|
90
|
-
it "change Property Cache" do
|
91
|
-
@myDatabase.changePropertyCache maxResults: 130
|
92
|
-
expect(@myDatabase.propertyCache["maxResults"]).to eq 130
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
context "#function" do
|
97
|
-
it "create Function" do
|
98
|
-
result = @myDatabase.createFunction name: "myfunctions::temperature::celsiustofahrenheit", code: "function (celsius) { return celsius * 1.8 + 32; }"
|
99
|
-
expect(result.class).to eq Hash
|
100
|
-
end
|
101
|
-
|
102
|
-
it "list Functions" do
|
103
|
-
result = @myDatabase.functions
|
104
|
-
expect(result[0]["name"]).to eq "myfunctions::temperature::celsiustofahrenheit"
|
105
|
-
end
|
106
|
-
|
107
|
-
it "delete Function" do
|
108
|
-
result = @myDatabase.deleteFunction name: "myfunctions::temperature::celsiustofahrenheit"
|
109
|
-
expect(result).to be true
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
context "#destroy" do
|
114
|
-
it "delete a Database" do
|
115
|
-
myDatabase = @myDatabase.destroy
|
116
|
-
expect(myDatabase).to be true
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|
1
|
+
require_relative './../../spec_helper'
|
2
|
+
|
3
|
+
describe ArangoDatabase do
|
4
|
+
|
5
|
+
context "#new" do
|
6
|
+
it "create a new instance without global" do
|
7
|
+
myDatabase = ArangoDatabase.new database: "MyDatabase"
|
8
|
+
expect(myDatabase.database).to eq "MyDatabase"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "create a new instance with global" do
|
12
|
+
myDatabase = ArangoDatabase.new
|
13
|
+
expect(myDatabase.database).to eq "MyDatabase"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context "#create" do
|
18
|
+
it "create a new Database" do
|
19
|
+
@myDatabase.destroy
|
20
|
+
myDatabase = @myDatabase.create
|
21
|
+
expect(myDatabase.database).to eq "MyDatabase"
|
22
|
+
end
|
23
|
+
|
24
|
+
it "create a duplicate Database" do
|
25
|
+
myDatabase = @myDatabase.create
|
26
|
+
expect(myDatabase).to eq "duplicate name"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context "#info" do
|
31
|
+
it "obtain general info" do
|
32
|
+
info = @myDatabase.info
|
33
|
+
expect(info["name"]).to eq "MyDatabase"
|
34
|
+
end
|
35
|
+
|
36
|
+
it "list databases" do
|
37
|
+
list = ArangoDatabase.databases
|
38
|
+
expect(list.length).to be >= 1
|
39
|
+
end
|
40
|
+
|
41
|
+
it "list collections" do
|
42
|
+
list = @myDatabase.collections
|
43
|
+
expect(list.length).to be 0
|
44
|
+
end
|
45
|
+
|
46
|
+
it "list graphs" do
|
47
|
+
list = @myDatabase.graphs
|
48
|
+
expect(list.length).to be 0
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
context "#query" do
|
53
|
+
it "properties" do
|
54
|
+
expect(@myDatabase.propertiesQuery["enabled"]).to be true
|
55
|
+
end
|
56
|
+
|
57
|
+
it "current" do
|
58
|
+
expect(@myDatabase.currentQuery).to eq []
|
59
|
+
end
|
60
|
+
|
61
|
+
it "slow" do
|
62
|
+
expect(@myDatabase.slowQuery).to eq []
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
context "#delete query" do
|
67
|
+
it "stopSlow" do
|
68
|
+
expect(@myDatabase.stopSlowQuery).to be true
|
69
|
+
end
|
70
|
+
|
71
|
+
it "kill" do
|
72
|
+
@myCollection = ArangoCollection.new.create
|
73
|
+
@myCollection.create_document document: [{"num" => 1, "_key" => "FirstKey"}, {"num" => 1}, {"num" => 1}, {"num" => 1}, {"num" => 1}, {"num" => 1}, {"num" => 1}, {"num" => 2}, {"num" => 2}, {"num" => 2}, {"num" => 3}, {"num" => 2}, {"num" => 5}, {"num" => 2}]
|
74
|
+
@myAQL.size = 3
|
75
|
+
@myAQL.execute
|
76
|
+
expect((@myDatabase.killQuery query: @myAQL).split(" ")[0]).to eq "cannot"
|
77
|
+
end
|
78
|
+
|
79
|
+
it "changeProperties" do
|
80
|
+
result = @myDatabase.changePropertiesQuery maxSlowQueries: 65
|
81
|
+
expect(result["maxSlowQueries"]).to eq 65
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
context "#cache" do
|
86
|
+
it "clear" do
|
87
|
+
expect(@myDatabase.clearCache).to be true
|
88
|
+
end
|
89
|
+
|
90
|
+
it "change Property Cache" do
|
91
|
+
@myDatabase.changePropertyCache maxResults: 130
|
92
|
+
expect(@myDatabase.propertyCache["maxResults"]).to eq 130
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
context "#function" do
|
97
|
+
it "create Function" do
|
98
|
+
result = @myDatabase.createFunction name: "myfunctions::temperature::celsiustofahrenheit", code: "function (celsius) { return celsius * 1.8 + 32; }"
|
99
|
+
expect(result.class).to eq Hash
|
100
|
+
end
|
101
|
+
|
102
|
+
it "list Functions" do
|
103
|
+
result = @myDatabase.functions
|
104
|
+
expect(result[0]["name"]).to eq "myfunctions::temperature::celsiustofahrenheit"
|
105
|
+
end
|
106
|
+
|
107
|
+
it "delete Function" do
|
108
|
+
result = @myDatabase.deleteFunction name: "myfunctions::temperature::celsiustofahrenheit"
|
109
|
+
expect(result).to be true
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
context "#destroy" do
|
114
|
+
it "delete a Database" do
|
115
|
+
myDatabase = @myDatabase.destroy
|
116
|
+
expect(myDatabase).to be true
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
@@ -1,79 +1,79 @@
|
|
1
|
-
require_relative './../../spec_helper'
|
2
|
-
|
3
|
-
describe ArangoDocument do
|
4
|
-
context "#new" do
|
5
|
-
it "create a new Document instance without global" do
|
6
|
-
myDocument = ArangoDocument.new collection: "MyCollection", database: "MyDatabase"
|
7
|
-
expect(myDocument.collection.name).to eq "MyCollection"
|
8
|
-
end
|
9
|
-
|
10
|
-
it "create a new instance with global" do
|
11
|
-
myDocument = ArangoDocument.new key: "myKey", body: {"Hello" => "World"}
|
12
|
-
expect(myDocument.key).to eq "myKey"
|
13
|
-
end
|
14
|
-
|
15
|
-
it "create a new Edge instance" do
|
16
|
-
a = ArangoDocument.new(key: "myA", body: {"Hello" => "World"}).create
|
17
|
-
b = ArangoDocument.new(key: "myB", body: {"Hello" => "World"}).create
|
18
|
-
myEdgeDocument = ArangoDocument.new collection: "MyEdgeCollection", from: a, to: b
|
19
|
-
expect(myEdgeDocument.body["_from"]).to eq a.id
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
context "#create" do
|
24
|
-
it "create a new Document" do
|
25
|
-
@myDocument.destroy
|
26
|
-
myDocument = @myDocument.create
|
27
|
-
expect(myDocument.body["Hello"]).to eq "World"
|
28
|
-
end
|
29
|
-
|
30
|
-
it "create a duplicate Document" do
|
31
|
-
myDocument = @myDocument.create
|
32
|
-
expect(myDocument).to eq "cannot create document, unique constraint violated"
|
33
|
-
end
|
34
|
-
|
35
|
-
it "create a new Edge" do
|
36
|
-
myDoc = @myCollection.create_document document: [{"A" => "B", "num" => 1}, {"C" => "D", "num" => 3}]
|
37
|
-
myEdge = ArangoDocument.new collection: "MyEdgeCollection", from: myDoc[0].id, to: myDoc[1].id
|
38
|
-
myEdge = myEdge.create
|
39
|
-
expect(myEdge.body["_from"]).to eq myDoc[0].id
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
context "#info" do
|
44
|
-
it "retrieve Document" do
|
45
|
-
myDocument = @myDocument.retrieve
|
46
|
-
expect(myDocument.body["Hello"]).to eq "World"
|
47
|
-
end
|
48
|
-
|
49
|
-
it "retrieve Edges" do
|
50
|
-
@myEdgeCollection.create_edge from: ["MyCollection/myA", "MyCollection/myB"], to: @myDocument
|
51
|
-
myEdges = @myDocument.retrieve_edges(collection: @myEdgeCollection)
|
52
|
-
expect(myEdges.length).to eq 2
|
53
|
-
end
|
54
|
-
|
55
|
-
it "going in different directions" do
|
56
|
-
myDocument = @myDocument.in("MyEdgeCollection")[0].from.out(@myEdgeCollection)[0].to
|
57
|
-
expect(myDocument.id).to eq @myDocument.id
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
context "#modify" do
|
62
|
-
it "replace" do
|
63
|
-
myDocument = @myDocument.replace body: {"value" => 3}
|
64
|
-
expect(myDocument.body["value"]).to eq 3
|
65
|
-
end
|
66
|
-
|
67
|
-
it "update" do
|
68
|
-
myDocument = @myDocument.update body: {"time" => 13}
|
69
|
-
expect(myDocument.body["value"]).to eq 3
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
context "#destroy" do
|
74
|
-
it "delete a Document" do
|
75
|
-
result = @myDocument.destroy
|
76
|
-
expect(result).to eq true
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
1
|
+
require_relative './../../spec_helper'
|
2
|
+
|
3
|
+
describe ArangoDocument do
|
4
|
+
context "#new" do
|
5
|
+
it "create a new Document instance without global" do
|
6
|
+
myDocument = ArangoDocument.new collection: "MyCollection", database: "MyDatabase"
|
7
|
+
expect(myDocument.collection.name).to eq "MyCollection"
|
8
|
+
end
|
9
|
+
|
10
|
+
it "create a new instance with global" do
|
11
|
+
myDocument = ArangoDocument.new key: "myKey", body: {"Hello" => "World"}
|
12
|
+
expect(myDocument.key).to eq "myKey"
|
13
|
+
end
|
14
|
+
|
15
|
+
it "create a new Edge instance" do
|
16
|
+
a = ArangoDocument.new(key: "myA", body: {"Hello" => "World"}).create
|
17
|
+
b = ArangoDocument.new(key: "myB", body: {"Hello" => "World"}).create
|
18
|
+
myEdgeDocument = ArangoDocument.new collection: "MyEdgeCollection", from: a, to: b
|
19
|
+
expect(myEdgeDocument.body["_from"]).to eq a.id
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context "#create" do
|
24
|
+
it "create a new Document" do
|
25
|
+
@myDocument.destroy
|
26
|
+
myDocument = @myDocument.create
|
27
|
+
expect(myDocument.body["Hello"]).to eq "World"
|
28
|
+
end
|
29
|
+
|
30
|
+
it "create a duplicate Document" do
|
31
|
+
myDocument = @myDocument.create
|
32
|
+
expect(myDocument).to eq "cannot create document, unique constraint violated"
|
33
|
+
end
|
34
|
+
|
35
|
+
it "create a new Edge" do
|
36
|
+
myDoc = @myCollection.create_document document: [{"A" => "B", "num" => 1}, {"C" => "D", "num" => 3}]
|
37
|
+
myEdge = ArangoDocument.new collection: "MyEdgeCollection", from: myDoc[0].id, to: myDoc[1].id
|
38
|
+
myEdge = myEdge.create
|
39
|
+
expect(myEdge.body["_from"]).to eq myDoc[0].id
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context "#info" do
|
44
|
+
it "retrieve Document" do
|
45
|
+
myDocument = @myDocument.retrieve
|
46
|
+
expect(myDocument.body["Hello"]).to eq "World"
|
47
|
+
end
|
48
|
+
|
49
|
+
it "retrieve Edges" do
|
50
|
+
@myEdgeCollection.create_edge from: ["MyCollection/myA", "MyCollection/myB"], to: @myDocument
|
51
|
+
myEdges = @myDocument.retrieve_edges(collection: @myEdgeCollection)
|
52
|
+
expect(myEdges.length).to eq 2
|
53
|
+
end
|
54
|
+
|
55
|
+
it "going in different directions" do
|
56
|
+
myDocument = @myDocument.in("MyEdgeCollection")[0].from.out(@myEdgeCollection)[0].to
|
57
|
+
expect(myDocument.id).to eq @myDocument.id
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context "#modify" do
|
62
|
+
it "replace" do
|
63
|
+
myDocument = @myDocument.replace body: {"value" => 3}
|
64
|
+
expect(myDocument.body["value"]).to eq 3
|
65
|
+
end
|
66
|
+
|
67
|
+
it "update" do
|
68
|
+
myDocument = @myDocument.update body: {"time" => 13}
|
69
|
+
expect(myDocument.body["value"]).to eq 3
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
context "#destroy" do
|
74
|
+
it "delete a Document" do
|
75
|
+
result = @myDocument.destroy
|
76
|
+
expect(result).to eq true
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -1,50 +1,50 @@
|
|
1
|
-
require_relative './../../spec_helper'
|
2
|
-
|
3
|
-
describe ArangoEdge do
|
4
|
-
context "#new" do
|
5
|
-
it "create a new Edge instance" do
|
6
|
-
a = ArangoVertex.new(key: "myA", body: {"Hello" => "World"}).create
|
7
|
-
b = ArangoVertex.new(key: "myB", body: {"Hello" => "World"}).create
|
8
|
-
myEdgeDocument = ArangoEdge.new collection: "MyEdgeCollection", from: a, to: b
|
9
|
-
expect(myEdgeDocument.body["_from"]).to eq a.id
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
context "#create" do
|
14
|
-
it "create a new Edge" do
|
15
|
-
myDoc = @myCollection.create_document document: [{"A" => "B", "num" => 1}, {"C" => "D", "num" => 3}]
|
16
|
-
myEdge = ArangoEdge.new from: myDoc[0].id, to: myDoc[1].id, collection: "MyEdgeCollection"
|
17
|
-
myEdge = myEdge.create
|
18
|
-
expect(myEdge.body["_from"]).to eq myDoc[0].id
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
context "#info" do
|
23
|
-
it "retrieve Document" do
|
24
|
-
myDocument = @myEdge.retrieve
|
25
|
-
expect(myDocument.collection.name).to eq "MyEdgeCollection"
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
context "#modify" do
|
30
|
-
it "replace" do
|
31
|
-
a = ArangoVertex.new(body: {"Hello" => "World"}).create
|
32
|
-
b = ArangoVertex.new(body: {"Hello" => "World!!"}).create
|
33
|
-
myDocument = @myEdge.replace body: {"_from" => a.id, "_to" => b.id}
|
34
|
-
expect(myDocument.body["_from"]).to eq a.id
|
35
|
-
end
|
36
|
-
|
37
|
-
it "update" do
|
38
|
-
cc = ArangoVertex.new(body: {"Hello" => "World!!!"}).create
|
39
|
-
myDocument = @myEdge.update body: {"_to" => cc.id}
|
40
|
-
expect(myDocument.body["_to"]).to eq cc.id
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
context "#destroy" do
|
45
|
-
it "delete a Document" do
|
46
|
-
result = @myEdge.destroy
|
47
|
-
expect(result).to eq true
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
1
|
+
require_relative './../../spec_helper'
|
2
|
+
|
3
|
+
describe ArangoEdge do
|
4
|
+
context "#new" do
|
5
|
+
it "create a new Edge instance" do
|
6
|
+
a = ArangoVertex.new(key: "myA", body: {"Hello" => "World"}).create
|
7
|
+
b = ArangoVertex.new(key: "myB", body: {"Hello" => "World"}).create
|
8
|
+
myEdgeDocument = ArangoEdge.new collection: "MyEdgeCollection", from: a, to: b
|
9
|
+
expect(myEdgeDocument.body["_from"]).to eq a.id
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
context "#create" do
|
14
|
+
it "create a new Edge" do
|
15
|
+
myDoc = @myCollection.create_document document: [{"A" => "B", "num" => 1}, {"C" => "D", "num" => 3}]
|
16
|
+
myEdge = ArangoEdge.new from: myDoc[0].id, to: myDoc[1].id, collection: "MyEdgeCollection"
|
17
|
+
myEdge = myEdge.create
|
18
|
+
expect(myEdge.body["_from"]).to eq myDoc[0].id
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context "#info" do
|
23
|
+
it "retrieve Document" do
|
24
|
+
myDocument = @myEdge.retrieve
|
25
|
+
expect(myDocument.collection.name).to eq "MyEdgeCollection"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context "#modify" do
|
30
|
+
it "replace" do
|
31
|
+
a = ArangoVertex.new(body: {"Hello" => "World"}).create
|
32
|
+
b = ArangoVertex.new(body: {"Hello" => "World!!"}).create
|
33
|
+
myDocument = @myEdge.replace body: {"_from" => a.id, "_to" => b.id}
|
34
|
+
expect(myDocument.body["_from"]).to eq a.id
|
35
|
+
end
|
36
|
+
|
37
|
+
it "update" do
|
38
|
+
cc = ArangoVertex.new(body: {"Hello" => "World!!!"}).create
|
39
|
+
myDocument = @myEdge.update body: {"_to" => cc.id}
|
40
|
+
expect(myDocument.body["_to"]).to eq cc.id
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context "#destroy" do
|
45
|
+
it "delete a Document" do
|
46
|
+
result = @myEdge.destroy
|
47
|
+
expect(result).to eq true
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|