aboutsummaryrefslogtreecommitdiff
path: root/test/zendex
diff options
context:
space:
mode:
Diffstat (limited to 'test/zendex')
-rw-r--r--test/zendex/search_test.exs29
-rw-r--r--test/zendex/ticket_test.exs36
-rw-r--r--test/zendex/user_test.exs73
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