You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.8 KiB
Clojure

(ns org.domaindrivenarchitecture.fed-poc.core-test
(:require
[clojure.test :refer [deftest is are testing run-tests]]
[clojure.spec.alpha :as s]
[clojure.string :as str]
[org.domaindrivenarchitecture.fed-poc.activitystreams2 :as as]
[org.domaindrivenarchitecture.fed-poc.core :as sut]))
(deftest should-normalize
(is (= {::as/id "http://example.org/likes/1"
::as/summary "Sally liked a note",
::as/type ["Like"],
::as/actor {::as/id "http://example.org/persons/1"
::as/type "Person",
::as/name "Sally"},
::as/object "http://example.org/notes/1"}
(sut/normalize
::as/Like
{::as/id ["http://example.org/likes/1"]
::as/summary "Sally liked a note",
::as/type ["Like"],
::as/actor {::as/id ["http://example.org/persons/1"]
::as/type "Person",
::as/name "Sally"},
::as/object "http://example.org/notes/1"}))))
(deftest should-serialize
(is (= (str "{\"@context\":\"https://www.w3.org/ns/activitystreams\","
"\"id\":\"http://example.org/likes/1\","
"\"summary\":\"Sally liked a note\","
"\"type\":[\"Like\"],"
"\"actor\":{"
"\"id\":\"http://example.org/persons/1\","
"\"type\":\"Person\","
"\"name\":\"Sally\"},"
"\"object\":\"http://example.org/notes/1\"}")
(sut/serialize
::as/Like
{::as/id "http://example.org/likes/1"
::as/summary "Sally liked a note",
::as/type ["Like"],
::as/actor {::as/id "http://example.org/persons/1"
::as/type "Person",
::as/name "Sally"},
::as/object "http://example.org/notes/1"}))))