Imports System.Text
Imports Microsoft.VisualStudio.TestTools.UnitTesting
Imports StringDiacritics
<TestClass()>
Public Class VowelRemoverTests
<TestMethod()>
<ExpectedException(GetType(System.ArgumentException), "Null Exception Not Thrown")>
Public Sub Remove_ReturnExceptionOnNullString()
'Arrange
Dim inputString As Object = Nothing
Dim outputString As String = Nothing
Dim vr As New VowelRemover()
'Act
outputString = vr.Remove(inputString)
End Sub
<TestMethod()>
Public Sub Remove_EmptyString_ReturnEmptyString()
'Arrange
Dim inputString = ""
Dim outputString As String = Nothing
Dim vr As New VowelRemover()
'Act
outputString = vr.Remove(inputString)
'Assert
'Parameters: Expected, Actual, Failure Message
Assert.AreEqual("", outputString, "Empty String Not Equal")
End Sub
<TestMethod()>
Public Sub Remove_StringWithoutVowels_ReturnsStringWithoutChanges()
'Arrange
Dim inputString = "bcd"
Dim outputString As String = Nothing
Dim vr As New VowelRemover()
'Act
outputString = vr.Remove(inputString)
'Assert
Assert.AreEqual("bcd", outputString, "No Vowel String Not Equal")
End Sub
<TestMethod()>
Public Sub Remove_StringWithSimpleLatinVowels_ReturnsStringWithVowelsRemoved()
'Arrange
Dim inputString = "abcde"
Dim outputString As String = Nothing
Dim vr As New VowelRemover()
'Act
outputString = vr.Remove(inputString)
'Assert
Assert.AreEqual("bcd", outputString, "Latin Vowel String Not Equal")
End Sub
<TestMethod()>
Public Sub Remove_StringWithBaseVowelWithCombiningCharacter_RemovesVowelAndAccent()
'Arrange
Dim inputString = New String({"a"c, "b"c, "c"c, "d"c, "e"c, ChrW(&H301)})
Dim outputString As String = Nothing
Dim vr As New VowelRemover()
'Act
outputString = vr.Remove(inputString)
'Assert
Assert.AreEqual("bcd", outputString, "Vowel With Combining Character Not Equal")
End Sub
<TestMethod()>
Public Sub Remove_StringWithCombinedVowelAndAccentCharacter_RemovesCombinedCharacter()
'Arrange
Dim inputString = New String({"a"c, "b"c, "c"c, "d"c, "e"c, ChrW(&HE9)})
Dim outputString As String = Nothing
Dim vr As New VowelRemover()
'Act
outputString = vr.Remove(inputString)
'Assert
Assert.AreEqual("bcd", outputString, "Combined Vowel Not Equal")
End Sub
End Class