Gabriel Rohden

chore(getUtils): Add initial tests for util functions

@@ -70,14 +70,13 @@ class GetUtils { @@ -70,14 +70,13 @@ class GetUtils {
70 return true; 70 return true;
71 } 71 }
72 72
73 - /// FIXME: null checking here is.. pointless (? see isNull above)  
74 if(value is String) { 73 if(value is String) {
75 - return value.toString() == 'null' || value.toString().trim().isEmpty; 74 + return value.toString().trim().isEmpty;
76 } 75 }
77 76
78 // Pretty sure that isNullOrBlank should't be validating 77 // Pretty sure that isNullOrBlank should't be validating
79 // iterables... but I'm going to keep this for compatibility. 78 // iterables... but I'm going to keep this for compatibility.
80 - return _hasIsEmpty(value) ? value.isEmpty as bool : true; 79 + return _hasIsEmpty(value) ? value.isEmpty as bool : false;
81 } 80 }
82 81
83 /// Checks if string is int or double. 82 /// Checks if string is int or double.
@@ -8,60 +8,63 @@ class TestClass { @@ -8,60 +8,63 @@ class TestClass {
8 class EmptyClass {} 8 class EmptyClass {}
9 9
10 void main() { 10 void main() {
11 - group('dynamic extensions', () {  
12 - test('var.isNullOrBlank on a string ', () {  
13 - var string = '';  
14 - expect('foo'.isNullOrBlank, equals(false));  
15 - expect(string.isNullOrBlank, equals(true));  
16 - });  
17 - test('var.isNullOrBlank on a int ', () {  
18 - expect(5.isNullOrBlank, equals(false));  
19 - expect(0.isNullOrBlank, equals(false)); 11 + group('isNullOrBlank on dynamic', () {
  12 + // Identity util to convert to iterables
  13 + dynamic _id(dynamic e) => e;
  14 +
  15 + test('null isNullOrBlank should be true for null', () {
  16 + expect((null).isNullOrBlank, true);
20 }); 17 });
21 18
22 - test('var.isNullOrBlank on a double ', () { 19 + test('isNullOrBlank should be false for unsupported types', () {
  20 + expect(5.isNullOrBlank, false);
  21 + expect(0.isNullOrBlank, false);
  22 +
23 expect(5.0.isNullOrBlank, equals(false)); 23 expect(5.0.isNullOrBlank, equals(false));
24 expect(0.0.isNullOrBlank, equals(false)); 24 expect(0.0.isNullOrBlank, equals(false));
25 - });  
26 25
27 - test('var.isNullOrBlank on a list ', () {  
28 - var list = ['foo'];  
29 - expect([].isNullOrBlank, equals(true));  
30 - expect(['oi', 'foo'].isNullOrBlank, equals(false));  
31 - expect([{}, {}].isNullOrBlank, equals(false));  
32 - expect(list[0].isNullOrBlank, equals(false)); 26 + TestClass testClass;
  27 + expect(testClass.isNullOrBlank, equals(true));
  28 + expect(TestClass().isNullOrBlank, equals(false));
  29 + expect(EmptyClass().isNullOrBlank, equals(false));
33 }); 30 });
34 31
35 - test('var.isNullOrBlank on a set ', () {  
36 - var halogens = {'fluorine', 'chlorine', 'bromine', 'iodine', 'astatine'};  
37 - expect(<String>{}.isNullOrBlank, equals(true));  
38 - expect({'foo', 'bar'}.isNullOrBlank, equals(false));  
39 - expect(halogens.isNullOrBlank, equals(false)); 32 + test('isNullOrBlank should validate strings', () {
  33 + expect("".isNullOrBlank, true);
  34 + expect(" ".isNullOrBlank, true);
  35 +
  36 + expect("foo".isNullOrBlank, false);
  37 + expect(" foo ".isNullOrBlank, false);
  38 +
  39 + expect("null".isNullOrBlank, false);
40 }); 40 });
41 41
42 - test('var.isNullOrBlank on a map ', () {  
43 - var map = {"foo": 'bar', "one": "um"};  
44 - expect({}.isNullOrBlank, equals(true));  
45 - expect({"other": "thing"}.isNullOrBlank, equals(false));  
46 - expect({'first': [], 'second': []}.isNullOrBlank, equals(false));  
47 - expect(map["foo"].isNullOrBlank, equals(false));  
48 - expect(map["other"].isNullOrBlank, equals(true)); 42 + test('isNullOrBlank should validate iterables', () {
  43 + expect([].map(_id).isNullOrBlank, true);
  44 + expect([1].map(_id).isNullOrBlank, false);
49 }); 45 });
50 46
51 - test('var.isNullOrBlank on a function ', () {  
52 - someFunction({String string, int integer}) {  
53 - expect(string.isNullOrBlank, equals(false));  
54 - expect(integer.isNullOrBlank, equals(true));  
55 - } 47 + test('isNullOrBlank should validate lists', () {
  48 + expect([].isNullOrBlank, true);
  49 + expect(['oi', 'foo'].isNullOrBlank, false);
  50 + expect([{}, {}].isNullOrBlank, false);
  51 + expect(['foo'][0].isNullOrBlank, false);
  52 + });
56 53
57 - someFunction(string: 'some value'); 54 + test('isNullOrBlank should validate sets', () {
  55 + expect((<dynamic>{}).isNullOrBlank, true);
  56 + expect(({1}).isNullOrBlank, false);
  57 + expect({'fluorine', 'chlorine', 'bromine'}.isNullOrBlank, false);
58 }); 58 });
59 59
60 - test('var.isNullOrBlank on a class ', () {  
61 - TestClass testClass;  
62 - expect(TestClass().isNullOrBlank, equals(false));  
63 - expect(testClass.isNullOrBlank, equals(true));  
64 - expect(EmptyClass().isNullOrBlank, equals(false)); 60 + test('isNullOrBlank should validate maps', () {
  61 + expect(({}).isNullOrBlank, true);
  62 + expect(({1: 1}).isNullOrBlank, false);
  63 + expect({"other": "thing"}.isNullOrBlank, false);
  64 +
  65 + final map = {"foo": 'bar', "one": "um"};
  66 + expect(map["foo"].isNullOrBlank, false);
  67 + expect(map["other"].isNullOrBlank, true);
65 }); 68 });
66 }); 69 });
67 70
  1 +import 'package:flutter_test/flutter_test.dart';
  2 +import 'package:get/get.dart';
  3 +
  4 +// Identity util to convert to iterables
  5 +dynamic _id(dynamic e) => e;
  6 +
  7 +void main() {
  8 + // Tests for GetUtils.isNullOrBlank are located at dynamic extensions
  9 + group('GetUtils.isLength* functions', () {
  10 + test('isLengthEqualTo should validate iterable lengths', () {
  11 + // iterables should cover list and set
  12 + expect(GetUtils.isLengthEqualTo([].map(_id), 0), true);
  13 + expect(GetUtils.isLengthEqualTo([1, 2].map(_id), 2), true);
  14 +
  15 + expect(GetUtils.isLengthEqualTo({}, 0), true);
  16 + expect(GetUtils.isLengthEqualTo({1: 1, 2: 1}, 2), true);
  17 + expect(GetUtils.isLengthEqualTo({}, 2), false);
  18 +
  19 + expect(GetUtils.isLengthEqualTo("", 0), true);
  20 + expect(GetUtils.isLengthEqualTo("a", 0), false);
  21 + expect(GetUtils.isLengthEqualTo("a", 1), true);
  22 + });
  23 +
  24 + test('isLengthGreaterOrEqual should validate lengths', () {
  25 + // iterables should cover list and set
  26 + expect(GetUtils.isLengthGreaterOrEqual([].map(_id), 0), true);
  27 + expect(GetUtils.isLengthGreaterOrEqual([1, 2].map(_id), 2), true);
  28 + expect(GetUtils.isLengthGreaterOrEqual([1, 2].map(_id), 1), true);
  29 +
  30 + expect(GetUtils.isLengthGreaterOrEqual({}, 0), true);
  31 + expect(GetUtils.isLengthGreaterOrEqual({1: 1, 2: 1}, 1), true);
  32 + expect(GetUtils.isLengthGreaterOrEqual({1: 1, 2: 1}, 2), true);
  33 + expect(GetUtils.isLengthGreaterOrEqual({}, 2), false);
  34 +
  35 + expect(GetUtils.isLengthGreaterOrEqual("", 0), true);
  36 + expect(GetUtils.isLengthGreaterOrEqual("a", 0), true);
  37 + expect(GetUtils.isLengthGreaterOrEqual("", 1), false);
  38 + });
  39 +
  40 + test('isLengthLessOrEqual should validate lengths', () {
  41 + // iterables should cover list and set
  42 + expect(GetUtils.isLengthLessOrEqual([].map(_id), 0), true);
  43 + expect(GetUtils.isLengthLessOrEqual([1, 2].map(_id), 2), true);
  44 + expect(GetUtils.isLengthLessOrEqual([1, 2].map(_id), 1), false);
  45 +
  46 + expect(GetUtils.isLengthLessOrEqual({}, 0), true);
  47 + expect(GetUtils.isLengthLessOrEqual({1: 1, 2: 1}, 1), false);
  48 + expect(GetUtils.isLengthLessOrEqual({1: 1, 2: 1}, 3), true);
  49 + expect(GetUtils.isLengthLessOrEqual({}, 2), true);
  50 +
  51 + expect(GetUtils.isLengthLessOrEqual("", 0), true);
  52 + expect(GetUtils.isLengthLessOrEqual("a", 2), true);
  53 + expect(GetUtils.isLengthLessOrEqual("a", 0), false);
  54 + });
  55 + });
  56 +}