From ce1bbd1045773610eedc6ff45f361f1133b8970e Mon Sep 17 00:00:00 2001 From: "Yann Esposito (Yogsototh)" Date: Sat, 20 Mar 2021 17:28:40 +0100 Subject: [PATCH] journal/2021-03-14--13-00-04Z--the_service_pattern.org --- ...-03-14--13-00-04Z--the_service_pattern.org | 37 +++++++++++-------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/journal/2021-03-14--13-00-04Z--the_service_pattern.org b/journal/2021-03-14--13-00-04Z--the_service_pattern.org index 734fa338..b019c2b6 100644 --- a/journal/2021-03-14--13-00-04Z--the_service_pattern.org +++ b/journal/2021-03-14--13-00-04Z--the_service_pattern.org @@ -2,7 +2,7 @@ #+Author: Yann Esposito #+Date: [2021-03-14] -- tags :: [[file:2020-06-03--19-49-30Z--programming.org][programming]] [[file:2020-05-26--06-13-41Z--functional_programming.org][functional programming]] [[file:2020-05-26--06-16-14Z--clojure.org][clojure]] [[file:2020-05-26--06-19-53Z--haskell.org][haskell]] +- tags :: [[file:2020-06-03--19-49-30Z--programming.org][programming]] [[file:2020-05-26--06-13-41Z--functional_programming.org][functional programming]] [[file:2020-05-26--06-16-14Z--clojure.org][clojure]] [[file:2020-05-26--06-19-53Z--haskell.org][haskell]] [[file:2021-03-20--17-27-46Z--architecture.org][architecture]] - source :: - related :: [[file:2020-12-23--16-50-17Z--effects_system_in_clojure.org][Effects system in Clojure]] @@ -166,21 +166,26 @@ get from this design. functions during your tests. #+begin_src clojure - (defprotocol UserService - (get-user [user-id] "returns a user entity from its id")) +(defprotocol UserService + (get-user [user-id] "returns a user entity from its id")) - (defservice user-service - [[:ConfigService get-in-config] - [:StoreService read-entity]] - (init [this context] - (into context - {:raw-db-get-user - (fn [user-id] - (read-entity db-conf user-id))})) - (get-user [this user-id] - ((:raw-db-get-user (get-context this)) user-id))) +(defservice user-service + [[:ConfigService get-in-config] + [:StoreService read-entity]] + (init [this context] + (into context + {:raw-db-get-user + (fn [user-id] + (read-entity db-conf user-id))})) + (get-user [this user-id] + ((:raw-db-get-user (get-context this)) user-id))) - (defservice stub-user-service - (init [_ context] context) - (get-user [user-id] {:id "fake-user-id" ,,,})) +(defservice stub-user-service + (init [_ context] context) + (get-user [user-id] {:id "fake-user-id" ,,,})) + +(def test + (start-app [config-service store-service stub-user-service + my-service] + (test-my-service))) #+end_src