clarify message creation: make-message with data as &key parameter
This commit is contained in:
parent
19bba29a01
commit
ea86a2def0
3 changed files with 9 additions and 6 deletions
|
@ -2,7 +2,7 @@
|
|||
|
||||
(defpackage :scopes/core/message
|
||||
(:use :common-lisp)
|
||||
(:export #:message #:simple-message
|
||||
(:export #:message #:make-message #:simple-message
|
||||
#:head #:data #:head-as-list))
|
||||
|
||||
(in-package :scopes/core/message)
|
||||
|
@ -23,12 +23,15 @@
|
|||
(timestamp)
|
||||
(data :accessor data :initarg :data :initform nil)))
|
||||
|
||||
(defun simple-message (head-vals &optional data)
|
||||
(defun make-message (head-vals &key data)
|
||||
(let ((h (make-instance 'message-head)))
|
||||
(dolist (sl '(domain action class item))
|
||||
(setf (slot-value h sl) (pop head-vals)))
|
||||
(make-instance 'message :head h :data data)))
|
||||
|
||||
(defun simple-message (&rest head-vals)
|
||||
(make-message head-vals))
|
||||
|
||||
(defmethod print-object ((msg message) stream)
|
||||
(with-slots (domain action class item) (head msg)
|
||||
(format stream
|
||||
|
|
|
@ -61,8 +61,8 @@
|
|||
|
||||
(deftest test-send ()
|
||||
(let ((rcvr (receiver t:*test-suite*))
|
||||
(msg (message:simple-message '(:test :dummy) "dummy payload"))
|
||||
(msg-exp (message:simple-message '(:test :dummy) "dummy payload")))
|
||||
(msg (message:make-message '(:test :dummy) :data "dummy payload"))
|
||||
(msg-exp (message:make-message '(:test :dummy) :data "dummy payload")))
|
||||
(expect rcvr msg-exp)
|
||||
(== (core:name rcvr) :test-receiver)
|
||||
(core:send rcvr msg)
|
||||
|
|
|
@ -33,10 +33,10 @@
|
|||
(== (parse-integer (server:port (core:config server))) 8899))
|
||||
|
||||
(deftest test-fileserver (client)
|
||||
(let ((msg (message:simple-message '(:test :get-page) '(:path "demo.html"))))
|
||||
(let ((msg (message:make-message '(:test :get-page) :data '(:path "demo.html"))))
|
||||
(== (client:base-url (core:config client)) "http://localhost:8899")
|
||||
(has-prefix (client:get-page client msg) "Hello Fileserver!")))
|
||||
|
||||
(deftest test-message (client)
|
||||
(let ((msg (message:simple-message '(:test :data) '(:info "test data"))))
|
||||
(let ((msg (message:make-message '(:test :data) :data '(:info "test data"))))
|
||||
(== (client:send-message client msg) "Hello World!")))
|
||||
|
|
Loading…
Add table
Reference in a new issue