You've already forked linux-packaging-mono
Imported Upstream version 5.8.0.22
Former-commit-id: df344e34b07851d296efb3e6604c8db42b6f7aa3
This commit is contained in:
parent
5f4a27cc8a
commit
7d05485754
96
mcs/class/corlib/Test/System.IO/DriveInfoTest.cs
Normal file
96
mcs/class/corlib/Test/System.IO/DriveInfoTest.cs
Normal file
@ -0,0 +1,96 @@
|
||||
//
|
||||
// DriveInfoTest.cs - NUnit Test Cases for System.IO.DriveInfo class
|
||||
//
|
||||
// Authors
|
||||
// Alexander Köplinger <alkpli@microsoft.com>
|
||||
//
|
||||
// Copyright (c) 2017 Xamarin, Inc.
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Runtime.Serialization.Formatters.Binary;
|
||||
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace MonoTests.System.IO
|
||||
{
|
||||
[TestFixture]
|
||||
public class DriveInfoTest
|
||||
{
|
||||
[Test]
|
||||
public void Constructor ()
|
||||
{
|
||||
if (Environment.OSVersion.Platform != PlatformID.Win32NT)
|
||||
Assert.Ignore ("The Jenkins builders don't have '/' mounted, just testing Windows for now.");
|
||||
|
||||
var drive = new DriveInfo ("C:\\");
|
||||
ValidateDriveInfo (drive);
|
||||
Assert.AreEqual (DriveType.Fixed, drive.DriveType);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConstructorThrowsOnNonExistingDrive ()
|
||||
{
|
||||
Assert.Throws<ArgumentException> (() => new DriveInfo ("/monodriveinfotest"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetDrivesNotEmpty ()
|
||||
{
|
||||
var drives = DriveInfo.GetDrives ();
|
||||
CollectionAssert.IsNotEmpty (drives);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetDrivesValidInfo ()
|
||||
{
|
||||
var drives = DriveInfo.GetDrives ();
|
||||
|
||||
foreach (var d in drives) {
|
||||
ValidateDriveInfo (d);
|
||||
}
|
||||
}
|
||||
|
||||
void ValidateDriveInfo (DriveInfo d)
|
||||
{
|
||||
AssertHelper.IsNotEmpty (d.Name);
|
||||
AssertHelper.IsNotEmpty (d.VolumeLabel);
|
||||
Assert.NotNull (d.RootDirectory);
|
||||
|
||||
if (d.DriveFormat != null) {
|
||||
Assert.AreNotEqual ("", d.DriveFormat);
|
||||
Assert.AreNotEqual (DriveType.Unknown, d.DriveType, "DriveFormat=" + d.DriveFormat);
|
||||
}
|
||||
|
||||
if (d.DriveType == DriveType.Fixed) { // just consider fixed drives for now
|
||||
Assert.True (d.IsReady);
|
||||
AssertHelper.GreaterOrEqual (d.AvailableFreeSpace, 0);
|
||||
AssertHelper.GreaterOrEqual (d.TotalFreeSpace, 0);
|
||||
AssertHelper.GreaterOrEqual (d.TotalSize, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user