summaryrefslogtreecommitdiff
path: root/ebus-racket/layer7-test.rkt
blob: 2099bf8bc60ee19a3a626762a4e65c9904ca272a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#lang racket/base
(require rackunit
         rackunit/text-ui
         "layer2.rkt"
         "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))