summaryrefslogtreecommitdiffstats
path: root/basic/qa/vba_tests/datediff.vb
blob: 1b5e7ebf449d6e06bf442950f8dc118940d6a624 (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
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