name:
tests/Utilities/ArgsCheckerTest.ts
-rw-r--r--
2515
1import {
2 assertEquals,
3 test
4} from "../Utils/Asserts";
5import {
6 ArgsChecker
7} from "../../src/Utilities/ArgsChecker";
8import {NA_ERROR} from "../../src/Errors";
9
10
11function catchAndAssertErrorFormatting(toExecute : Function, errorString: string, nameToMatch: string) {
12 var toThrow = null;
13 try {
14 toExecute();
15 toThrow = true;
16 } catch (actualError) {
17 if (actualError.name !== errorString || actualError.message.indexOf(nameToMatch) === -1) {
18 console.log("expected:", errorString, " actual:", actualError.name, actualError.message);
19 console.trace();
20 }
21 }
22 if (toThrow) {
23 console.log("expected error: " + errorString, "and function name in error: ", nameToMatch);
24 console.trace();
25 }
26}
27
28const FORMULA_NAME = "FROMTEST";
29test("ArgsChecker.checkLength", function () {
30 assertEquals(ArgsChecker.checkLength(["A", "B"], 2), undefined);
31 assertEquals(ArgsChecker.checkLength(["A"], 1), undefined);
32 assertEquals(ArgsChecker.checkLength([], 0), undefined);
33 catchAndAssertErrorFormatting(function () {
34 ArgsChecker.checkLength(["A", "B"], 100, FORMULA_NAME);
35 }, NA_ERROR, FORMULA_NAME);
36});
37
38
39test("ArgsChecker.checkAtLeastLength", function () {
40 assertEquals(ArgsChecker.checkAtLeastLength(["A", "B"], 2), undefined);
41 assertEquals(ArgsChecker.checkAtLeastLength(["A", "B"], 1), undefined);
42 assertEquals(ArgsChecker.checkAtLeastLength(["A"], 1), undefined);
43 assertEquals(ArgsChecker.checkAtLeastLength(["A"], 0), undefined);
44 assertEquals(ArgsChecker.checkAtLeastLength([], 0), undefined);
45 catchAndAssertErrorFormatting(function () {
46 ArgsChecker.checkAtLeastLength(["A", "B"], 3, FORMULA_NAME);
47 }, NA_ERROR, FORMULA_NAME);
48});
49
50
51test("ArgsChecker.checkLengthWithin", function () {
52 assertEquals(ArgsChecker.checkLengthWithin(["A", "B"], 2, 10), undefined);
53 assertEquals(ArgsChecker.checkLengthWithin(["A", "B"], 1, 4), undefined);
54 assertEquals(ArgsChecker.checkLengthWithin(["A", "B", "C", "D"], 1, 4), undefined);
55 assertEquals(ArgsChecker.checkLengthWithin(["A", "B", "C", "D"], 1, 6), undefined);
56 catchAndAssertErrorFormatting(function () {
57 ArgsChecker.checkLengthWithin(["A", "B"], 3, 10, FORMULA_NAME);
58 }, NA_ERROR, FORMULA_NAME);
59 catchAndAssertErrorFormatting(function () {
60 ArgsChecker.checkLengthWithin(["A", "B"], 5, 10, FORMULA_NAME);
61 }, NA_ERROR, FORMULA_NAME);
62 catchAndAssertErrorFormatting(function () {
63 ArgsChecker.checkLengthWithin(["A", "B", "C", "D"], 5, 6, FORMULA_NAME);
64 }, NA_ERROR, FORMULA_NAME);
65});