diff options
Diffstat (limited to 'test/zendex')
-rw-r--r-- | test/zendex/search_test.exs | 29 | ||||
-rw-r--r-- | test/zendex/ticket_test.exs | 36 | ||||
-rw-r--r-- | test/zendex/user_test.exs | 73 |
3 files changed, 109 insertions, 29 deletions
diff --git a/test/zendex/search_test.exs b/test/zendex/search_test.exs index a7102b6..bb1f358 100644 --- a/test/zendex/search_test.exs +++ b/test/zendex/search_test.exs @@ -1,23 +1,38 @@ defmodule Zendex.SearchTest do - use ExUnit.Case, async: true + use ExUnit.Case, async: false setup do - [conn: Zendex.Connection.setup("http://test.zendesk.com", "User", "Passw")] + %{conn: Zendex.Connection.setup("http://test.zendesk.com", "User", "Passw")} end - test "doing a search", context do + setup_all do + :meck.new(HTTPoison) + on_exit fn -> :meck.unload end + :ok + end + + test "doing a search", %{conn: conn} do expected = ["Jimbob Ticket 1", "Jimbob Ticket 2"] - actual = Zendex.Search.query(context[:conn], - %{type: "ticket", requester: "Jimbob"}) + stub = fn("http://test.zendesk.com/api/v2/search.json?query=requester%3AJimbob+type%3Aticket", _headers) -> + %HTTPoison.Response{body: Poison.encode!(expected)} + end + :meck.expect(HTTPoison, :get!, stub) + + actual = Zendex.Search.query(conn, %{type: "ticket", requester: "Jimbob"}) assert actual == expected end - test "doing a search with sorting", context do + test "doing a search with sorting", %{conn: conn} do expected = ["Reginald Ticket 1", "Reginald Ticket 2"] - actual = Zendex.Search.query(context[:conn], + stub = fn("http://test.zendesk.com/api/v2/search.json?query=requester%3AReginald+type%3Aticket&sort_by=created_at&sort_order=desc", _headers) -> + %HTTPoison.Response{body: Poison.encode!(expected)} + end + :meck.expect(HTTPoison, :get!, stub) + + actual = Zendex.Search.query(conn, %{type: "ticket", requester: "Reginald"}, "created_at", "desc") diff --git a/test/zendex/ticket_test.exs b/test/zendex/ticket_test.exs index 6bc4436..2b5a3ce 100644 --- a/test/zendex/ticket_test.exs +++ b/test/zendex/ticket_test.exs @@ -1,16 +1,38 @@ defmodule Zendex.TicketTest do - use ExUnit.Case, async: true + use ExUnit.Case, async: false setup do - [conn: Zendex.Connection.setup("http://test.zendesk.com", "User", "Passw")] + %{conn: Zendex.Connection.setup("http://test.zendesk.com", "User", "Passw")} end - test "getting tickets", context do - assert "ticket" == Zendex.Ticket.list(context[:conn]) + setup_all do + :meck.new(HTTPoison) + on_exit fn -> :meck.unload end + :ok end - test "creating a ticket", context do - assert "Ticket created successfully!" == - Zendex.Ticket.create(context[:conn], %{"ticket": %{}}) + test "getting tickets", %{conn: conn} do + expected = "ticket" + + stub = fn("http://test.zendesk.com/api/v2/tickets.json", _headers) -> + %HTTPoison.Response{body: Poison.encode!(expected)} + end + :meck.expect(HTTPoison, :get!, stub) + + assert expected == Zendex.Ticket.list(conn) + end + + test "creating a ticket", %{conn: conn} do + expected = "Ticket created successfully!" + + stub = fn("http://test.zendesk.com/api/v2/tickets.json", + "{\"ticket\":{\"title\":\"HELP!\"}}", + _headers) -> + %HTTPoison.Response{body: Poison.encode!(expected)} + end + :meck.expect(HTTPoison, :post!, stub) + + assert expected == + Zendex.Ticket.create(conn, %{"ticket": %{"title": "HELP!"}}) end end diff --git a/test/zendex/user_test.exs b/test/zendex/user_test.exs index f61ef13..a1cee50 100644 --- a/test/zendex/user_test.exs +++ b/test/zendex/user_test.exs @@ -1,20 +1,32 @@ defmodule Zendex.UserTest do - use ExUnit.Case, async: true + use ExUnit.Case, async: false - doctest Zendex.User + @base_url "http://test.zendesk.com" setup do - [conn: Zendex.Connection.setup("http://test.zendesk.com", "User1", "pass")] + %{conn: Zendex.Connection.setup("http://test.zendesk.com", "User", "Passw")} end - test "list users", context do + setup_all do + :meck.new(HTTPoison) + on_exit fn -> :meck.unload end + :ok + end + + test "list users", %{conn: conn} do expected = "users" - actual = Zendex.User.list(context[:conn]) + + stub = fn("#{@base_url}/api/v2/users.json", _) -> + %HTTPoison.Response{body: Poison.encode!(expected)} + end + :meck.expect(HTTPoison, :get!, stub) + + actual = Zendex.User.list(conn) assert expected == actual end - test "showing a user", context do + test "showing a user", %{conn: conn} do expected = %{"user" => %{"ticket_restriction" => nil, "chat_only" => false, "shared_phone_number" => nil, @@ -49,20 +61,32 @@ defmodule Zendex.UserTest do "user_fields" => %{"customer_complaint" => nil}, "tags" => [], "updated_at" => "2016-10-28T21:08:23Z"}} - actual = Zendex.User.show(context[:conn], 295204) + + stub = fn("#{@base_url}/api/v2/users/295204.json", _) -> + %HTTPoison.Response{body: Poison.encode!(expected)} + end + :meck.expect(HTTPoison, :get!, stub) + + actual = Zendex.User.show(conn, 295204) assert expected == actual end - test "showing many users", context do + test "showing many users", %{conn: conn} do expected = %{"users" => [%{"id" => 6, "name" => "Kiki Segal"}, %{"id" => 67, "name" => "Sarpedon Baumgartner"}]} - actual = Zendex.User.show_many(context[:conn], [6,67]) + + stub = fn("#{@base_url}/api/v2/users/show_many.json?ids=6,67", _) -> + %HTTPoison.Response{body: Poison.encode!(expected)} + end + :meck.expect(HTTPoison, :get!, stub) + + actual = Zendex.User.show_many(conn, [6,67]) assert expected == actual end - test "getting related info on a user", context do + test "getting related info on a user", %{conn: conn} do expected = %{"user_related" => %{"assigned_tickets" => 12, "ccd_tickets" => 5, "entry_subscriptions" => 1, @@ -73,19 +97,32 @@ defmodule Zendex.UserTest do "topic_comments" => 116, "topics" => 5, "votes" => 2001}} - actual = Zendex.User.related_information(context[:conn], 649267) + + stub = fn("#{@base_url}/api/v2/users/649267/related.json", _) -> + %HTTPoison.Response{body: Poison.encode!(expected)} + end + :meck.expect(HTTPoison, :get!, stub) + + actual = Zendex.User.related_information(conn, 649267) assert expected == actual end - test "creating a user", context do + test "creating a user", %{conn: conn} do expected = %{"user" => %{"id" => 1234, "name" => "Roger", "email" => "roger@dodger.com"}} - actual = Zendex.User.create(context[:conn], %{user: %{name: "Roger", email: "roger@dodger.com"}}) + + stub = fn("#{@base_url}/api/v2/users.json", _, _) -> + %HTTPoison.Response{body: Poison.encode!(expected)} + end + :meck.expect(HTTPoison, :post!, stub) + + + actual = Zendex.User.create(conn, %{user: %{name: "Roger", email: "roger@dodger.com"}}) assert expected == actual end - test "deleting a user", context do + test "deleting a user", %{conn: conn} do expected = %{"user" => %{"ticket_restriction" => nil, "chat_only" => false, "shared_phone_number" => nil, @@ -120,7 +157,13 @@ defmodule Zendex.UserTest do "user_fields" => %{"customer_complaint" => nil}, "tags" => [], "updated_at" => "2016-10-28T21:08:23Z"}} - actual = Zendex.User.delete(context[:conn], 49043) + + stub = fn("#{@base_url}/api/v2/users/49043.json", _) -> + %HTTPoison.Response{body: Poison.encode!(expected)} + end + :meck.expect(HTTPoison, :delete!, stub) + + actual = Zendex.User.delete(conn, 49043) assert expected == actual end |