コード例 #1
0
        public void PrepareForImagesTest()
        {
            using (var tempDirectory = new TempDirectory(true))
            {
                var manager = new ResultImageManager();
                manager.DirectoryName = tempDirectory.Name;

                // ファイルがない場合
                manager.PrepareForImages();
                {
                    Assert.Null(manager.GetImage("A"));
                    Assert.Null(manager.GetImage("A"));
                }

                // ファイルがある場合
                tempDirectory.AddFile(@"A\a.bmp", new Bitmap(10, 10));
                tempDirectory.AddFile(@"B\b.bmp", new Bitmap(11, 10));
                tempDirectory.AddFile(@"cdef.bmp", new Bitmap(12, 10));

                Assert.True(File.Exists(tempDirectory.FullPath(@"A\a.bmp")));
                Assert.True(File.Exists(tempDirectory.FullPath(@"B\b.bmp")));
                Assert.True(File.Exists(tempDirectory.FullPath(@"cdef.bmp")));

                Assert.Null(manager.PeekCache_TESTONLY("A"));
                Assert.Null(manager.PeekCache_TESTONLY("B"));
                Assert.Null(manager.PeekCache_TESTONLY("C"));

                {
                    manager.PrepareForImages();
            //					var task = manager.GetTask_TESTONLY();
            //					task.Wait();
                }

                var imageA0 = manager.PeekCache_TESTONLY("A");
                Assert.AreEqual(10, imageA0.Width);
                Assert.AreEqual(11, manager.PeekCache_TESTONLY("B").Width);
                Assert.AreEqual(12, manager.PeekCache_TESTONLY("C").Width);
                Assert.AreEqual(12, manager.PeekCache_TESTONLY("D").Width);
                Assert.AreEqual(12, manager.PeekCache_TESTONLY("F").Width);

                var imageA1 = manager.GetImage("A");
                Assert.AreSame(imageA0, imageA1);
                Assert.AreEqual(tempDirectory.FullPath(@"A\a.bmp"), imageA0.Tag);

                Assert.Null(manager.PeekCache_TESTONLY("A"));

                {
                    manager.PrepareForImages();
            //					var task = manager.GetTask_TESTONLY();
            //					task.Wait();
                }

                Assert.AreEqual(10, manager.PeekCache_TESTONLY("A").Width);

                {
                    var image0 = manager.GetImage("A");
                    var image1 = manager.GetImage("A");
                    Assert.AreNotSame(image0, image1);
                    Assert.AreEqual(tempDirectory.FullPath(@"A\a.bmp"), image0.Tag);
                    Assert.AreEqual(tempDirectory.FullPath(@"A\a.bmp"), image1.Tag);
                }
            }
        }
コード例 #2
0
        public void ファイルが消されていた場合の処理()
        {
            using (var tempDirectory = new TempDirectory(true))
            {
                var manager = new ResultImageManager();

                tempDirectory.AddFile(@"A\a0.bmp", new Bitmap(10, 10));
                tempDirectory.AddFile(@"A\a1.bmp", new Bitmap(11, 10));
                tempDirectory.AddFile(@"A\a2.bmp", new Bitmap(12, 10));

                manager.DirectoryName = tempDirectory.Name;
                {
                    manager.PrepareForImages();
            //					var task = manager.GetTask_TESTONLY();
            //					task.Wait();
                }

                tempDirectory.DeleteFile(@"A\a0.bmp");
                tempDirectory.DeleteFile(@"A\a1.bmp");
                tempDirectory.DeleteFile(@"A\a2.bmp");

                {
                    manager.PrepareForImages();
            //					var task = manager.GetTask_TESTONLY();
            //					task.Wait();
                }
                Assert.NotNull(manager.GetImage("A"));
                Assert.Null(manager.GetImage("A"));
            }
        }
コード例 #3
0
        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("");
                });
            }
        }
コード例 #4
0
        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));
            }
        }