From 9d6b8596d342215339e1c47245392b2e785f9cc4 Mon Sep 17 00:00:00 2001 From: Arnaldo Cesco Date: Tue, 23 Mar 2021 18:23:23 +0100 Subject: [PATCH] Map binaryblob base64 encoding test Signed-off-by: Arnaldo Cesco --- .../triggers/simple_events_encoder_test.exs | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/test/astarte_core/triggers/simple_events_encoder_test.exs b/test/astarte_core/triggers/simple_events_encoder_test.exs index 9d59825..41bb221 100644 --- a/test/astarte_core/triggers/simple_events_encoder_test.exs +++ b/test/astarte_core/triggers/simple_events_encoder_test.exs @@ -138,7 +138,7 @@ defmodule Astarte.Core.SimpleEventsEncoderTest do path = "/another/path" value = <<1, 2, 3, 230>> encoded_value = value |> Base.encode64() - bson_value = Cyanide.encode!(%{v: {0, value}}) + bson_value = Cyanide.encode!(%{v: %Cyanide.Binary{subtype: :generic, data: value}}) event = %IncomingDataEvent{ interface: interface, @@ -158,6 +158,37 @@ defmodule Astarte.Core.SimpleEventsEncoderTest do } end + test "works for IncomingDataEvent with map binaryblob bson_value" do + alias Astarte.Core.Triggers.SimpleEvents.IncomingDataEvent + + interface = "com.example.Interface" + path = "/another/path" + value = <<1, 2, 3, 230>> + encoded_value = value |> Base.encode64() + + bson_value = + Cyanide.encode!(%{ + v: %{"key1" => "val1", "key2" => %Cyanide.Binary{subtype: :generic, data: value}} + }) + + event = %IncomingDataEvent{ + interface: interface, + path: path, + bson_value: bson_value + } + + roundtrip = + Jason.encode!(event) + |> Jason.decode!() + + assert roundtrip == %{ + "type" => "incoming_data", + "interface" => interface, + "path" => path, + "value" => %{"key1" => "val1", "key2" => encoded_value} + } + end + test "works for IncomingIntrospectionEvent" do alias Astarte.Core.Triggers.SimpleEvents.IncomingIntrospectionEvent