namespace MonoTests.System.IO
{
-
[TestFixture]
- public class FileSystemInfoTest
+ public class FileSystemInfoTest : Assertion
{
-
- public FileSystemInfoTest() {}
+ string TempFolder = Path.Combine (Path.GetTempPath (), "MonoTests.System.IO.Tests");
+ static readonly char DSC = Path.DirectorySeparatorChar;
[SetUp]
protected void SetUp()
{
+ if (Directory.Exists (TempFolder))
+ Directory.Delete (TempFolder, true);
+ Directory.CreateDirectory (TempFolder);
Thread.CurrentThread.CurrentCulture = new CultureInfo ("EN-us");
}
[TearDown]
- protected void TearDown() {}
+ protected void TearDown() {
+ if (Directory.Exists (TempFolder))
+ Directory.Delete (TempFolder, true);
+ }
+
+ bool Windows
+ {
+ get {
+ return Path.DirectorySeparatorChar == '\\';
+ }
+ }
+
+ bool Unix
+ {
+ get {
+ return Path.DirectorySeparatorChar == '/';
+ }
+ }
+
+ bool Mac
+ {
+ get {
+ return Path.DirectorySeparatorChar == ':';
+ }
+ }
private void DeleteFile (string path)
{
[Test]
public void CreationTimeFile ()
{
- string path = "resources/FSIT.CreationTime.Test";
+ string path = TempFolder + DSC + "FSIT.CreationTime.Test";
DeleteFile (path);
-
+ if (Unix) { // Unix doesn't support CreationTimes
+ return;
+ }
try {
File.Create (path).Close ();
FileSystemInfo info = new FileInfo (path);
info.CreationTime = new DateTime (1999, 12, 31, 11, 59, 59);
DateTime time = info.CreationTime;
- Assertion.AssertEquals ("test#01", 1999, time.Year);
- Assertion.AssertEquals ("test#02", 12, time.Month);
- Assertion.AssertEquals ("test#03", 31, time.Day);
- Assertion.AssertEquals ("test#04", 11, time.Hour);
- Assertion.AssertEquals ("test#05", 59, time.Minute);
- Assertion.AssertEquals ("test#06", 59, time.Second);
+ AssertEquals ("test#01", 1999, time.Year);
+ AssertEquals ("test#02", 12, time.Month);
+ AssertEquals ("test#03", 31, time.Day);
+ AssertEquals ("test#04", 11, time.Hour);
+ AssertEquals ("test#05", 59, time.Minute);
+ AssertEquals ("test#06", 59, time.Second);
time = TimeZone.CurrentTimeZone.ToLocalTime (info.CreationTimeUtc);
- Assertion.AssertEquals ("test#07", 1999, time.Year);
- Assertion.AssertEquals ("test#08", 12, time.Month);
- Assertion.AssertEquals ("test#09", 31, time.Day);
- Assertion.AssertEquals ("test#10", 11, time.Hour);
- Assertion.AssertEquals ("test#11", 59, time.Minute);
- Assertion.AssertEquals ("test#12", 59, time.Second);
+ AssertEquals ("test#07", 1999, time.Year);
+ AssertEquals ("test#08", 12, time.Month);
+ AssertEquals ("test#09", 31, time.Day);
+ AssertEquals ("test#10", 11, time.Hour);
+ AssertEquals ("test#11", 59, time.Minute);
+ AssertEquals ("test#12", 59, time.Second);
info.CreationTimeUtc = new DateTime (1999, 12, 31, 11, 59, 59);
time = TimeZone.CurrentTimeZone.ToUniversalTime (info.CreationTime);
- Assertion.AssertEquals ("test#13", 1999, time.Year);
- Assertion.AssertEquals ("test#14", 12, time.Month);
- Assertion.AssertEquals ("test#15", 31, time.Day);
- Assertion.AssertEquals ("test#16", 11, time.Hour);
- Assertion.AssertEquals ("test#17", 59, time.Minute);
- Assertion.AssertEquals ("test#18", 59, time.Second);
+ AssertEquals ("test#13", 1999, time.Year);
+ AssertEquals ("test#14", 12, time.Month);
+ AssertEquals ("test#15", 31, time.Day);
+ AssertEquals ("test#16", 11, time.Hour);
+ AssertEquals ("test#17", 59, time.Minute);
+ AssertEquals ("test#18", 59, time.Second);
time = info.CreationTimeUtc;
- Assertion.AssertEquals ("test#19", 1999, time.Year);
- Assertion.AssertEquals ("test#20", 12, time.Month);
- Assertion.AssertEquals ("test#21", 31, time.Day);
- Assertion.AssertEquals ("test#22", 11, time.Hour);
- Assertion.AssertEquals ("test#23", 59, time.Minute);
- Assertion.AssertEquals ("test#24", 59, time.Second);
+ AssertEquals ("test#19", 1999, time.Year);
+ AssertEquals ("test#20", 12, time.Month);
+ AssertEquals ("test#21", 31, time.Day);
+ AssertEquals ("test#22", 11, time.Hour);
+ AssertEquals ("test#23", 59, time.Minute);
+ AssertEquals ("test#24", 59, time.Second);
} finally {
DeleteFile (path);
[Test]
public void CreationTimeDirectory ()
{
- string path = "resources/FSIT.CreationTimeDirectory.Test";
+ string path = TempFolder + DSC + "FSIT.CreationTimeDirectory.Test";
DeleteDir (path);
+ if (Unix) { // Unix doesn't support CreationTimes
+ return;
+ }
try {
FileSystemInfo info = Directory.CreateDirectory (path);
info.CreationTime = new DateTime (1999, 12, 31, 11, 59, 59);
DateTime time = info.CreationTime;
- Assertion.AssertEquals ("test#01", 1999, time.Year);
- Assertion.AssertEquals ("test#02", 12, time.Month);
- Assertion.AssertEquals ("test#03", 31, time.Day);
+ AssertEquals ("test#01", 1999, time.Year);
+ AssertEquals ("test#02", 12, time.Month);
+ AssertEquals ("test#03", 31, time.Day);
time = TimeZone.CurrentTimeZone.ToLocalTime (info.CreationTimeUtc);
- Assertion.AssertEquals ("test#07", 1999, time.Year);
- Assertion.AssertEquals ("test#08", 12, time.Month);
- Assertion.AssertEquals ("test#09", 31, time.Day);
- Assertion.AssertEquals ("test#10", 11, time.Hour);
+ AssertEquals ("test#07", 1999, time.Year);
+ AssertEquals ("test#08", 12, time.Month);
+ AssertEquals ("test#09", 31, time.Day);
+ AssertEquals ("test#10", 11, time.Hour);
info.CreationTimeUtc = new DateTime (1999, 12, 31, 11, 59, 59);
time = TimeZone.CurrentTimeZone.ToUniversalTime (info.CreationTime);
- Assertion.AssertEquals ("test#13", 1999, time.Year);
- Assertion.AssertEquals ("test#14", 12, time.Month);
- Assertion.AssertEquals ("test#15", 31, time.Day);
+ AssertEquals ("test#13", 1999, time.Year);
+ AssertEquals ("test#14", 12, time.Month);
+ AssertEquals ("test#15", 31, time.Day);
time = TimeZone.CurrentTimeZone.ToLocalTime (info.CreationTimeUtc);
- Assertion.AssertEquals ("test#19", 1999, time.Year);
- Assertion.AssertEquals ("test#20", 12, time.Month);
- Assertion.AssertEquals ("test#21", 31, time.Day);
+ AssertEquals ("test#19", 1999, time.Year);
+ AssertEquals ("test#20", 12, time.Month);
+ AssertEquals ("test#21", 31, time.Day);
} finally {
DeleteDir (path);
[Test]
public void CreationTimeNoFileOrDirectory ()
{
- string path = "resources/FSIT.CreationTimeNoFile.Test";
+ string path = TempFolder + DSC + "FSIT.CreationTimeNoFile.Test";
DeleteFile (path);
DeleteDir (path);
try {
FileSystemInfo info = new FileInfo (path);
- DateTime time = info.CreationTime;
- Assertion.AssertEquals ("test#01", 1601, time.Year);
- Assertion.AssertEquals ("test#02", 1, time.Month);
- Assertion.AssertEquals ("test#03", 1, time.Day);
- Assertion.AssertEquals ("test#04", 2, time.Hour);
- Assertion.AssertEquals ("test#05", 0, time.Minute);
- Assertion.AssertEquals ("test#06", 0, time.Second);
- Assertion.AssertEquals ("test#07", 0, time.Millisecond);
+ DateTime time = TimeZone.CurrentTimeZone.ToUniversalTime(info.CreationTime);
+ AssertEquals ("test#01", 1601, time.Year);
+ AssertEquals ("test#02", 1, time.Month);
+ AssertEquals ("test#03", 1, time.Day);
+ AssertEquals ("test#04", 0, time.Hour);
+ AssertEquals ("test#05", 0, time.Minute);
+ AssertEquals ("test#06", 0, time.Second);
+ AssertEquals ("test#07", 0, time.Millisecond);
info = new DirectoryInfo (path);
- time = info.CreationTime;
- Assertion.AssertEquals ("test#08", 1601, time.Year);
- Assertion.AssertEquals ("test#09", 1, time.Month);
- Assertion.AssertEquals ("test#10", 1, time.Day);
- Assertion.AssertEquals ("test#11", 2, time.Hour);
- Assertion.AssertEquals ("test#12", 0, time.Minute);
- Assertion.AssertEquals ("test#13", 0, time.Second);
- Assertion.AssertEquals ("test#14", 0, time.Millisecond);
+ time = TimeZone.CurrentTimeZone.ToUniversalTime(info.CreationTime);
+ AssertEquals ("test#08", 1601, time.Year);
+ AssertEquals ("test#09", 1, time.Month);
+ AssertEquals ("test#10", 1, time.Day);
+ AssertEquals ("test#11", 0, time.Hour);
+ AssertEquals ("test#12", 0, time.Minute);
+ AssertEquals ("test#13", 0, time.Second);
+ AssertEquals ("test#14", 0, time.Millisecond);
} finally {
DeleteFile (path);
DeleteDir (path);
[Test]
public void Extenssion ()
{
- string path = "resources/FSIT.Extenssion.Test";
+ string path = TempFolder + DSC + "FSIT.Extenssion.Test";
DeleteFile (path);
try {
FileSystemInfo info = new FileInfo (path);
- Assertion.AssertEquals ("test#01", ".Test", info.Extension);
+ AssertEquals ("test#01", ".Test", info.Extension);
} finally {
DeleteFile (path);
}
[Test]
public void DefaultLastAccessTime ()
{
- string path = "resources/FSIT.DefaultLastAccessTime.Test";
+ string path = TempFolder + DSC + "FSIT.DefaultLastAccessTime.Test";
DeleteFile (path);
try {
FileSystemInfo info = new FileInfo (path);
- DateTime time = info.LastAccessTime;
+ DateTime time = TimeZone.CurrentTimeZone.ToUniversalTime(info.LastAccessTime);
- Assertion.AssertEquals ("test#01", 1601, time.Year);
- Assertion.AssertEquals ("test#02", 1, time.Month);
- Assertion.AssertEquals ("test#03", 1, time.Day);
- Assertion.AssertEquals ("test#04", 2, time.Hour);
- Assertion.AssertEquals ("test#05", 0, time.Minute);
- Assertion.AssertEquals ("test#06", 0, time.Second);
- Assertion.AssertEquals ("test#07", 0, time.Millisecond);
+ AssertEquals ("test#01", 1601, time.Year);
+ AssertEquals ("test#02", 1, time.Month);
+ AssertEquals ("test#03", 1, time.Day);
+ AssertEquals ("test#04", 0, time.Hour);
+ AssertEquals ("test#05", 0, time.Minute);
+ AssertEquals ("test#06", 0, time.Second);
+ AssertEquals ("test#07", 0, time.Millisecond);
} finally {
DeleteFile (path);
}
[Test]
public void LastAccessTime ()
{
- string path = "resources/FSIT.LastAccessTime.Test";
+ string path = TempFolder + DSC + "FSIT.LastAccessTime.Test";
DeleteFile (path);
try {
info.LastAccessTime = new DateTime (2000, 1, 1, 1, 1, 1);
time = info.LastAccessTime;
- Assertion.AssertEquals ("test#01", 2000, time.Year);
- Assertion.AssertEquals ("test#02", 1, time.Month);
- Assertion.AssertEquals ("test#03", 1, time.Day);
- Assertion.AssertEquals ("test#04", 1, time.Hour);
+ AssertEquals ("test#01", 2000, time.Year);
+ AssertEquals ("test#02", 1, time.Month);
+ AssertEquals ("test#03", 1, time.Day);
+ AssertEquals ("test#04", 1, time.Hour);
time = TimeZone.CurrentTimeZone.ToLocalTime (info.LastAccessTimeUtc);
- Assertion.AssertEquals ("test#05", 2000, time.Year);
- Assertion.AssertEquals ("test#06", 1, time.Month);
- Assertion.AssertEquals ("test#07", 1, time.Day);
- Assertion.AssertEquals ("test#08", 1, time.Hour);
+ AssertEquals ("test#05", 2000, time.Year);
+ AssertEquals ("test#06", 1, time.Month);
+ AssertEquals ("test#07", 1, time.Day);
+ AssertEquals ("test#08", 1, time.Hour);
info.LastAccessTimeUtc = new DateTime (2000, 1, 1, 1, 1, 1);
time = TimeZone.CurrentTimeZone.ToUniversalTime (info.LastAccessTime);
- Assertion.AssertEquals ("test#09", 2000, time.Year);
- Assertion.AssertEquals ("test#10", 1, time.Month);
- Assertion.AssertEquals ("test#11", 1, time.Day);
- Assertion.AssertEquals ("test#12", 1, time.Hour);
+ AssertEquals ("test#09", 2000, time.Year);
+ AssertEquals ("test#10", 1, time.Month);
+ AssertEquals ("test#11", 1, time.Day);
+ AssertEquals ("test#12", 1, time.Hour);
time = info.LastAccessTimeUtc;
- Assertion.AssertEquals ("test#13", 2000, time.Year);
- Assertion.AssertEquals ("test#14", 1, time.Month);
- Assertion.AssertEquals ("test#15", 1, time.Day);
- Assertion.AssertEquals ("test#16", 1, time.Hour);
-
+ AssertEquals ("test#13", 2000, time.Year);
+ AssertEquals ("test#14", 1, time.Month);
+ AssertEquals ("test#15", 1, time.Day);
+ AssertEquals ("test#16", 1, time.Hour);
} finally {
DeleteFile (path);
[Test]
public void DefaultLastWriteTime ()
{
- string path = "resources/FSIT.DefaultLastWriteTime.Test";
+ string path = TempFolder + DSC + "FSIT.DefaultLastWriteTime.Test";
DeleteDir (path);
try {
FileSystemInfo info = new DirectoryInfo (path);
- DateTime time = info.LastAccessTime;
+ DateTime time = TimeZone.CurrentTimeZone.ToUniversalTime(info.LastWriteTime);
- Assertion.AssertEquals ("test#01", 1601, time.Year);
- Assertion.AssertEquals ("test#02", 1, time.Month);
- Assertion.AssertEquals ("test#03", 1, time.Day);
- Assertion.AssertEquals ("test#04", 2, time.Hour);
- Assertion.AssertEquals ("test#05", 0, time.Minute);
- Assertion.AssertEquals ("test#06", 0, time.Second);
- Assertion.AssertEquals ("test#07", 0, time.Millisecond);
+ AssertEquals ("test#01", 1601, time.Year);
+ AssertEquals ("test#02", 1, time.Month);
+ AssertEquals ("test#03", 1, time.Day);
+ AssertEquals ("test#04", 0, time.Hour);
+ AssertEquals ("test#05", 0, time.Minute);
+ AssertEquals ("test#06", 0, time.Second);
+ AssertEquals ("test#07", 0, time.Millisecond);
} finally {
DeleteDir (path);
}
[Test]
public void LastWriteTime ()
{
- string path = "resources/FSIT.LastWriteTime.Test";
+ string path = TempFolder + DSC + "FSIT.LastWriteTime.Test";
DeleteDir (path);
try {
info.LastWriteTime = new DateTime (2000, 1, 1, 1, 1, 1);
DateTime time = info.LastWriteTime;
- Assertion.AssertEquals ("test#01", 2000, time.Year);
- Assertion.AssertEquals ("test#02", 1, time.Month);
- Assertion.AssertEquals ("test#03", 1, time.Day);
- Assertion.AssertEquals ("test#04", 1, time.Hour);
-
- time = TimeZone.CurrentTimeZone.ToLocalTime (info.LastWriteTimeUtc);
- Assertion.AssertEquals ("test#05", 2000, time.Year);
- Assertion.AssertEquals ("test#06", 1, time.Month);
- Assertion.AssertEquals ("test#07", 1, time.Day);
- Assertion.AssertEquals ("test#08", 1, time.Hour);
+ AssertEquals ("test#01", 2000, time.Year);
+ AssertEquals ("test#02", 1, time.Month);
+ AssertEquals ("test#03", 1, time.Day);
+ AssertEquals ("test#04", 1, time.Hour);
- info.LastWriteTimeUtc = new DateTime (2000, 1, 1, 1, 1, 1);
- time = TimeZone.CurrentTimeZone.ToUniversalTime (info.LastWriteTime);
- Assertion.AssertEquals ("test#09", 2000, time.Year);
- Assertion.AssertEquals ("test#10", 1, time.Month);
- Assertion.AssertEquals ("test#11", 1, time.Day);
- Assertion.AssertEquals ("test#12", 1, time.Hour);
+ time = info.LastWriteTimeUtc.ToLocalTime ();
+ AssertEquals ("test#05", 2000, time.Year);
+ AssertEquals ("test#06", 1, time.Month);
+ AssertEquals ("test#07", 1, time.Day);
+ AssertEquals ("test#08", 1, time.Hour);
+ info.LastWriteTimeUtc = new DateTime (2000, 1, 1, 1, 1, 1);
time = info.LastWriteTimeUtc;
- Assertion.AssertEquals ("test#13", 2000, time.Year);
- Assertion.AssertEquals ("test#14", 1, time.Month);
- Assertion.AssertEquals ("test#15", 1, time.Day);
- Assertion.AssertEquals ("test#16", 1, time.Hour);
+ AssertEquals ("test#09", 2000, time.Year);
+ AssertEquals ("test#10", 1, time.Month);
+ AssertEquals ("test#11", 1, time.Day);
+ AssertEquals ("test#12", 1, time.Hour);
+
+ time = info.LastWriteTime.ToUniversalTime ();
+ AssertEquals ("test#13", 2000, time.Year);
+ AssertEquals ("test#14", 1, time.Month);
+ AssertEquals ("test#15", 1, time.Day);
+ AssertEquals ("test#16", 1, time.Hour);
} finally {
DeleteDir (path);