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