@@ -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,49 @@ 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" do
113
+ Elasticsearch ::Model ::Adapter . expects ( :from_class )
114
+ . with ( DummyImportingModel )
115
+ . returns ( DummyImportingAdapter )
116
+
117
+ DummyImportingModel . __send__ :include , Elasticsearch ::Model ::Importing
113
118
114
- DummyImportingModel . expects ( :create_index! ) . with do |options |
115
- assert_equal true , options [ :force ]
116
- true
119
+ DummyImportingModel . expects ( :index_name ) . returns ( 'foo' )
120
+ DummyImportingModel . expects ( :document_type ) . returns ( 'foo' )
121
+ DummyImportingModel . expects ( :index_exists? ) . returns ( false )
122
+ assert_raise ArgumentError do
123
+ DummyImportingModel . import
124
+ end
117
125
end
126
+ end
118
127
119
- DummyImportingModel . expects ( :index_name ) . returns ( 'foo' )
120
- DummyImportingModel . expects ( :document_type ) . returns ( 'foo' )
128
+ context "with the force option" do
129
+ should "delete and create the index" do
130
+ DummyImportingModel . expects ( :__find_in_batches ) . with do |options |
131
+ assert_equal 'bar' , options [ :foo ]
132
+ assert_nil options [ :force ]
133
+ true
134
+ end
135
+
136
+ DummyImportingModel . expects ( :create_index! ) . with do |options |
137
+ assert_equal true , options [ :force ]
138
+ true
139
+ end
121
140
122
- DummyImportingModel . import force : true , foo : 'bar'
141
+ DummyImportingModel . expects ( :index_name ) . returns ( 'foo' )
142
+ DummyImportingModel . expects ( :document_type ) . returns ( 'foo' )
143
+
144
+ DummyImportingModel . import force : true , foo : 'bar'
145
+ end
123
146
end
124
147
125
148
should "allow passing a different index / type" do
@@ -141,6 +164,7 @@ def importing_mixin
141
164
. returns ( { 'items' => [ { 'index' => { } } ] } )
142
165
143
166
DummyImportingModel . stubs ( :client ) . returns ( client )
167
+ DummyImportingModel . stubs ( :index_exists? ) . returns ( true )
144
168
DummyImportingModel . stubs ( :__batch_to_bulk )
145
169
146
170
DummyImportingModel . import index : 'my-new-index' , type : 'my-other-type'
@@ -151,6 +175,7 @@ def importing_mixin
151
175
transform = lambda { |a |}
152
176
153
177
DummyImportingModel . stubs ( :client ) . returns ( client )
178
+ DummyImportingModel . stubs ( :index_exists? ) . returns ( true )
154
179
DummyImportingModel . expects ( :__transform ) . returns ( transform )
155
180
DummyImportingModel . expects ( :__batch_to_bulk ) . with ( anything , transform )
156
181
@@ -162,6 +187,7 @@ def importing_mixin
162
187
transform = lambda { |a |}
163
188
164
189
DummyImportingModel . stubs ( :client ) . returns ( client )
190
+ DummyImportingModel . stubs ( :index_exists? ) . returns ( true )
165
191
DummyImportingModel . expects ( :__batch_to_bulk ) . with ( anything , transform )
166
192
167
193
DummyImportingModel . import index : 'foo' , type : 'bar' , transform : transform
0 commit comments