Beispiel #1
0
        public void InvokeTriggeredJob_ReadOnlyFileSystem_ShouldReturn503()
        {
            var triggeredJobsManagerMock = new Mock <ITriggeredJobsManager>();

            // simulate read-only environment
            triggeredJobsManagerMock
            .Setup(t => t.InvokeTriggeredJob(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Throws <UnauthorizedAccessException>();

            var controller = new JobsController(
                triggeredJobsManagerMock.Object,
                Mock.Of <IContinuousJobsManager>(),
                Mock.Of <ITracer>());

            var fileSystem = new Mock <IFileSystem>();
            var dirBase    = new Mock <DirectoryBase>();

            fileSystem.Setup(f => f.Directory).Returns(dirBase.Object);
            dirBase.Setup(d => d.CreateDirectory(It.IsAny <string>())).Throws <UnauthorizedAccessException>();
            FileSystemHelpers.Instance = fileSystem.Object;

            controller.Request = new HttpRequestMessage();

            using (KuduUtils.MockAzureEnvironment())
            {
                HttpResponseMessage resMsg = controller.InvokeTriggeredJob("foo");
                Assert.Equal(HttpStatusCode.ServiceUnavailable, resMsg.StatusCode);
            }
        }
Beispiel #2
0
        public void IsFileSystemReadOnlyBasicTest()
        {
            // In non-azure env, read-only is false
            Assert.Equal(false, FileSystemHelpers.IsFileSystemReadOnly());

            // mock Azure Env
            using (KuduUtils.MockAzureEnvironment())
            {
                // able to create and delete folder, should return false
                var fileSystem     = new Mock <IFileSystem>();
                var dirBase        = new Mock <DirectoryBase>();
                var dirInfoBase    = new Mock <DirectoryInfoBase>();
                var dirInfoFactory = new Mock <IDirectoryInfoFactory>();

                fileSystem.Setup(f => f.Directory).Returns(dirBase.Object);
                fileSystem.Setup(f => f.DirectoryInfo).Returns(dirInfoFactory.Object);

                dirBase.Setup(d => d.CreateDirectory(It.IsAny <string>())).Returns(dirInfoBase.Object);
                dirInfoFactory.Setup(d => d.FromDirectoryName(It.IsAny <string>())).Returns(dirInfoBase.Object);

                FileSystemHelpers.Instance  = fileSystem.Object;
                FileSystemHelpers.TmpFolder = @"D:\";   // value doesn`t really matter, just need to have something other than default value

                Assert.Equal(false, FileSystemHelpers.IsFileSystemReadOnly());

                // Read-Only should return true
                dirBase.Setup(d => d.CreateDirectory(It.IsAny <string>())).Throws <UnauthorizedAccessException>();
                Assert.Equal(true, FileSystemHelpers.IsFileSystemReadOnly());
            }
        }