Skip to content

Commit

Permalink
add copy test for paths too long
Browse files Browse the repository at this point in the history
  • Loading branch information
clown committed Oct 3, 2024
1 parent 943d1cb commit 8f8fc56
Showing 1 changed file with 62 additions and 2 deletions.
64 changes: 62 additions & 2 deletions Tests/FileSystem/Sources/IoTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,10 @@ namespace Cube.FileSystem.Tests;

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using Cube.Tests;
using NUnit.Framework;

Expand Down Expand Up @@ -423,6 +425,64 @@ public void Move_FileNotFoundException(int id, IoController controller)
Assert.That(() => Io.Move(src, dest, true), Throws.TypeOf<System.IO.FileNotFoundException>());
}

/* --------------------------------------------------------------------- */
///
/// Copy_NameTooLong
///
/// <summary>
/// Tests when too long file name is specified.
/// </summary>
///
/* --------------------------------------------------------------------- */
[TestCaseSource(nameof(TestCases))]
public void Copy_NameTooLong(int id, IoController controller)
{
Io.Configure(controller);

var ss = new StringBuilder();
ss.Append($"{nameof(Copy_NameTooLong)}-{id}-");
for (var i = 0; i < 250; ++i) ss.Append(0);
ss.Append(".txt");

var dest = Get(ss.ToString());
var src = GetSource("Sample.txt");
Assert.That(() => Io.Copy(src, dest, true), Throws.TypeOf<PathTooLongException>());
}

/* --------------------------------------------------------------------- */
///
/// Copy_PathTooLong
///
/// <summary>
/// Tests when too long file name is specified.
/// </summary>
///
/* --------------------------------------------------------------------- */
[TestCaseSource(nameof(TestCases))]
public void Copy_PathTooLong(int id, IoController controller)
{
Io.Configure(controller);

try
{
var root = $"{nameof(Copy_PathTooLong)}-{id}";
var ss = new StringBuilder();
ss.Append($@"{root}\");
for (var i = 0; i < 9; ++i) ss.Append($@"{i}000000000000000000000000000000\");
ss.Append("Sample.txt");

var dest = Get(ss.ToString());
var src = GetSource("Sample.txt");
Io.Copy(src, dest, true);
Io.Delete(Get(root));
Assert.That(id, Is.EqualTo(2)); // AlphaFS
}
catch (Exception e) {
Assert.That(id, Is.EqualTo(1)); // System.IO
Assert.That(e, Is.TypeOf<DirectoryNotFoundException>());
}
}

/* --------------------------------------------------------------------- */
///
/// Open_FileNotFoundException
Expand Down Expand Up @@ -476,8 +536,8 @@ private static IEnumerable<TestCaseData> TestCases
get
{
var n = 0;
yield return new TestCaseData(n++, new IoController());
yield return new TestCaseData(n++, new AlphaFS.IoController());
yield return new TestCaseData(++n, new IoController());
yield return new TestCaseData(++n, new AlphaFS.IoController());
}
}

Expand Down

0 comments on commit 8f8fc56

Please sign in to comment.