# Pleroma: A lightweight social networking server
# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only

defmodule Pleroma.Web.TwitterAPI.Representers.ObjectReprenterTest do
  use Pleroma.DataCase

  alias Pleroma.Object
  alias Pleroma.Web.TwitterAPI.Representers.ObjectRepresenter

  test "represent an image attachment" do
    object = %Object{
      id: 5,
      data: %{
        "type" => "Image",
        "url" => [
          %{
            "mediaType" => "sometype",
            "href" => "someurl"
          }
        ],
        "uuid" => 6
      }
    }

    expected_object = %{
      id: 6,
      url: "someurl",
      mimetype: "sometype",
      oembed: false,
      description: nil
    }

    assert expected_object == ObjectRepresenter.to_map(object)
  end

  test "represents mastodon-style attachments" do
    object = %Object{
      id: nil,
      data: %{
        "mediaType" => "image/png",
        "name" => "blabla",
        "type" => "Document",
        "url" =>
          "http://mastodon.example.org/system/media_attachments/files/000/000/001/original/8619f31c6edec470.png"
      }
    }

    expected_object = %{
      url:
        "http://mastodon.example.org/system/media_attachments/files/000/000/001/original/8619f31c6edec470.png",
      mimetype: "image/png",
      oembed: false,
      id: nil,
      description: "blabla"
    }

    assert expected_object == ObjectRepresenter.to_map(object)
  end
end