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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
Option VBASupport 1
Option Explicit
Dim passCount As Integer
Dim failCount As Integer
Dim result As String
Function doUnitTest() As String
result = verify_testDateDiff()
If failCount <> 0 Or passCount = 0 Then
doUnitTest = result
Else
doUnitTest = "OK"
End If
End Function
Function verify_testDateDiff() As String
passCount = 0
failCount = 0
result = "Test Results" & Chr$(10) & "============" & Chr$(10)
Dim testName As String
Dim date1
Dim date2
testName = "Test DateDiff function"
On Error GoTo errorHandler
date2 = 10
date1 = DateDiff("yyyy", "22/11/2003", "22/11/2013")
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 40
date1 = DateDiff("q", "22/11/2003", "22/11/2013")
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 120
date1 = DateDiff("m", "22/11/2003", "22/11/2013")
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 3653
date1 = DateDiff("y", "22/11/2003", "22/11/2013")
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 3653
date1 = DateDiff("d", "22/11/2003", "22/11/2013")
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 521
date1 = DateDiff("w", "22/11/2003", "22/11/2013")
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 522
date1 = DateDiff("ww", "22/11/2003", "22/11/2013")
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 87672
date1 = DateDiff("h", "22/11/2003", "22/11/2013")
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 525600
date1 = DateDiff("n", "22/11/2012", "22/11/2013")
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 2678400
date1 = DateDiff("s", "22/10/2013", "22/11/2013")
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 3653
date1 = DateDiff("d", "22/11/2003", "22/11/2013", vbFriday)
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 3653
date1 = DateDiff("d", "22/11/2003", "22/11/2013", vbMonday)
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 3623
date1 = DateDiff("d", "22/12/2003", "22/11/2013", vbSaturday)
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 3684
date1 = DateDiff("d", "22/10/2003", "22/11/2013", vbSunday)
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 3653
date1 = DateDiff("d", "22/11/2003", "22/11/2013", vbThursday)
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 3653
date1 = DateDiff("d", "22/11/2003", "22/11/2013", vbTuesday)
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 3653
date1 = DateDiff("d", "22/11/2003", "22/11/2013", vbFriday, vbFirstJan1)
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 3653
date1 = DateDiff("d", "22/11/2003", "22/11/2013", vbThursday, vbFirstFourDays)
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 3653
date1 = DateDiff("d", "22/11/2003", "22/11/2013", vbSunday, vbFirstFullWeek)
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
date2 = 3653
date1 = DateDiff("d", "22/11/2003", "22/11/2013", vbSaturday, vbFirstFullWeek)
TestLog_ASSERT date1 = date2, "the return DateDiff is: " & date1
result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10)
verify_testDateDiff = result
Exit Function
errorHandler:
TestLog_ASSERT (False), testName & ": hit error handler"
End Function
Sub TestLog_ASSERT(assertion As Boolean, Optional testId As String, Optional testComment As String)
If assertion = True Then
passCount = passCount + 1
Else
Dim testMsg As String
If Not IsMissing(testId) Then
testMsg = testMsg + " : " + testId
End If
If Not IsMissing(testComment) And Not (testComment = "") Then
testMsg = testMsg + " (" + testComment + ")"
End If
result = result & Chr$(10) & " Failed: " & testMsg
failCount = failCount + 1
End If
End Sub
|