public void WriteUniqueTimedFile_automatically_numbers_files()
{
TestHelper.CleanupTestFolder();
DateTime now = DateTime.UtcNow;
var content = Encoding.UTF8.GetBytes(String.Format("Clash @{0}...", now));
string prefix = Path.Combine(TestHelper.TestFolder, "Clash ");
List <string> files = new List <string>();
for (int i = 0; i < 10; ++i)
{
files.Add(FileUtil.WriteUniqueTimedFile(prefix, String.Empty, now, content, true, 6));
}
Assert.That(files.Count, Is.EqualTo(10));
Assert.That(files.All(f => f.StartsWith(prefix)));
Assert.That(files.All(f => File.Exists(f)));
Assert.That(files[1], Is.EqualTo(files[0] + "(1)"));
Assert.That(files[2], Is.EqualTo(files[0] + "(2)"));
Assert.That(files[3], Is.EqualTo(files[0] + "(3)"));
Assert.That(files[4], Is.EqualTo(files[0] + "(4)"));
Assert.That(files[5], Is.EqualTo(files[0] + "(5)"));
Assert.That(files[6], Is.EqualTo(files[0] + "(6)"));
for (int i = 7; i < 10; ++i)
{
Assert.That(files[i].Length, Is.EqualTo(files[0].Length + 1 + 22), "Ends with Url compliant Base64 GUID.");
}
Assert.That(files.SequenceEqual(files.Distinct()));
}