+
+ test "fetch statuses in a context using the conversation id" do
+ {:ok, user} = UserBuilder.insert()
+ {:ok, activity} = ActivityBuilder.insert(%{"statusnetConversationId" => 1, "context" => "2hu"})
+ {:ok, activity_two} = ActivityBuilder.insert(%{"statusnetConversationId" => 1,"context" => "2hu"})
+ {:ok, _activity_three} = ActivityBuilder.insert(%{"context" => "3hu"})
+
+ statuses = TwitterAPI.fetch_conversation(user, 1)
+
+ assert length(statuses) == 2
+ assert Enum.at(statuses, 0)["id"] == activity.id
+ assert Enum.at(statuses, 1)["id"] == activity_two.id
+ end
+
+ test "upload a file" do
+ file = %Plug.Upload{content_type: "image/jpg", path: Path.absname("test/fixtures/image.jpg"), filename: "an_image.jpg"}
+
+ response = TwitterAPI.upload(file)
+
+ assert is_binary(response)
+ end
+
+ test "it can parse mentions and return the relevant users" do
+ text = "@gsimg According to @archaeme , that is @daggsy."
+
+ {:ok, gsimg} = UserBuilder.insert(%{nickname: "gsimg"})
+ {:ok, archaeme} = UserBuilder.insert(%{nickname: "archaeme"})
+
+ expected_result = [
+ {"@gsimg", gsimg},
+ {"@archaeme", archaeme}
+ ]
+
+ assert TwitterAPI.parse_mentions(text) == expected_result
+ end
+
+ test "it adds user links to an existing text" do
+ text = "@gsimg According to @archaeme , that is @daggsy."
+
+ {:ok, _gsimg} = UserBuilder.insert(%{nickname: "gsimg", ap_id: "first_link" })
+ {:ok, _archaeme} = UserBuilder.insert(%{nickname: "archaeme", ap_id: "second_link"})
+
+ mentions = TwitterAPI.parse_mentions(text)
+ expected_text = "<a href='first_link'>@gsimg</a> According to <a href='second_link'>@archaeme</a> , that is @daggsy."
+
+ assert TwitterAPI.add_user_links(text, mentions) == expected_text
+ end