Exemplo n.º 1
0
        public void IsRobust()
        {
            var env = new Ex.Env();

            string    message   = null;
            Exception exception = null;

            env.Reporter.OnExceptionReported = (msg, ex) =>
            {
                message   = msg;
                exception = ex;
            };

            env.System.IO.File.Open = (path, mode, access, share) => {
                throw new Exception("fubar");
            };

            var deleted = false;

            env.System.IO.File.Delete = (path) => {
                deleted = true;
            };

            var i = new FileNotDestructivelyWritable().Init(env, "TEST", "file");

            Assert.True(i.Ok);
            Assert.Equal("IsFileDestructivelyWritable bombed for file", message);
            Assert.Equal("fubar", exception.Message);
            Assert.True(deleted);
        }
Exemplo n.º 2
0
        public void HasCorrectId()
        {
            var env = new Ex.Env();

            var i = new FileNotDestructivelyWritable().Init(env, "TEST", "file");

            Assert.Equal("FILE_TEST_SHOULD_NOT_BE_DESTRUCTIVELY_WRITABLE", i.Id);
        }
Exemplo n.º 3
0
        public void DetectsFileNotWritable()
        {
            var env = new Ex.Env();

            env.System.IO.File.Open = (path, mode, access, share) => {
                throw new System.UnauthorizedAccessException("Cannot open in write mode");
            };

            var i = new FileNotDestructivelyWritable().Init(env, "TEST", "file");

            Assert.True(i.Ok);
        }
Exemplo n.º 4
0
        public void DetectsDirectoryNotFound()
        {
            var env = new Ex.Env();

            env.System.IO.File.Open = (path, mode, access, share) => {
                throw new DirectoryNotFoundException();
            };

            var i = new FileNotDestructivelyWritable().Init(env, "TEST", "file");

            Assert.True(i.Ok);
        }
Exemplo n.º 5
0
        public void DetectsFileWritable()
        {
            var env = new Ex.Env();

            env.System.IO.File.Open = (path, mode, access, share) => {
                return(new MemoryStream(new byte[100]));
            };

            var deleted = false;

            env.System.IO.File.Delete = (path) => {
                deleted = true;
            };

            var i = new FileNotDestructivelyWritable().Init(env, "TEST", "file");

            Assert.False(i.Ok);
            Assert.True(deleted);
        }