public void 並び順テスト() { using (var tempDirectory = new TempDirectory(true)) { var manager = new ResultImageManager(); tempDirectory.AddFile(@"A\file0.png", ""); tempDirectory.AddFile(@"A\file1.png", ""); tempDirectory.AddFile(@"A\file2.png", ""); var now = new DateTime(2013, 7, 11, 0, 0, 0); // UTC EPuzzleTime.Now = now; var file0 = tempDirectory.GetFullPath(@"A\file0.png"); var file1 = tempDirectory.GetFullPath(@"A\file1.png"); var file2 = tempDirectory.GetFullPath(@"A\file2.png"); Assert.False(manager.最後に表示してからもっとも時間が経過しているファイルから表示する); manager.DirectoryName = tempDirectory.Name; manager.最後に表示してからもっとも時間が経過しているファイルから表示する = true; Assert.True(manager.最後に表示してからもっとも時間が経過しているファイルから表示する); manager.UpdateAccessTime(file1, now + TimeSpan.FromSeconds(1d)); manager.UpdateAccessTime(file0, now + TimeSpan.FromSeconds(2d)); manager.UpdateAccessTime(file2, now + TimeSpan.FromSeconds(3d)); Assert.AreEqual(file1, manager.GetFile("A")); Assert.AreEqual(file0, manager.GetFile("A")); Assert.AreEqual(file2, manager.GetFile("A")); Assert.AreEqual(file1, manager.GetFile("A")); Assert.AreEqual(file0, manager.GetFile("A")); Assert.AreEqual(file2, manager.GetFile("A")); EPuzzleTime.Now = now + TimeSpan.FromMinutes(1d); manager.UpdateAccessTime(file1); Assert.AreEqual(file0, manager.GetFile("A")); Assert.AreEqual(file2, manager.GetFile("A")); Assert.AreEqual(file1, manager.GetFile("A")); Assert.AreEqual(file0, manager.GetFile("A")); Assert.AreEqual(file2, manager.GetFile("A")); Assert.AreEqual(file1, manager.GetFile("A")); using (var tempFile = new TempFile()) { manager.ImageInfoContainerFileName = tempFile.Name; manager.Save(); var manager2 = new ResultImageManager(); manager2.最後に表示してからもっとも時間が経過しているファイルから表示する = true; manager2.DirectoryName = tempDirectory.Name; manager2.ImageInfoContainerFileName = tempFile.Name; manager2.Load(); Assert.AreEqual(file0, manager2.GetFile("A")); Assert.AreEqual(file2, manager2.GetFile("A")); Assert.AreEqual(file1, manager2.GetFile("A")); } using (var tempFile = new TempFile()) { // 消したファイルの情報は保存しない manager.ImageInfoContainerFileName = tempFile.Name; tempDirectory.DeleteFile(@"A\file1.png"); tempDirectory.DeleteFile(@"A\file2.png"); manager.Save(); var manager2 = new ResultImageManager(); manager2.最後に表示してからもっとも時間が経過しているファイルから表示する = true; manager2.DirectoryName = tempDirectory.Name; manager2.ImageInfoContainerFileName = tempFile.Name; manager2.Load(); var imageInfoContainer = (ImageInfoContainer)TestUtility.GetValue(manager2, "_imageInfoContainer"); Assert.NotNull(imageInfoContainer); Assert.AreEqual(1, imageInfoContainer.ImageInfos.Count()); CollectionAssert.AreEqual(new [] { file0, }, imageInfoContainer.ImageInfos.Keys); } // UpdateAccessTimeにnullなどを渡した場合 Assert.Throws<ArgumentNullException>(() => { manager.UpdateAccessTime(null); }); Assert.Throws<ArgumentException>(() => { manager.UpdateAccessTime(" "); }); Assert.Throws<ArgumentException>(() => { manager.UpdateAccessTime(""); }); } }
public void Test0() { using (var tempDirectory = new TempDirectory(true)) { var manager = new ResultImageManager(); tempDirectory.AddFile(@"A\file0.png", ""); tempDirectory.AddFile(@"B\file0.bmp", ""); tempDirectory.AddFile(@"D\file0.txt", ""); manager.DirectoryName = tempDirectory.Name; Assert.AreEqual(tempDirectory.GetFullPath(@"A\file0.png"), manager.GetFile("A")); Assert.AreEqual(tempDirectory.GetFullPath(@"A\file0.png"), manager.GetFile("A")); Assert.AreEqual(tempDirectory.GetFullPath(@"A\file0.png"), manager.GetFile("A")); Assert.AreEqual(tempDirectory.GetFullPath(@"B\file0.bmp"), manager.GetFile("B")); Assert.AreEqual(tempDirectory.GetFullPath(@"B\file0.bmp"), manager.GetFile("B")); Assert.AreEqual(tempDirectory.GetFullPath(@"B\file0.bmp"), manager.GetFile("B")); Assert.Null(manager.GetFile("C")); Assert.Null(manager.GetFile("C")); Assert.Null(manager.GetFile("C")); Assert.Null(manager.GetFile("D")); Assert.Null(manager.GetFile("D")); Assert.Null(manager.GetFile("D")); tempDirectory.AddFile(@"file3.jpg", ""); Assert.AreEqual(tempDirectory.GetFullPath(@"file3.jpg"), manager.GetFile("C")); Assert.AreEqual(tempDirectory.GetFullPath(@"file3.jpg"), manager.GetFile("C")); Assert.AreEqual(tempDirectory.GetFullPath(@"file3.jpg"), manager.GetFile("C")); Assert.AreEqual(tempDirectory.GetFullPath(@"file3.jpg"), manager.GetFile("D")); Assert.AreEqual(tempDirectory.GetFullPath(@"file3.jpg"), manager.GetFile("D")); Assert.AreEqual(tempDirectory.GetFullPath(@"file3.jpg"), manager.GetFile("D")); tempDirectory.AddFile(@"A\file1.png", ""); manager.Refresh(); CollectionAssert.AreEquivalent(new [] { tempDirectory.GetFullPath(@"A\file0.png"), tempDirectory.GetFullPath(@"A\file0.png"), tempDirectory.GetFullPath(@"A\file1.png"), tempDirectory.GetFullPath(@"A\file1.png"), }, new [] { manager.GetFile("A"), manager.GetFile("A"), manager.GetFile("A"), manager.GetFile("A"), }); manager.Refresh(); var file = manager.GetFile("A", false); Assert.AreEqual(file, manager.GetFile("A", false)); Assert.AreEqual(file, manager.GetFile("A", false)); Assert.AreEqual(file, manager.GetFile("A", false)); Assert.AreEqual(file, manager.GetFile("A", false)); Assert.AreEqual(file, manager.GetFile("A", false)); Assert.AreEqual(file, manager.GetFile("A", false)); } }