📄 filesystemtest.vb
字号:
' FileSystemTest.vb - NUnit Test Cases for Microsoft.VisualBasic.FileIO.FileSystem'' Rolf Bjarne Kvinge (RKvinge@novell.com)'' ' Copyright (C) 2007 Novell, Inc (http://www.novell.com)'' Permission is hereby granted, free of charge, to any person obtaining' a copy of this software and associated documentation files (the' "Software"), to deal in the Software without restriction, including' without limitation the rights to use, copy, modify, merge, publish,' distribute, sublicense, and/or sell copies of the Software, and to' permit persons to whom the Software is furnished to do so, subject to' the following conditions:' ' The above copyright notice and this permission notice shall be' included in all copies or substantial portions of the Software.' ' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,' EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF' MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND' NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE' LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION' OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION' WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.#If NET_2_0 ThenImports FS = Microsoft.VisualBasic.FileIO.FileSystemImports System.IONamespace FileIO <TestFixture()> _Public Class FileSystemTest Private BASEDIR As String Private SLOWFILESIZE As Integer = 10000000 Sub New() End Sub <SetUp()> _ Public Sub Init() BASEDIR = StripBS(Path.Combine(Environment.CurrentDirectory, "FSTestData")) & Path.DirectorySeparatorChar If FS.DirectoryExists(BASEDIR) Then FS.DeleteDirectory(BASEDIR, Microsoft.VisualBasic.FileIO.DeleteDirectoryOption.DeleteAllContents) End If FS.CreateDirectory(BASEDIR) End Sub <TearDown()> _ Public Sub CleanUp() Try FS.DeleteDirectory(BASEDIR, Microsoft.VisualBasic.FileIO.DeleteDirectoryOption.DeleteAllContents) Catch ex As Exception#If Not TARGET_JVM Then Throw ex#End If End Try End Sub <Test()> _ Public Sub CombinePathTest() Assert.AreEqual(StripBS(IO.Path.Combine(IO.Path.GetFullPath("a"), "b")), FS.CombinePath("a", "b"), "#01") Assert.AreEqual(StripBS(IO.Path.Combine(IO.Path.GetFullPath("a/"), "b/")), FS.CombinePath("a/", "b/"), "#02") Assert.AreEqual(StripBS(IO.Path.Combine(IO.Path.GetFullPath("a\"), "b\")), FS.CombinePath("a\", "b\"), "#03") End Sub <Category("Slow")> _ <Test()> _ Public Sub CopyDirectoryTest1() Dim dira As String = BASEDIR & "CDT1_a" Dim filea1 As String = Path.Combine(dira, "filea1") Dim filea2 As String = Path.Combine(dira, "filea2") Dim filea3 As String = Path.Combine(dira, "filea3") Dim dirb As String = BASEDIR & "CDT1_b" Dim fileb1 As String = Path.Combine(dirb, "filea1") Dim fileb2 As String = Path.Combine(dirb, "filea2") Dim fileb3 As String = Path.Combine(dirb, "filea3") Dim smallgarbage As String = "somesmallgarbagehere" Dim mediumgarbage As String = CreateBigString(smallgarbage, 1024) Dim biggarbage As String = CreateBigString(mediumgarbage, 1024) FS.CreateDirectory(dira) FS.WriteAllText(filea1, smallgarbage, False) FS.WriteAllText(filea2, mediumgarbage, False) FS.WriteAllText(filea3, biggarbage, False) FS.CopyDirectory(dira, dirb) Helper.CompareDirectory(dira, dirb, "#CDT1-1") Try FS.CopyDirectory(dira, dirb) Assert.Fail("#CDT1-2 Expected 'IOException'") Catch ex As IOException Assert.AreEqual("Could not complete operation on some files and directories. See the Data property of the exception for more details.", ex.Message, "#CDT1-3") Catch ex As Exception Assert.Fail("#CDT1-4 Expected 'IOException'") End Try End Sub <Test()> _ Public Sub CopyDirectoryTest2() Dim dira As String = BASEDIR & "CDT2_a" Dim filea1 As String = Path.Combine(dira, "filea1") Dim dirb As String = BASEDIR & "CDT2_b" Dim fileb1 As String = Path.Combine(dirb, "filea1") Dim smallgarbage As String = "thisisgarbage" FS.CreateDirectory(dira) FS.WriteAllText(filea1, smallgarbage, False) FS.CopyDirectory(dira, dirb) Helper.CompareDirectory(dira, dirb, "#CDT2-1") Try FS.CopyDirectory(dira, dirb) Assert.Fail("#CDT2-2 Expected 'IOException'") Catch ex As IOException Assert.AreEqual("Could not complete operation on some files and directories. See the Data property of the exception for more details.", ex.Message, "#CDT2-3") Catch ex As Exception Assert.Fail("#CDT2-4 Expected 'IOException'") End Try Try FS.CopyDirectory(dira, dirb, False) Assert.Fail("#CDT2-5 Expected 'IOException'") Catch ex As IOException Assert.AreEqual("Could not complete operation on some files and directories. See the Data property of the exception for more details.", ex.Message, "#CDT2-6") Catch ex As Exception Assert.Fail("#CDT2-7 Expected 'IOException'") End Try End Sub <Test()> _ Public Sub CopyDirectoryTest3() Dim dira As String = BASEDIR & "CDT3_a" Dim filea1 As String = Path.Combine(dira, "filea1") Dim dirb As String = BASEDIR & "CDT3_b" Dim fileb1 As String = Path.Combine(dirb, "filea1") Dim smallgarbage As String = "moreGarBaGe" FS.CreateDirectory(dira) FS.WriteAllText(filea1, smallgarbage, False) FS.CopyDirectory(dira, dirb) Helper.CompareDirectory(dira, dirb, "#CDT3-1") FS.CopyDirectory(dira, dirb, True) Helper.CompareDirectory(dira, dirb, "#CDT3-2") End Sub 'TargetJvm - Cancle UI NotSupported <Category("TargetJvmNotSupported")> _ <Category("UI")> _ <Test()> _ Public Sub CopyDirectoryTest4() Dim dira As String = BASEDIR & "CDT4_a" Dim dirb As String = BASEDIR & "CDT4_b" CreateComplicatedFileHierarchy(dira, True) FS.CopyDirectory(dira, dirb, Microsoft.VisualBasic.FileIO.UIOption.AllDialogs, Microsoft.VisualBasic.FileIO.UICancelOption.ThrowException) MsgBox("On the next dialog press 'Cancel'") Try FS.CopyDirectory(dira, dirb, Microsoft.VisualBasic.FileIO.UIOption.AllDialogs, Microsoft.VisualBasic.FileIO.UICancelOption.ThrowException) Assert.Fail("#CDT4-1 Expected 'IOException', got no exception.") Catch ex As OperationCanceledException Assert.AreEqual("The operation was canceled.", ex.Message, "#CDT4-2") Catch ex As Exception Assert.Fail("#CDT4-3 Expected 'OperationCanceledException', got '" & ex.GetType.Name & "'") End Try End Sub <Category("UI")> _ <Test()> _ Public Sub CopyDirectoryTest5() Dim dira As String = BASEDIR & "CDT5_a" Dim dirb As String = BASEDIR & "CDT5_b" CreateComplicatedFileHierarchy(dira, True) FS.CopyDirectory(dira, dirb, Microsoft.VisualBasic.FileIO.UIOption.AllDialogs, Microsoft.VisualBasic.FileIO.UICancelOption.DoNothing) MsgBox("On the next dialogs you may press any option") FS.CopyDirectory(dira, dirb, Microsoft.VisualBasic.FileIO.UIOption.AllDialogs, Microsoft.VisualBasic.FileIO.UICancelOption.DoNothing) End Sub <Category("UI")> _ <Test()> _ Public Sub CopyDirectoryTest6() Dim dira As String = BASEDIR & "CDT6_a" Dim dirb As String = BASEDIR & "CDT6_b" CreateComplicatedFileHierarchy(dira, True) FS.CopyDirectory(dira, dirb, Microsoft.VisualBasic.FileIO.UIOption.OnlyErrorDialogs, Microsoft.VisualBasic.FileIO.UICancelOption.DoNothing) FS.CopyDirectory(dira, dirb, Microsoft.VisualBasic.FileIO.UIOption.OnlyErrorDialogs, Microsoft.VisualBasic.FileIO.UICancelOption.DoNothing) End Sub <Category("UI")> _ <Test()> _ Public Sub CopyDirectoryTest7() Dim dira As String = BASEDIR & "CDT7_a" Dim dirb As String = BASEDIR & "CDT7_b" CreateComplicatedFileHierarchy(dira, True) FS.CopyDirectory(dira, dirb, Microsoft.VisualBasic.FileIO.UIOption.OnlyErrorDialogs, Microsoft.VisualBasic.FileIO.UICancelOption.ThrowException) FS.CopyDirectory(dira, dirb, Microsoft.VisualBasic.FileIO.UIOption.OnlyErrorDialogs, Microsoft.VisualBasic.FileIO.UICancelOption.ThrowException) End Sub <Category("Slow")> _ <Test()> _ Public Sub CopyFileTest1() Dim testname As String = "CFT1" Dim dir As String = Path.Combine(BASEDIR, testname) Dim a As String = Path.Combine(dir, "a.txt") Dim b As String = Path.Combine(dir, "b.txt") FS.CreateDirectory(dir) CreateFile(a, 100000) FS.CopyFile(a, b) Helper.CompareFile(a, b, testname) FS.DeleteDirectory(dir, Microsoft.VisualBasic.FileIO.DeleteDirectoryOption.DeleteAllContents) End Sub <Test()> _ Public Sub CopyFileTest2() Dim testname As String = "CFT2" Dim dir As String = Path.Combine(BASEDIR, testname) Dim a As String = Path.Combine(dir, "a.txt") Dim b As String = Path.Combine(dir, "b.txt") FS.CreateDirectory(dir) CreateFile(a, 10) FS.CopyFile(a, b) Try FS.CopyFile(a, b) Assert.Fail(testname & "-1" & " Expected 'IOException'") Catch ex As IOException Assert.AreEqual(String.Format("The file '{0}' already exists.", b), ex.Message, testname & "-2") End Try FS.DeleteDirectory(dir, Microsoft.VisualBasic.FileIO.DeleteDirectoryOption.DeleteAllContents) End Sub <Test()> _ Public Sub CopyFileTest3() Dim testname As String = "CFT3" Dim dir As String = Path.Combine(BASEDIR, testname) Dim a As String = Path.Combine(dir, "a.txt") Dim b As String = Path.Combine(dir, "b.txt") FS.CreateDirectory(dir) CreateFile(a, 10) FS.CopyFile(a, b) FS.CopyFile(a, b, True)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -