#lang racket/base (require rackunit rackunit/text-ui "../ebus/layer2.rkt" "../ebus/layer7.rkt") (define layer7-test (test-suite "Tests for Ebus Layer 7 Parser" (test-case "Test sample Master-Master Paket" (let* ([paket (layer2-read-ebus (open-input-bytes (bytes 170 ; SYN 170 003 ; Source 241 ; Destination 008 ; primaryCommand 000 ; secondaryCommand 008 ; payloadLength 128 ; p1 040 ; p2 230 ; p3 002 ; p4 200 ; p5 002 ; p6 000 ; p7 010 ; p8 128 ; CRC 000 ; ACK 170 ; SYN 170)))] [fields (layer7-paket-fields paket)]) (check-true (= 5 (length fields)) "Anzahl der gelesenen Felder") (for ([field fields]) (display field) (display "\n") (cond ((= (list-ref field 2) 0) (check-equal? (list-ref field 3) 40.5 "Wert TK_soll")) ((= (list-ref field 2) 2) (check-equal? (list-ref field 3) 2.8984375 "Wert TA_ist")) ((= (list-ref field 2) 4) (check-equal? (list-ref field 3) 200 "Wert L_zwang")) ((= (list-ref field 2) 5) (check-equal? (list-ref field 3) 0 "Wert Status")) ((= (list-ref field 2) 6) (check-equal? (list-ref field 3) 10 "Wert TB_soll")))))) ;end test-case )) (exit (run-tests layer7-test))