Skip to content

Commit caecfa9

Browse files
committed
[STORE] Changed that the Store methods reflect that klass returns a Ruby class, not a string
1 parent 0989784 commit caecfa9

File tree

2 files changed

+19
-14
lines changed

2 files changed

+19
-14
lines changed

elasticsearch-persistence/lib/elasticsearch/persistence/repository/store.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@ module Store
66
def save(document, options={})
77
serialized = serialize(document)
88
id = __get_id_from_document(serialized)
9-
type = klass || __get_type_from_class(document.class)
9+
type = __get_type_from_class(klass || document.class)
1010
client.index( { index: index_name, type: type, id: id, body: serialized }.merge(options) )
1111
end
1212

1313
def delete(document, options={})
1414
if document.is_a?(String) || document.is_a?(Integer)
1515
id = document
16-
type = klass
16+
type = __get_type_from_class(klass)
1717
else
1818
serialized = serialize(document)
1919
id = __get_id_from_document(serialized)
20-
type = klass || __get_type_from_class(document.class)
20+
type = __get_type_from_class(klass || document.class)
2121
end
2222
client.delete( { index: index_name, type: type, id: id }.merge(options) )
2323
end

elasticsearch-persistence/test/unit/repository_store_test.rb

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,13 @@ class MyDocument; end
1212
context "save" do
1313
should "serialize the document, get type from klass and index it" do
1414
subject.expects(:serialize).returns({foo: 'bar'})
15-
subject.expects(:klass).returns('foo_type')
15+
subject.expects(:klass).at_least_once.returns(MyDocument)
16+
subject.expects(:__get_type_from_class).with(MyDocument).at_least_once.returns('my_document')
1617
subject.expects(:__get_id_from_document).returns('1')
1718

1819
client = mock
1920
client.expects(:index).with do |arguments|
20-
assert_equal 'foo_type', arguments[:type]
21+
assert_equal 'my_document', arguments[:type]
2122
assert_equal '1', arguments[:id]
2223
assert_equal({foo: 'bar'}, arguments[:body])
2324
end
@@ -28,7 +29,7 @@ class MyDocument; end
2829

2930
should "serialize the document, get type from document class and index it" do
3031
subject.expects(:serialize).returns({foo: 'bar'})
31-
subject.expects(:klass).returns(nil)
32+
subject.expects(:klass).at_least_once.returns(nil)
3233
subject.expects(:__get_type_from_class).with(MyDocument).returns('my_document')
3334
subject.expects(:__get_id_from_document).returns('1')
3435

@@ -45,7 +46,8 @@ class MyDocument; end
4546

4647
should "pass the options to the client" do
4748
subject.expects(:serialize).returns({foo: 'bar'})
48-
subject.expects(:klass).returns('foo')
49+
subject.expects(:klass).at_least_once.returns(MyDocument)
50+
subject.expects(:__get_type_from_class).with(MyDocument).returns('my_document')
4951
subject.expects(:__get_id_from_document).returns('1')
5052

5153
client = mock
@@ -62,12 +64,13 @@ class MyDocument; end
6264
context "delete" do
6365
should "get type from klass when passed only ID" do
6466
subject.expects(:serialize).never
65-
subject.expects(:klass).returns('foo_type')
67+
subject.expects(:klass).at_least_once.returns(MyDocument)
68+
subject.expects(:__get_type_from_class).with(MyDocument).returns('my_document')
6669
subject.expects(:__get_id_from_document).never
6770

6871
client = mock
6972
client.expects(:delete).with do |arguments|
70-
assert_equal 'foo_type', arguments[:type]
73+
assert_equal 'my_document', arguments[:type]
7174
assert_equal '1', arguments[:id]
7275
end
7376
subject.expects(:client).returns(client)
@@ -77,12 +80,13 @@ class MyDocument; end
7780

7881
should "get ID from document and type from klass when passed a document" do
7982
subject.expects(:serialize).returns({id: '1', foo: 'bar'})
80-
subject.expects(:klass).returns('foo_type')
83+
subject.expects(:klass).at_least_once.returns(MyDocument)
84+
subject.expects(:__get_type_from_class).with(MyDocument).returns('my_document')
8185
subject.expects(:__get_id_from_document).with({id: '1', foo: 'bar'}).returns('1')
8286

8387
client = mock
8488
client.expects(:delete).with do |arguments|
85-
assert_equal 'foo_type', arguments[:type]
89+
assert_equal 'my_document', arguments[:type]
8690
assert_equal '1', arguments[:id]
8791
end
8892
subject.expects(:client).returns(client)
@@ -92,9 +96,9 @@ class MyDocument; end
9296

9397
should "get ID and type from document when passed a document" do
9498
subject.expects(:serialize).returns({id: '1', foo: 'bar'})
95-
subject.expects(:klass).returns(nil)
96-
subject.expects(:__get_id_from_document).with({id: '1', foo: 'bar'}).returns('1')
99+
subject.expects(:klass).at_least_once.returns(nil)
97100
subject.expects(:__get_type_from_class).with(MyDocument).returns('my_document')
101+
subject.expects(:__get_id_from_document).with({id: '1', foo: 'bar'}).returns('1')
98102

99103
client = mock
100104
client.expects(:delete).with do |arguments|
@@ -107,7 +111,8 @@ class MyDocument; end
107111
end
108112

109113
should "pass the options to the client" do
110-
subject.expects(:klass).returns('foo')
114+
subject.expects(:klass).at_least_once.returns(MyDocument)
115+
subject.expects(:__get_type_from_class).returns('my_document')
111116

112117
client = mock
113118
client.expects(:delete).with do |arguments|

0 commit comments

Comments
 (0)