test/unit/importing_test.rb in elasticsearch-model-0.1.7 vs test/unit/importing_test.rb in elasticsearch-model-0.1.8
- old
+ new
@@ -42,10 +42,11 @@
client.expects(:bulk).returns({'items' => []})
DummyImportingModel.expects(:client).returns(client)
DummyImportingModel.expects(:index_name).returns('foo')
DummyImportingModel.expects(:document_type).returns('foo')
+ DummyImportingModel.stubs(:index_exists?).returns(true)
DummyImportingModel.stubs(:__batch_to_bulk)
assert_equal 0, DummyImportingModel.import
end
should "return the number of errors" do
@@ -59,10 +60,11 @@
client.expects(:bulk).returns({'items' => [ {'index' => {}}, {'index' => {'error' => 'FAILED'}} ]})
DummyImportingModel.stubs(:client).returns(client)
DummyImportingModel.stubs(:index_name).returns('foo')
DummyImportingModel.stubs(:document_type).returns('foo')
+ DummyImportingModel.stubs(:index_exists?).returns(true)
DummyImportingModel.stubs(:__batch_to_bulk)
assert_equal 1, DummyImportingModel.import
end
@@ -77,10 +79,11 @@
client.expects(:bulk).returns({'items' => [ {'index' => {}}, {'index' => {'error' => 'FAILED'}} ]})
DummyImportingModel.stubs(:client).returns(client)
DummyImportingModel.stubs(:index_name).returns('foo')
DummyImportingModel.stubs(:document_type).returns('foo')
+ DummyImportingModel.stubs(:index_exists?).returns(true)
DummyImportingModel.stubs(:__batch_to_bulk)
assert_equal [{'index' => {'error' => 'FAILED'}}], DummyImportingModel.import(return: 'errors')
end
@@ -95,33 +98,54 @@
client.expects(:bulk).returns({'items' => [ {'index' => {}}, {'index' => {'error' => 'FAILED'}} ]})
DummyImportingModel.stubs(:client).returns(client)
DummyImportingModel.stubs(:index_name).returns('foo')
DummyImportingModel.stubs(:document_type).returns('foo')
+ DummyImportingModel.stubs(:index_exists?).returns(true)
DummyImportingModel.stubs(:__batch_to_bulk)
DummyImportingModel.import do |response|
assert_equal 2, response['items'].size
end
end
- should "delete and create the index with the force option" do
- DummyImportingModel.expects(:__find_in_batches).with do |options|
- assert_equal 'bar', options[:foo]
- assert_nil options[:force]
- true
- end
+ context "when the index does not exist" do
+ should "raise an exception" do
+ Elasticsearch::Model::Adapter.expects(:from_class)
+ .with(DummyImportingModel)
+ .returns(DummyImportingAdapter)
- DummyImportingModel.expects(:create_index!).with do |options|
- assert_equal true, options[:force]
- true
+ DummyImportingModel.__send__ :include, Elasticsearch::Model::Importing
+
+ DummyImportingModel.expects(:index_name).returns('foo')
+ DummyImportingModel.expects(:document_type).returns('foo')
+ DummyImportingModel.expects(:index_exists?).returns(false)
+
+ assert_raise ArgumentError do
+ DummyImportingModel.import
+ end
end
+ end
- DummyImportingModel.expects(:index_name).returns('foo')
- DummyImportingModel.expects(:document_type).returns('foo')
+ context "with the force option" do
+ should "delete and create the index" do
+ DummyImportingModel.expects(:__find_in_batches).with do |options|
+ assert_equal 'bar', options[:foo]
+ assert_nil options[:force]
+ true
+ end
- DummyImportingModel.import force: true, foo: 'bar'
+ DummyImportingModel.expects(:create_index!).with do |options|
+ assert_equal true, options[:force]
+ true
+ end
+
+ DummyImportingModel.expects(:index_name).returns('foo')
+ DummyImportingModel.expects(:document_type).returns('foo')
+
+ DummyImportingModel.import force: true, foo: 'bar'
+ end
end
should "allow passing a different index / type" do
Elasticsearch::Model::Adapter.expects(:from_class)
.with(DummyImportingModel)
@@ -139,20 +163,22 @@
true
end
.returns({'items' => [ {'index' => {} }]})
DummyImportingModel.stubs(:client).returns(client)
+ DummyImportingModel.stubs(:index_exists?).returns(true)
DummyImportingModel.stubs(:__batch_to_bulk)
DummyImportingModel.import index: 'my-new-index', type: 'my-other-type'
end
should "use the default transform from adapter" do
client = mock('client', bulk: {'items' => []})
transform = lambda {|a|}
DummyImportingModel.stubs(:client).returns(client)
+ DummyImportingModel.stubs(:index_exists?).returns(true)
DummyImportingModel.expects(:__transform).returns(transform)
DummyImportingModel.expects(:__batch_to_bulk).with(anything, transform)
DummyImportingModel.import index: 'foo', type: 'bar'
end
@@ -160,9 +186,10 @@
should "use the transformer from options" do
client = mock('client', bulk: {'items' => []})
transform = lambda {|a|}
DummyImportingModel.stubs(:client).returns(client)
+ DummyImportingModel.stubs(:index_exists?).returns(true)
DummyImportingModel.expects(:__batch_to_bulk).with(anything, transform)
DummyImportingModel.import index: 'foo', type: 'bar', transform: transform
end