2 ' Copyright (c) 2002-2003 Mainsoft Corporation.
4 ' Permission is hereby granted, free of charge, to any person obtaining a
5 ' copy of this software and associated documentation files (the "Software"),
6 ' to deal in the Software without restriction, including without limitation
7 ' the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 ' and/or sell copies of the Software, and to permit persons to whom the
9 ' Software is furnished to do so, subject to the following conditions:
11 ' The above copyright notice and this permission notice shall be included in
12 ' all copies or substantial portions of the Software.
14 ' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 ' IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 ' FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 ' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 ' LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19 ' FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20 ' DEALINGS IN THE SOFTWARE.
25 Imports Microsoft
.VisualBasic
27 Public Class TestClass
28 Public Function Test() As String
29 Dim s1
As String = "a"
30 Dim s2
As String = "b"
31 Dim s3
As String = "c"
32 Dim s4
As String = "d"
33 Dim col
As New Microsoft
.VisualBasic
.Collection()
35 Dim caughtException
As Boolean
'// Index doesn't match an existing member of the collection.
'// nothing in Collection yet
caughtException = False
Try
Dim o As Object = col(0)
Catch e As IndexOutOfRangeException
If Err.Number = 9 Then
caughtException = True
End If
End Try
If caughtException = False Then Return "failed at sub test 1"
col.Add("Baseball", "Base", Nothing, Nothing)
col.Add("Football", "Foot", Nothing, Nothing)
col.Add("Basketball", "Basket", Nothing, Nothing)
col.Add("Volleyball", "Volley", Nothing, Nothing)
'// only 4 elements
caughtException = False
Try
Dim o As Object = col(5)
Catch e As IndexOutOfRangeException
If Err.Number = 9 Then
caughtException = True
End If
End Try
If caughtException = False Then Return "failed at sub test 2"
36
'// Collection class is 1-based
caughtException = False
Try
Dim o As Object = col(0)
Catch e As IndexOutOfRangeException
If Err.Number = 9 Then
caughtException = True
End If
End Try
If caughtException = False Then Return "failed at sub test 3"
'// argument does not refer to an existing member of the collection
'// no member with Key == "Kick"
caughtException = False
Try
Dim o As Object = col("Kick")
Catch e As ArgumentException
'// FIXME
'// VB Language Reference says IndexOutOfRangeException
'// here, but MS throws ArgumentException
'// AssertEquals("#E07", typeof(IndexOutOfRangeException), e.GetType())
If Err.Number = 5 Then
caughtException = True
End If
End Try
If caughtException = False Then Return "failed at sub test 4"
37
'// Both Before and After are specified
'// can't specify both Before and After
caughtException = False
Try
col.Add("Kickball", "Kick", "Volley", "Foot")
Catch e As ArgumentException
If Err.Number = 5 Then
caughtException = True
End If
End Try
If caughtException = False Then Return "failed at sub test 5"
'// The specified Key already exists
'// Key "Foot" already exists
caughtException = False
Try
col.Add("Kickball", "Foot", Nothing, Nothing)
Catch e As ArgumentException
If Err.Number = 457 Then 'MS document err.number 5
caughtException = True
End If
End Try
If caughtException = False Then Return "failed at sub test 6"
'// Index doesn't match an existing member of the collection
'// no Key "Golf" exists
caughtException = False
Try
col.Remove("Golf")
Catch e As ArgumentException
If Err.Number = 5 Then
caughtException = True
End If
End Try
If caughtException = False Then Return "failed at sub test 7"
'// no Index 10 exists
caughtException = False
Try
col.Remove(10)
Catch e As IndexOutOfRangeException
If Err.Number = 9 Then
caughtException = True
End If
End Try
If caughtException = False Then Return "failed at sub test 8"
Return "success"