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)