예제 #1
0
        public void フォルダ読込許可()
        {
            FileCopyUtil.DirectoryCopy(@"テストデータフォルダ");
            SecurityUtil.Read(new DirectoryInfo("テストデータフォルダ"), AccessControlType.Allow);

            Directory.GetFiles("テストデータフォルダ");
            // フォルダ内のファイル列挙でUnauthorizedAccessExceptionが発生しなければOK

            Assert.Pass();
        }
예제 #2
0
        public void 別名コピー()
        {
            string source = @"テストデータフォルダ\サブフォルダ";

            // コピー
            FileCopyUtil.DirectoryCopy(source, "新しい名前");

            // 指定した名前で作成されているはず
            Assert.True(Directory.Exists("新しい名前"));
        }
예제 #3
0
        public void   コピー_フォルダなしエラー()
        {
            // 存在しないフォルダを指定
            string source = @"test";
            var    ex     = Assert.Throws <ApplicationException>(() =>
            {
                FileCopyUtil.DirectoryCopy(source);
            });

            // 存在しないファイルをコピーしているので存在しないはず
            Assert.IsFalse(File.Exists(source));
            Assert.That(ex.Message, Is.EqualTo(@"【DirectoryCopy】コピー対象のフォルダ(test)が存在しません。"));
        }
예제 #4
0
        public void   コピー_上書きなし()
        {
            string source = @"テストデータフォルダ\サブフォルダ";

            // 同名のフォルダを作成する。
            Directory.CreateDirectory("サブフォルダ");

            // コピー
            FileCopyUtil.DirectoryCopy(source, false);

            Assert.True(Directory.Exists("サブフォルダ"));
            // 上書きなしなのでファイルが存在しないはず
            Assert.False(File.Exists(@"サブフォルダ2\test2.txt"));
        }
예제 #5
0
        public void フォルダ読込禁止()
        {
            FileCopyUtil.DirectoryCopy(@"テストデータフォルダ");
            SecurityUtil.Read(new DirectoryInfo("テストデータフォルダ"), AccessControlType.Deny);

            var ex = Assert.Throws <UnauthorizedAccessException>(() =>
            {
                Directory.GetFiles("テストデータフォルダ");
            });

            // 権限が無いままだと削除できないため、権限を付与
            SecurityUtil.Read(new DirectoryInfo("テストデータフォルダ"), AccessControlType.Allow);
            // フォルダ内のファイル列挙でUnauthorizedAccessExceptionが発生したらOK
            StringAssert.Contains("テストデータフォルダ", ex.Message);
        }
예제 #6
0
        public void   コピー_上書きエラー()
        {
            string source = @"テストデータフォルダ\サブフォルダ";

            // 同名のフォルダを作成し、削除できないようにする
            Directory.CreateDirectory("サブフォルダ");
            var fs = File.Create(@"サブフォルダ\フォルダ削除失敗用.txt");
            var ex = Assert.Throws <ApplicationException>(() =>
            {
                FileCopyUtil.DirectoryCopy(source);
            });

            // 上書きに失敗しているため、ファイルは存在しないはず。
            Assert.IsFalse(File.Exists("サブフォルダ\test2.txt"));
            StringAssert.StartsWith("【DirectoryCopy】", ex.Message);
            StringAssert.Contains("サブフォルダ", ex.Message);
            StringAssert.EndsWith("の削除に失敗しました。", ex.Message);
            // 後処理
            fs.Close();
        }