|
1 | 1 | (ns isbn-verifier-test
|
2 |
| - (:require [clojure.test :refer [deftest is]] |
3 |
| - [isbn-verifier :refer [isbn?]])) |
| 2 | + (:require [clojure.test :refer [deftest testing is]] |
| 3 | + isbn-verifier)) |
4 | 4 |
|
5 |
| -(deftest valid-isbn-number |
6 |
| - (is (= true (isbn? "3-598-21508-8")))) |
| 5 | +(deftest isbn?_test_1 |
| 6 | + (testing "valid isbn" |
| 7 | + (is (true? (isbn-verifier/isbn? "3-598-21508-8"))))) |
7 | 8 |
|
8 |
| -(deftest invalid-isbn-check-digit |
9 |
| - (is (= false (isbn? "3-598-21508-9")))) |
| 9 | +(deftest isbn?_test_2 |
| 10 | + (testing "invalid isbn check digit" |
| 11 | + (is (false? (isbn-verifier/isbn? "3-598-21508-9"))))) |
10 | 12 |
|
11 |
| -(deftest valid-isbn-number-with-a-check-digit-of-10 |
12 |
| - (is (= true (isbn? "3-598-21507-X")))) |
| 13 | +(deftest isbn?_test_3 |
| 14 | + (testing "valid isbn with a check digit of 10" |
| 15 | + (is (true? (isbn-verifier/isbn? "3-598-21507-X"))))) |
13 | 16 |
|
14 |
| -(deftest check-digit-is-a-character-other-than-X |
15 |
| - (is (= false (isbn? "3-598-21507-A")))) |
| 17 | +(deftest isbn?_test_4 |
| 18 | + (testing "check digit is a character other than X" |
| 19 | + (is (false? (isbn-verifier/isbn? "3-598-21507-A"))))) |
16 | 20 |
|
17 |
| -(deftest invalid-character-in-isbn |
18 |
| - (is (= false (isbn? "3-598-2K507-0")))) |
| 21 | +(deftest isbn?_test_5 |
| 22 | + (testing "invalid check digit in isbn is not treated as zero" |
| 23 | + (is (false? (isbn-verifier/isbn? "4-598-21507-B"))))) |
19 | 24 |
|
20 |
| -(deftest X-is-only-valid-as-a-check-digit |
21 |
| - (is (= false (isbn? "3-598-2X507-9")))) |
| 25 | +(deftest isbn?_test_6 |
| 26 | + (testing "invalid character in isbn is not treated as zero" |
| 27 | + (is (false? (isbn-verifier/isbn? "3-598-P1581-X"))))) |
22 | 28 |
|
23 |
| -(deftest valid-isbn-without-separating-dashes |
24 |
| - (is (= true (isbn? "3598215088")))) |
| 29 | +(deftest isbn?_test_7 |
| 30 | + (testing "X is only valid as a check digit" |
| 31 | + (is (false? (isbn-verifier/isbn? "3-598-2X507-9"))))) |
25 | 32 |
|
26 |
| -(deftest isbn-without-separating-dashes-and-X-as-check-digit |
27 |
| - (is (= true (isbn? "359821507X")))) |
| 33 | +(deftest isbn?_test_8 |
| 34 | + (testing "valid isbn without separating dashes" |
| 35 | + (is (true? (isbn-verifier/isbn? "3598215088"))))) |
28 | 36 |
|
29 |
| -(deftest isbn-without-check-digit-and-dashes |
30 |
| - (is (= false (isbn? "359821507")))) |
| 37 | +(deftest isbn?_test_9 |
| 38 | + (testing "isbn without separating dashes and X as check digit" |
| 39 | + (is (true? (isbn-verifier/isbn? "359821507X"))))) |
31 | 40 |
|
32 |
| -(deftest too-long-isbn-and-no-dashes |
33 |
| - (is (= false (isbn? "3598215078X")))) |
| 41 | +(deftest isbn?_test_10 |
| 42 | + (testing "isbn without check digit and dashes" |
| 43 | + (is (false? (isbn-verifier/isbn? "359821507"))))) |
34 | 44 |
|
35 |
| -(deftest too-short-isbn |
36 |
| - (is (= false (isbn? "00")))) |
| 45 | +(deftest isbn?_test_11 |
| 46 | + (testing "too long isbn and no dashes" |
| 47 | + (is (false? (isbn-verifier/isbn? "3598215078X"))))) |
37 | 48 |
|
38 |
| -(deftest isbn-without-check-digit |
39 |
| - (is (= false (isbn? "3-598-21507")))) |
| 49 | +(deftest isbn?_test_12 |
| 50 | + (testing "too short isbn" |
| 51 | + (is (false? (isbn-verifier/isbn? "00"))))) |
40 | 52 |
|
41 |
| -(deftest too-long-isbn |
42 |
| - (is (= false (isbn? "3-598-21507-XX")))) |
| 53 | +(deftest isbn?_test_13 |
| 54 | + (testing "isbn without check digit" |
| 55 | + (is (false? (isbn-verifier/isbn? "3-598-21507"))))) |
43 | 56 |
|
44 |
| -(deftest check-digit-of-X-should-not-be-used-for-0 |
45 |
| - (is (= false (isbn? "3-598-21515-X")))) |
| 57 | +(deftest isbn?_test_14 |
| 58 | + (testing "check digit of X should not be used for 0" |
| 59 | + (is (false? (isbn-verifier/isbn? "3-598-21515-X"))))) |
| 60 | + |
| 61 | +(deftest isbn?_test_15 |
| 62 | + (testing "empty isbn" |
| 63 | + (is (false? (isbn-verifier/isbn? ""))))) |
| 64 | + |
| 65 | +(deftest isbn?_test_16 |
| 66 | + (testing "input is 9 characters" |
| 67 | + (is (false? (isbn-verifier/isbn? "134456729"))))) |
| 68 | + |
| 69 | +(deftest isbn?_test_17 |
| 70 | + (testing "invalid characters are not ignored after checking length" |
| 71 | + (is (false? (isbn-verifier/isbn? "3132P34035"))))) |
| 72 | + |
| 73 | +(deftest isbn?_test_18 |
| 74 | + (testing "invalid characters are not ignored before checking length" |
| 75 | + (is (false? (isbn-verifier/isbn? "3598P215088"))))) |
| 76 | + |
| 77 | +(deftest isbn?_test_19 |
| 78 | + (testing "input is too long but contains a valid isbn" |
| 79 | + (is (false? (isbn-verifier/isbn? "98245726788"))))) |
0 commit comments