Current section
Files
Jump to
Current section
Files
test/orm/destroy_test.exs
defmodule Graveyard.ORM.DestroyTest do
use ExUnit.Case
alias Graveyard.Record
alias Graveyard.Support
alias Graveyard.Utils.TirexsUris
defmodule CustomMappings do
import Tirexs.Mapping
def get_mappings(index_name, type_name) do
index = [index: index_name, type: type_name]
mappings do
indexes "title", type: "text"
indexes "content", type: "text", analyzer: "nGram_analyzer"
end
end
end
setup_all do
Application.put_env(:tirexs, :uri, "http://localhost:9200")
Application.put_env(:graveyard, :index, "graveyard_test")
Application.put_env(:graveyard, :type, "graveyard_test")
Application.put_env(:graveyard, :mappings_module, CustomMappings)
:ok
end
describe "destroy/2" do
setup do
TirexsUris.delete_mapping()
Graveyard.Mappings.create_settings_and_mappings()
record = %{
"name" => "Henry",
"content" => "It's the godamn Men in Black!"
}
{:ok, 201, es_object} = Tirexs.HTTP.post("#{Support.index()}/#{Support.type()}", record)
[record: es_object]
end
test "deletes a document", %{record: record} do
object = Record.destroy(record._id)
assert {:error, 404, _} = Tirexs.HTTP.get("#{Support.index()}/#{Support.type()}/#{record._id}")
end
test "returns deleted document", %{record: record} do
deleted = Record.destroy(record._id)
assert deleted
assert deleted.id
assert deleted.id == record._id
end
test "return nil if record is not found", %{record: record} do
destroyed = Record.destroy(999)
refute destroyed
end
test "raise error if something fishy goes on", %{record: record} do
Application.put_env(:tirexs, :uri, "http://localhost:9201")
assert_raise Graveyard.Errors.NoElasticSearchInstance, fn() -> Record.destroy(record._id) end
end
end
end