liminix

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

acquire-wan-address-test.fnl (1657B)


      1 (local subject (require :acquire-wan-address))
      2 (local { : view } (require :fennel))
      3 (local { : merge : dup } (require :anoia))
      4 
      5 
      6 (local a1
      7        {
      8         "2001-ab-cd-ef_hjgKHGhKJH" {
      9                                     :address "2001:ab:cd:ef"
     10                                     :len "64"
     11                                     :preferred "200"
     12                                     :valid "200"
     13                                     }
     14         }
     15        )
     16 
     17 (local a2
     18        {
     19         "2001-0-1-2-3_aNteBnb" {
     20                                 :address "2001:0:1:2:3"
     21                                 :len "64"
     22                                 :preferred "200"
     23                                 :valid "200"
     24                                 }
     25         }
     26        )
     27 
     28 (macro expect [assertion]
     29   (let [msg (.. "expectation failed: " (view assertion))]
     30     `(when (not ,assertion)
     31        (assert false ,msg))))
     32 
     33 (fn first-address []
     34   (let [(add del)
     35         (subject.changes
     36          { }
     37          a1
     38          )]
     39     (expect (= (# del) 0))
     40     (expect (= (# add) 1))
     41     (let [[first] add]
     42       (expect (= first.address "2001:ab:cd:ef")))))
     43 
     44 (fn second-address []
     45   (let [(add del)
     46         (subject.changes
     47          a1
     48          (merge (dup a1) a2)
     49          )]
     50     (expect (= (# del) 0))
     51     (expect (= (# add) 1))
     52     (let [[first] add] (expect (= first.address  "2001:0:1:2:3")))))
     53 
     54 (fn less-address []1
     55   (let [(add del)
     56         (subject.changes
     57          (merge (dup a1) a2)
     58          a1
     59          )]
     60     (expect (= (# add) 0))
     61     (expect (= (# del) 1))
     62 
     63     (let [[first] del] (expect (= first.address  "2001:0:1:2:3")))))
     64 
     65 
     66 (first-address)
     67 (second-address)
     68 (less-address)