forked from FundingCircle/jackdaw
-
Notifications
You must be signed in to change notification settings - Fork 1
/
identity.clj
33 lines (27 loc) · 813 Bytes
/
identity.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
(ns jackdaw.test.transports.identity
(:require
[clojure.tools.logging :as log]
[manifold.stream :as s]
[jackdaw.test.transports :as t :refer [deftransport]]))
(set! *warn-on-reflection* true)
(defn identity-consumer
[stream]
(let [started? (promise)]
{:started? started?
:messages stream}))
(defn identity-producer
[]
(let [messages (s/stream 1)]
{:messages messages}))
(deftransport :identity
[{:keys [topics]}]
(let [ch (s/stream 1)
test-consumer (identity-consumer ch)
test-producer (identity-producer)]
(s/connect (:messages test-producer)
(:messages test-consumer))
{:consumer test-consumer
:producer test-producer
:topics topics
:exit-hooks [(fn []
(s/close! (:messages test-producer)))]}))