summaryrefslogtreecommitdiff
path: root/ebus-racket/tests/layer7-test.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'ebus-racket/tests/layer7-test.rkt')
-rw-r--r--ebus-racket/tests/layer7-test.rkt62
1 files changed, 62 insertions, 0 deletions
diff --git a/ebus-racket/tests/layer7-test.rkt b/ebus-racket/tests/layer7-test.rkt
new file mode 100644
index 0000000..5fa8c4a
--- /dev/null
+++ b/ebus-racket/tests/layer7-test.rkt
@@ -0,0 +1,62 @@
+#lang racket/base
+(require rackunit
+ rackunit/text-ui
+ racket/list
+ (prefix-in layer2- "../ebus/layer2.rkt")
+ (prefix-in layer7- "../ebus/layer7.rkt"))
+
+(define layer7-test
+ (test-suite
+ "Tests for Ebus Layer 7 Parser"
+ (test-case
+ "Test sample Master-Master Paket"
+ (parameterize ([layer7-definition (layer7-read-ebus-xml "../../ebus-xml/ebus.xml")])
+ (let*
+ ([l2paket (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-parse l2paket)])
+ (for ([field fields])
+ (display field)
+ (display "\n"))
+ (check-true (= 5 (length fields)) "Anzahl der gelesenen Felder")
+ (let ([p (first fields)])
+ (check-equal? (first p) "feuerungsautomat1.sollwertuebertragungRegler.TK_soll")
+ (check-equal? (second p) 'data2b)
+ (check-equal? (third p) 40.5))
+ (let ([p (second fields)])
+ (check-equal? (first p) "feuerungsautomat1.sollwertuebertragungRegler.TA_ist")
+ (check-equal? (second p) 'data2b)
+ (check-equal? (third p) 2.8984375))
+ (let ([p (third fields)])
+ (check-equal? (first p) "feuerungsautomat1.sollwertuebertragungRegler.L_zwang")
+ (check-equal? (second p) 'data1b)
+ (check-equal? (third p) -56))
+ (let ([p (fourth fields)])
+ (check-equal? (first p) "feuerungsautomat1.sollwertuebertragungRegler.Status")
+ (check-equal? (second p) 'bit)
+ (check-equal? (third p) 0))
+ (let ([p (fifth fields)])
+ (check-equal? (first p) "feuerungsautomat1.sollwertuebertragungRegler.TB_soll")
+ (check-equal? (second p) 'data2b)
+ (check-equal? (third p) 10))
+ )))))
+
+(exit (run-tests layer7-test))