From caae83f445935c06cd6aef36f283a4688675278a Mon Sep 17 00:00:00 2001 From: Yves Fischer Date: Sun, 14 Aug 2016 19:25:26 +0200 Subject: refactored ebus code --- ebus-racket/tests/layer7-test.rkt | 62 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 ebus-racket/tests/layer7-test.rkt (limited to 'ebus-racket/tests/layer7-test.rkt') 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)) -- cgit v1.2.1