102 lines
3.5 KiB
Elixir
102 lines
3.5 KiB
Elixir
|
defmodule Mobilizon.Federation.ActivityStream.Converter.EventMetadataTest do
|
||
|
@moduledoc """
|
||
|
Module to test converting from EventMetadata to AS
|
||
|
"""
|
||
|
use Mobilizon.DataCase
|
||
|
import Mobilizon.Factory
|
||
|
alias Mobilizon.Events.EventMetadata
|
||
|
alias Mobilizon.Federation.ActivityStream.Converter.EventMetadata, as: EventMetadataConverter
|
||
|
|
||
|
@property_value "PropertyValue"
|
||
|
|
||
|
describe "metadata_to_as/1" do
|
||
|
test "convert a simple metadata" do
|
||
|
%EventMetadata{} = metadata = build(:event_metadata)
|
||
|
|
||
|
assert %{"propertyID" => metadata.key, "value" => metadata.value, "type" => @property_value} ==
|
||
|
EventMetadataConverter.metadata_to_as(metadata)
|
||
|
end
|
||
|
|
||
|
test "convert a boolean" do
|
||
|
%EventMetadata{} = metadata = build(:event_metadata, type: :boolean, value: "false")
|
||
|
|
||
|
assert %{"propertyID" => metadata.key, "value" => false, "type" => @property_value} ==
|
||
|
EventMetadataConverter.metadata_to_as(metadata)
|
||
|
end
|
||
|
|
||
|
test "convert an integer" do
|
||
|
%EventMetadata{} = metadata = build(:event_metadata, type: :integer, value: "36")
|
||
|
|
||
|
assert %{"propertyID" => metadata.key, "value" => 36, "type" => @property_value} ==
|
||
|
EventMetadataConverter.metadata_to_as(metadata)
|
||
|
end
|
||
|
|
||
|
test "convert a float" do
|
||
|
%EventMetadata{} = metadata = build(:event_metadata, type: :float, value: "36.53")
|
||
|
|
||
|
assert %{"propertyID" => metadata.key, "value" => 36.53, "type" => @property_value} ==
|
||
|
EventMetadataConverter.metadata_to_as(metadata)
|
||
|
end
|
||
|
|
||
|
test "convert custom metadata with title" do
|
||
|
%EventMetadata{} = metadata = build(:event_metadata, title: "hello")
|
||
|
|
||
|
assert %{
|
||
|
"propertyID" => metadata.key,
|
||
|
"value" => metadata.value,
|
||
|
"name" => "hello",
|
||
|
"type" => @property_value
|
||
|
} ==
|
||
|
EventMetadataConverter.metadata_to_as(metadata)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe "as_to_metadata/1" do
|
||
|
test "parse a simple metadata" do
|
||
|
assert %{key: "somekey", value: "somevalue", type: :string} ==
|
||
|
EventMetadataConverter.as_to_metadata(%{
|
||
|
"propertyID" => "somekey",
|
||
|
"value" => "somevalue",
|
||
|
"type" => @property_value
|
||
|
})
|
||
|
end
|
||
|
|
||
|
test "parse a boolean metadata" do
|
||
|
assert %{key: "somekey", value: "false", type: :boolean} ==
|
||
|
EventMetadataConverter.as_to_metadata(%{
|
||
|
"propertyID" => "somekey",
|
||
|
"value" => false,
|
||
|
"type" => @property_value
|
||
|
})
|
||
|
end
|
||
|
|
||
|
test "parse an integer metadata" do
|
||
|
assert %{key: "somekey", value: "4", type: :integer} ==
|
||
|
EventMetadataConverter.as_to_metadata(%{
|
||
|
"propertyID" => "somekey",
|
||
|
"value" => 4,
|
||
|
"type" => @property_value
|
||
|
})
|
||
|
end
|
||
|
|
||
|
test "parse a float metadata" do
|
||
|
assert %{key: "somekey", value: "4.36", type: :float} ==
|
||
|
EventMetadataConverter.as_to_metadata(%{
|
||
|
"propertyID" => "somekey",
|
||
|
"value" => 4.36,
|
||
|
"type" => @property_value
|
||
|
})
|
||
|
end
|
||
|
|
||
|
test "parse a custom metadata with title" do
|
||
|
assert %{key: "somekey", value: "somevalue", type: :string, title: "title"} ==
|
||
|
EventMetadataConverter.as_to_metadata(%{
|
||
|
"propertyID" => "somekey",
|
||
|
"value" => "somevalue",
|
||
|
"name" => "title",
|
||
|
"type" => @property_value
|
||
|
})
|
||
|
end
|
||
|
end
|
||
|
end
|