blob: 562e6ff01002a8b41858800cb1468f9209c8aed5 (
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#lang racket
(module+ test
(require rackunit
rackunit/text-ui
"../../db/conn.rkt"
"../../db/migrations.rkt"
"../../models/nutrient.rkt")
(run-tests
(test-suite
"Nutrient model"
#:before (λ ()
(connect! #:path 'memory)
(migrate-all!))
#:after (λ ()
(disconnect!))
(test-case "Create nutrients"
(create-nutrient! "Examplium" "Ex")
(check-equal? (length (get-nutrients)) 1)
(create-nutrient! "Ignorium" "Ig")
(check-equal? (length (get-nutrients)) 2))
(test-case "Read nutrient"
(define examplium (get-nutrient #:id 1))
(check-true (nutrient? examplium))
(check-equal? (nutrient-id examplium) 1))
(test-case "Read nutrient by name"
(define examplium (get-nutrient #:name "Examplium"))
(check-true (nutrient? examplium))
(check-equal? (nutrient-name examplium) "Examplium"))
(test-case "Read nutrient by formula"
(define examplium (get-nutrient #:formula "Ex"))
(check-true (nutrient? examplium))
(check-equal? (nutrient-formula examplium) "Ex"))
(test-case "Read inexisting nutrient"
(check-false (get-nutrient #:name "Inexistium")))
(test-case "Update nutrient name"
(define examplium (get-nutrient #:name "Examplium"))
(define examplium-nitrate
(update-nutrient! examplium #:name "Examplium Nitrate"))
(check-equal? (length (get-nutrients)) 2)
(check-equal? (nutrient-name examplium-nitrate) "Examplium Nitrate")
(check-equal? (nutrient-formula examplium-nitrate) "Ex"))
(test-case "Update nutrient formula"
(define examplium-nitrate (get-nutrient #:name "Examplium Nitrate"))
(define examplium-sulfate
(update-nutrient! examplium-nitrate #:formula "ExSO4"))
(check-equal? (length (get-nutrients)) 2)
(check-equal? (nutrient-name examplium-sulfate) "Examplium Nitrate")
(check-equal? (nutrient-formula examplium-sulfate) "ExSO4"))
(test-case "Update nutrient name and formula"
(define examplium-nitrate
(get-nutrient #:name "Examplium Nitrate"))
(define examplium-sulfate
(update-nutrient! examplium-nitrate
#:name "Examplium Sulfate"
#:formula "ExNO3"))
(check-equal? (length (get-nutrients)) 2)
(check-equal? (nutrient-name examplium-sulfate) "Examplium Sulfate")
(check-equal? (nutrient-formula examplium-sulfate) "ExNO3"))
(test-case "Delete nutrient"
(define examplium-sulfate (get-nutrient #:name "Examplium Sulfate"))
(delete-nutrient! examplium-sulfate)
(check-equal? (length (get-nutrients)) 1)
(define ignorium (get-nutrient #:name "Ignorium"))
(delete-nutrient! ignorium)
(check-equal? (length (get-nutrients)) 0)))))
|