riak-record 0.0.4 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,102 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- class ExampleA < RiakRecord
4
- bucket_name 'example_a'
5
- record_attributes :attribute1, :attribute2
6
- end
7
-
8
- class ExampleB < RiakRecord
9
- bucket_name 'example_b'
10
- end
11
-
12
- describe "RiakRecord" do
13
- it "should set the bucket name on each instance of RiakRecord class" do
14
- expect(ExampleA.bucket_name).to eq('example_a')
15
- expect(ExampleB.bucket_name).to eq('example_b')
16
- end
17
-
18
- it "should share a client among all classes" do
19
- expect(ExampleA.client).to_not eq(nil)
20
- expect(ExampleA.client).to eq(ExampleB.client)
21
- end
22
-
23
- describe "new" do
24
- context "when passed in an RObject" do
25
- let(:robject) { Riak::RObject.new("a-key") }
26
- let(:record) { ExampleA.new(robject) }
27
- it "should wrap it" do
28
- expect(record.riak_object).to eq(robject)
29
- expect(record).to be_a(ExampleA)
30
- end
31
- end
32
- context "when passed in a string" do
33
- let(:key) { 'judy' }
34
- let(:record) { ExampleA.new(key) }
35
- it "should create an RObject with that id" do
36
- expect(record).to be_a(ExampleA)
37
- expect(record.riak_object).to be_a(Riak::RObject)
38
- expect(record.riak_object.key).to eq(key)
39
- end
40
- end
41
- context "when passed in nil" do
42
- let(:record) { ExampleA.new() }
43
- it "should create an RObject with no id" do
44
- expect(record).to be_a(ExampleA)
45
- expect(record.riak_object).to be_a(Riak::RObject)
46
- end
47
- end
48
- end
49
-
50
- describe "find" do
51
- let(:bucket){ double }
52
- let(:array){ Array.new }
53
- before :each do
54
- allow(ExampleA).to receive(:bucket).and_return(bucket)
55
- end
56
-
57
- it "should take an array and return an array" do
58
- expect(bucket).to receive(:get_many).with(array).and_return([])
59
- ExampleA.find(array)
60
- end
61
-
62
- it "should take a string and return nil if not found" do
63
- e = Riak::FailedRequest.new("not found")
64
- allow(e).to receive(:not_found?).and_return(true)
65
- allow(bucket).to receive(:get).with("a-key").and_raise(e)
66
- expect( ExampleA.find("a-key") ).to be_nil
67
- end
68
-
69
- it "should take a string and return an instance of Example" do
70
- allow(bucket).to receive(:get).with("a-key").and_return(Riak::RObject.new("a-key"))
71
- expect( ExampleA.find("a-key") ).to be_an_instance_of(ExampleA)
72
- end
73
- end
74
-
75
- describe "record_attributes" do
76
- let(:riak_object) { Riak::RObject.new("obj").tap{|r| r.data = data } }
77
- let(:data) { {:attribute1 => "1"} }
78
- let(:record) { ExampleA.new(riak_object) }
79
- it "should read and write each attribute" do
80
- expect{
81
- record.attribute1=('b')
82
- }.to change{record.attribute1}.from("1").to('b')
83
-
84
- expect{
85
- record.attribute2 = 'c'
86
- }.to change{record.attribute2}.from(nil).to('c')
87
-
88
- end
89
-
90
- it "should return attribute from riak_object data" do
91
- expect( ExampleA.new(riak_object).attribute1 ).to eq("1")
92
- end
93
-
94
- end
95
-
96
- describe "namespacing buckets" do
97
- it "should prepend namespace to bucket name" do
98
- RiakRecord.namespace = "namespace_test"
99
- expect(ExampleA.bucket_name).to eq("namespace_test:-:example_a")
100
- end
101
- end
102
- end