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); } }
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()); } }