@@ -44,6 +44,7 @@ def importing_mixin
44
44
DummyImportingModel . expects ( :client ) . returns ( client )
45
45
DummyImportingModel . expects ( :index_name ) . returns ( 'foo' )
46
46
DummyImportingModel . expects ( :document_type ) . returns ( 'foo' )
47
+ DummyImportingModel . stubs ( :index_exists? ) . returns ( true )
47
48
DummyImportingModel . stubs ( :__batch_to_bulk )
48
49
assert_equal 0 , DummyImportingModel . import
49
50
end
@@ -61,6 +62,7 @@ def importing_mixin
61
62
DummyImportingModel . stubs ( :client ) . returns ( client )
62
63
DummyImportingModel . stubs ( :index_name ) . returns ( 'foo' )
63
64
DummyImportingModel . stubs ( :document_type ) . returns ( 'foo' )
65
+ DummyImportingModel . stubs ( :index_exists? ) . returns ( true )
64
66
DummyImportingModel . stubs ( :__batch_to_bulk )
65
67
66
68
assert_equal 1 , DummyImportingModel . import
@@ -79,6 +81,7 @@ def importing_mixin
79
81
DummyImportingModel . stubs ( :client ) . returns ( client )
80
82
DummyImportingModel . stubs ( :index_name ) . returns ( 'foo' )
81
83
DummyImportingModel . stubs ( :document_type ) . returns ( 'foo' )
84
+ DummyImportingModel . stubs ( :index_exists? ) . returns ( true )
82
85
DummyImportingModel . stubs ( :__batch_to_bulk )
83
86
84
87
assert_equal [ { 'index' => { 'error' => 'FAILED' } } ] , DummyImportingModel . import ( return : 'errors' )
@@ -97,29 +100,50 @@ def importing_mixin
97
100
DummyImportingModel . stubs ( :client ) . returns ( client )
98
101
DummyImportingModel . stubs ( :index_name ) . returns ( 'foo' )
99
102
DummyImportingModel . stubs ( :document_type ) . returns ( 'foo' )
103
+ DummyImportingModel . stubs ( :index_exists? ) . returns ( true )
100
104
DummyImportingModel . stubs ( :__batch_to_bulk )
101
105
102
106
DummyImportingModel . import do |response |
103
107
assert_equal 2 , response [ 'items' ] . size
104
108
end
105
109
end
106
110
107
- should "delete and create the index with the force option" do
108
- DummyImportingModel . expects ( :__find_in_batches ) . with do |options |
109
- assert_equal 'bar' , options [ :foo ]
110
- assert_nil options [ :force ]
111
- true
112
- end
111
+ context "when the index does not exist" do
112
+ should "raise an exception" do
113
+ Elasticsearch ::Model ::Adapter . expects ( :from_class )
114
+ . with ( DummyImportingModel )
115
+ . returns ( DummyImportingAdapter )
116
+
117
+ DummyImportingModel . __send__ :include , Elasticsearch ::Model ::Importing
118
+
119
+ DummyImportingModel . expects ( :index_name ) . returns ( 'foo' )
120
+ DummyImportingModel . expects ( :document_type ) . returns ( 'foo' )
121
+ DummyImportingModel . expects ( :index_exists? ) . returns ( false )
113
122
114
- DummyImportingModel . expects ( :create_index! ) . with do | options |
115
- assert_equal true , options [ :force ]
116
- true
123
+ assert_raise ArgumentError do
124
+ DummyImportingModel . import
125
+ end
117
126
end
127
+ end
118
128
119
- DummyImportingModel . expects ( :index_name ) . returns ( 'foo' )
120
- DummyImportingModel . expects ( :document_type ) . returns ( 'foo' )
129
+ context "with the force option" do
130
+ should "delete and create the index" do
131
+ DummyImportingModel . expects ( :__find_in_batches ) . with do |options |
132
+ assert_equal 'bar' , options [ :foo ]
133
+ assert_nil options [ :force ]
134
+ true
135
+ end
136
+
137
+ DummyImportingModel . expects ( :create_index! ) . with do |options |
138
+ assert_equal true , options [ :force ]
139
+ true
140
+ end
141
+
142
+ DummyImportingModel . expects ( :index_name ) . returns ( 'foo' )
143
+ DummyImportingModel . expects ( :document_type ) . returns ( 'foo' )
121
144
122
- DummyImportingModel . import force : true , foo : 'bar'
145
+ DummyImportingModel . import force : true , foo : 'bar'
146
+ end
123
147
end
124
148
125
149
should "allow passing a different index / type" do
@@ -141,6 +165,7 @@ def importing_mixin
141
165
. returns ( { 'items' => [ { 'index' => { } } ] } )
142
166
143
167
DummyImportingModel . stubs ( :client ) . returns ( client )
168
+ DummyImportingModel . stubs ( :index_exists? ) . returns ( true )
144
169
DummyImportingModel . stubs ( :__batch_to_bulk )
145
170
146
171
DummyImportingModel . import index : 'my-new-index' , type : 'my-other-type'
@@ -151,6 +176,7 @@ def importing_mixin
151
176
transform = lambda { |a |}
152
177
153
178
DummyImportingModel . stubs ( :client ) . returns ( client )
179
+ DummyImportingModel . stubs ( :index_exists? ) . returns ( true )
154
180
DummyImportingModel . expects ( :__transform ) . returns ( transform )
155
181
DummyImportingModel . expects ( :__batch_to_bulk ) . with ( anything , transform )
156
182
@@ -162,6 +188,7 @@ def importing_mixin
162
188
transform = lambda { |a |}
163
189
164
190
DummyImportingModel . stubs ( :client ) . returns ( client )
191
+ DummyImportingModel . stubs ( :index_exists? ) . returns ( true )
165
192
DummyImportingModel . expects ( :__batch_to_bulk ) . with ( anything , transform )
166
193
167
194
DummyImportingModel . import index : 'foo' , type : 'bar' , transform : transform
0 commit comments