clarify message creation: make-message with data as &key parameter

This commit is contained in:
Helmut Merz 2024-06-30 10:00:05 +02:00
parent 19bba29a01
commit ea86a2def0
3 changed files with 9 additions and 6 deletions

View file

@ -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

View file

@ -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)

View file

@ -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!")))