Example #1
0
        public async Task GetDocumentLibraries_Returns_DocumentLibraries_When_Found()
        {
            // Arrange
            var req               = TestFactory.CreateHttpRequest();
            var logger            = TestFactory.CreateLogger(LoggerTypes.List);
            var documentLibraries = new List <DocumentLibrary>
            {
                new DocumentLibrary {
                    Id = "Id1", Name = "DocumentLibrary1"
                },
                new DocumentLibrary {
                    Id = "Id2", Name = "DocumentLibrary2"
                },
            };

            _fileServiceMock.Setup(x => x.GetDocumentLibrariesAsync(It.Is <string>(p => p == "siteId"))).ReturnsAsync(DocumentLibrariesResult.Success(documentLibraries));

            // Act
            var httpActionResult = await _controller.GetDocumentLibraries(req, logger);

            // Assert
            Assert.IsInstanceOf(typeof(OkObjectResult), httpActionResult);

            _fileServiceMock.Verify(x => x.GetDocumentLibrariesAsync(It.Is <string>(p => p == "siteId")), Times.Once);

            var result = ((OkObjectResult)httpActionResult).Value as DocumentLibraryModelInfo[];

            Assert.IsNotNull(result);
            Assert.AreEqual(2, result.Length);
            Assert.AreEqual("Id1", result[0].Id);
            Assert.AreEqual("DocumentLibrary1", result[0].Name);
            Assert.AreEqual("Id2", result[1].Id);
            Assert.AreEqual("DocumentLibrary2", result[1].Name);
        }
        public async Task Run_WithValidRequest_ReturnsCurrentStatus()
        {
            // arrange
            var req    = new DefaultHttpRequest(new DefaultHttpContext());
            var logger = TestFactory.CreateLogger(LoggerTypes.List);
            var now    = DateTime.UtcNow;

            DocumentDetails documentDetails = new DocumentDetails
            {
                Id        = Guid.NewGuid(),
                Body      = "doc123.txt",
                CreatedOn = now,
                Status    =
                {
                    new DocumentStatus
                    {
                        Status    = "ERROR",
                        Detail    = "processing error",
                        CreatedOn = now.AddMinutes(10)
                    }
                }
            };

            // act
            var result = await DocumentStatusRequest.Run(req, documentDetails.Id.ToString(), documentDetails, logger);

            // assert
            result.Should().BeOfType <OkObjectResult>();

            var documentStatusResponse = (DocumentStatusResponse)((OkObjectResult)result).Value;

            documentStatusResponse.CreatedOn.Should().Be(now);
            documentStatusResponse.Status.Should().Be("ERROR");
            documentStatusResponse.UpdatedOn.Should().Be(now.AddMinutes(10));
        }
        public async void function_http_trigger_should_return_401_if_SonarqubeSecretValidator_rejects_request()
        {
            // Arrange
            SetEnvironmentVariables();

            var request = TestFactory.CreateHttpRequest();

            var sonarqubeSecretValidator = new Mock <ISonarqubeSecretValidator>();

            sonarqubeSecretValidator.Setup(x => x.IsValidSignature(
                                               request,
                                               It.IsAny <string>(),
                                               Environment.GetEnvironmentVariable(SonarqubeMSTeamsBridge.Setting_SonarqubeWebhookSecret))
                                           ).Returns(false);

            var        sonarqubeMSTeamsBridgeFunction = new SonarqubeMSTeamsBridge(null, sonarqubeSecretValidator.Object, null, null);
            ListLogger logger = (ListLogger)TestFactory.CreateLogger(LoggerTypes.List);

            // Act
            var response = (StatusCodeResult)await sonarqubeMSTeamsBridgeFunction.Run(request, logger);

            // Assert
            Assert.Equal(401, response.StatusCode);
            Assert.Contains($"Sonarqube secret http header is missing or not valid. Config setting {SonarqubeMSTeamsBridge.Setting_SonarqubeWebhookSecret} must match secret in Sonarqube Webhook header {SonarqubeSecretValidator.SonarqubeAuthSignatureHeaderName}.", logger.Logs);
        }
Example #4
0
        public async Task GetFiles_Returns_Files_When_Found()
        {
            // Arrange
            var req               = TestFactory.CreateHttpRequest();
            var logger            = TestFactory.CreateLogger(LoggerTypes.List);
            var documentLibraryId = "documentLibraryId1";
            var files             = new List <File>
            {
                new File
                {
                    Id             = "Id1",
                    Name           = "FileName1",
                    Description    = "FileDescription1",
                    CreatedAt      = new DateTimeOffset(new DateTime(2020, 3, 4)),
                    LastModifiedAt = new DateTimeOffset(new DateTime(2020, 3, 4)),
                    DownloadUrl    = "https://downloadurl1",
                    Size           = 250L
                },
                new File
                {
                    Id             = "Id2",
                    Name           = "FileName2",
                    Description    = "FileDescription2",
                    CreatedAt      = new DateTimeOffset(new DateTime(2020, 3, 5)),
                    LastModifiedAt = new DateTimeOffset(new DateTime(2020, 3, 5)),
                    DownloadUrl    = "https://downloadurl2",
                    Size           = 500L
                }
            };

            _fileServiceMock.Setup(x => x.GetFilesAsync(It.Is <string>(p => p == "siteId"), It.Is <string>(p => p == documentLibraryId))).ReturnsAsync(FilesResult.Success(files));

            // Act
            var httpActionResult = await _controller.GetFiles(req, documentLibraryId, logger);

            // Assert
            Assert.IsInstanceOf(typeof(OkObjectResult), httpActionResult);

            _fileServiceMock.Verify(x => x.GetFilesAsync(It.Is <string>(p => p == "siteId"), It.Is <string>(p => p == documentLibraryId)), Times.Once);

            var result = ((OkObjectResult)httpActionResult).Value as FileModelInfo[];

            Assert.IsNotNull(result);
            Assert.AreEqual(2, result.Length);
            Assert.AreEqual("Id1", result[0].Id);
            Assert.AreEqual("FileName1", result[0].Name);
            Assert.AreEqual("FileDescription1", result[0].Description);
            Assert.AreEqual(new DateTime(2020, 3, 4), result[0].CreatedAt);
            Assert.AreEqual(new DateTime(2020, 3, 4), result[0].LastModifiedAt);
            Assert.AreEqual("https://downloadurl1", result[0].DownloadUrl);
            Assert.AreEqual(250L, result[0].Size);
            Assert.AreEqual("Id2", result[1].Id);
            Assert.AreEqual("FileName2", result[1].Name);
            Assert.AreEqual("FileDescription2", result[1].Description);
            Assert.AreEqual(new DateTime(2020, 3, 5), result[1].CreatedAt);
            Assert.AreEqual(new DateTime(2020, 3, 5), result[1].LastModifiedAt);
            Assert.AreEqual("https://downloadurl2", result[1].DownloadUrl);
            Assert.AreEqual(500L, result[1].Size);
        }
Example #5
0
        public async Task EmailStatusServiceMustKeepTheProviderIfItDidnotReachThreshold()
        {
            var emailProviderlogger = (ListLogger <FakeProviderService>)TestFactory.CreateLogger <FakeProviderService>(LoggerTypes.List);
            var functionLogger      = (ListLogger <EmailService>)TestFactory.CreateLogger <EmailService>(LoggerTypes.List);
            var emailStatusLogger   = (ListLogger <EmailProvidersStatus>)TestFactory.CreateLogger <EmailProvidersStatus>(LoggerTypes.List);
            var emailProvider       = TestFactory.CreateFakeEmailProvider(emailProviderlogger);
            var serviceCollection   = new ServiceCollection();

            serviceCollection.AddSingleton <IEmailProvider>(emailProvider);

            var options = Options.Create(new ConfigOptions()
            {
                Sentry         = new Config.SentryOptions(),
                EmailProviders = new EmailProviders {
                    SendGrid = new Config.SendGrid {
                        ApiKey = ""
                    }
                },
                EmailProvidersSettings = new EmailProvidersSettings
                {
                    SupportedProviders = new List <string> {
                        "Fake", "Fake2"
                    },
                    Threshold           = 5,
                    DisablePeriod       = 10,
                    TimeWindowInSeconds = 5
                }
            });

            var durableClient = new Mock <IDurableEntityClient>();

            var emailproviderstatus = new EmailProvidersStatus(options, emailStatusLogger);

            Assert.Equal(2, emailproviderstatus.emailProviders.Count);
            durableClient.Setup(x => x.ReadEntityStateAsync <EmailProvidersStatus>(It.IsAny <EntityId>(), null, null))
            .Returns(Task.FromResult(new EntityStateResponse <EmailProvidersStatus>
            {
                EntityExists = true,
                EntityState  = emailproviderstatus
            }));

            durableClient.Setup(x => x.SignalEntityAsync(It.IsAny <EntityId>(), "AddFailure", It.IsAny <FailureRequest>(), null, null))
            .Callback((EntityId entityId, string operation, object body, string x, string y) => {
                var ob = body as FailureRequest;
                emailproviderstatus.AddFailure(ob);
            })
            .Returns(Task.CompletedTask);

            var emailServiceFunction = new EmailService(emailProvider, functionLogger, serviceCollection.BuildServiceProvider(), options);

            await emailServiceFunction.RunAsync(new Models.EmailQueueItem {
                Sender = "*****@*****.**", Receiver = "*****@*****.**", Subject = "Subject", Body = "MyText"
            }, durableClient.Object);

            // Fake should be disabled
            Assert.Single(emailproviderstatus.FailureWindow[emailproviderstatus.emailProviders.First()]);
            Assert.Empty(emailproviderstatus.disabledProviders);
            Assert.Equal(2, emailproviderstatus.emailProviders.Count);
        }
 protected void MockerSetup()
 {
     _mocker = AutoMock.GetLoose();
     MockerAdditionalSetupBeforeSutCreation();
     _sut       = _mocker.Create <T>();
     _logger    = (LoggerFake)TestFactory.CreateLogger(LoggerTypes.List);
     _timerInfo = new TimerInfo(new ScheduleStub(), new ScheduleStatus(), true);
 }
Example #7
0
        public void LogAMessage()
        {
            var logger = (ListLogger)TestFactory.CreateLogger(LoggerTypes.List);

            DefaultTimerTemplate.Run(null, logger);
            var msg = logger.Logs[0];

            Assert.Contains("C# Timer trigger function executed at", msg);
        }
        private static HttpRequestMessage CreateRequest(out ILogger logger, TelegramUpdate requestPayload)
        {
            var request = TestFactory.CreateHttpRequest(HttpMethod.Post, "");

            logger = TestFactory.CreateLogger();
            ;
            request.Content = new ObjectContent <TelegramUpdate>(requestPayload, new JsonMediaTypeFormatter());
            return(request);
        }
        public async Task GetMatchingBallotsForPattern_BadRequestWhenNoPattern()
        {
            var request  = TestFactory.CreateHttpRequest();
            var logger   = TestFactory.CreateLogger();
            var svc      = TestFactory.CreateElectionResultsService();
            var response = (BadRequestObjectResult)await new BallotLookup(svc.Object).GetMatchingBallotsForPattern(request, null, logger);

            Assert.IsNotNull(response);
            Assert.AreEqual((int)HttpStatusCode.BadRequest, response.StatusCode);
        }
        public async Task ImportResultsOnBlobUpdate_ImportsData()
        {
            var fn     = "somefilename.ext";
            var stream = Stream.Null;
            var logger = (ListLogger)TestFactory.CreateLogger(LoggerTypes.List);
            var svc    = TestFactory.CreateElectionResultsService();

            await new ElectionDataManagement(svc.Object).ImportResultsOnBlobUpdate(stream, fn, logger);

            svc.Verify(m => m.ImportElectionResults(stream), Times.Once);
        }
        public async Task GetElectionSummary_ReturnDefaultSummary()
        {
            var request  = TestFactory.CreateHttpRequest();
            var logger   = TestFactory.CreateLogger();
            var svc      = TestFactory.CreateElectionResultsService();
            var response = (JsonResult)await new Functions.Api.ElectionSummary(svc.Object).GetElectionSummary(request, logger);
            var summary  = response.Value as Models.ElectionSummary;

            Assert.IsNotNull(summary);
            Assert.IsFalse(summary.IsComplete);
        }
        public async void DarioBotCanHandleBadFormatRequest(string darioRequest, HttpStatusCode expectedStatus)
        {
            var request = TestFactory.CreateHttpRequest(HttpMethod.Post, "");
            var logger  = TestFactory.CreateLogger();

            request.Content = new StringContent(darioRequest);

            var response = await HappyDarioBot.HappyDarioBot.Run(request, logger);

            Assert.Equal(expectedStatus, response.StatusCode);
        }
        public async Task Run_WithDocumentNotFound_ReturnsBadRequest()
        {
            // arrange
            var req    = new DefaultHttpRequest(new DefaultHttpContext());
            var logger = TestFactory.CreateLogger(LoggerTypes.List);

            // act
            var result = await DocumentStatusRequest.Run(req, Guid.NewGuid().ToString(), null, logger);

            // assert
            result.Should().BeOfType <BadRequestObjectResult>();
        }
        public async Task GetMatchingBallotsForPattern_ReturnsEmptyList()
        {
            var pattern  = "dance";
            var request  = TestFactory.CreateHttpRequest("pattern", pattern);
            var logger   = TestFactory.CreateLogger();
            var svc      = TestFactory.CreateElectionResultsService();
            var response = (JsonResult)await new BallotLookup(svc.Object).GetMatchingBallotsForPattern(request, pattern, logger);
            var list     = response?.Value as List <BallotStatus>;

            Assert.IsNotNull(list);
            Assert.AreEqual(0, list.Count);
        }
        public async Task NewCogntiveReq_http_trigger_return_successful_exection()
        {
            var function = new NewCognitiveReq(
                TestFactory.CreateCognitiveFilesRepositoryMock(),
                TestFactory.CreateUserAccountsRepositoryMock(),
                TestFactory.CreateStorageRepositoryMock(),
                TestFactory.CreateQueueRepositoryMock());

            var result = await function.Run(TestFactory.GetMultipartRequest(0), TestFactory.CreateLogger(LoggerTypes.List));

            Assert.True(result is CreatedResult);
        }
Example #16
0
        public void GetNegativeMessage_should_log_message()
        {
            // Arrange
            var             logger          = (ListLogger)TestFactory.CreateLogger(LoggerTypes.List);
            MessageFunction messageFunction = new MessageFunction(_messageResponderServer.Object);

            // Act
            messageFunction.GetNegativeMessage(null, logger);

            // Assert
            var msg = logger.Logs[0];

            msg.Should().Contain("MessageFunction - C# HTTP trigger function processed a request for GetNegativeMessage.");
        }
Example #17
0
        public async Task Timer_should_log_message()
        {
            var genericComponentsImportService = new Mock <IGenericComponentsImportService>();

            genericComponentsImportService.Setup(x => x.SaveGenericNoiseComponents()).Returns(Task.FromResult((true, true)));

            Application.Function function = new Application.Function(genericComponentsImportService.Object);
            var loggerMocked = (ListLogger)TestFactory.CreateLogger(LoggerTypes.List);
            await function.Run(null, loggerMocked);

            var msg = loggerMocked.Logs[0];

            Assert.Contains("C# Timer trigger function executed at", msg);
        }
Example #18
0
        public async Task DownloadMultiple_Returns_BadRequest_When_DriveItemIdIsNull()
        {
            // Arrange
            var documentLibraryId = SettingsHelper.DocumentLibraryId;
            var body    = "{\"driveItems\": [null]}";
            var reqMock = TestFactory.CreateHttpRequestMock(body);
            var logger  = TestFactory.CreateLogger(LoggerTypes.List);

            // Act
            var httpActionResult = await _sut.DownloadMultiple(reqMock.Object, documentLibraryId, logger);

            // Assert
            Assert.IsInstanceOf(typeof(BadRequestObjectResult), httpActionResult);
        }
Example #19
0
        public async Task Download_Returns_BadRequest_When_DriveItemIdIsNull()
        {
            // Arrange
            var documentLibraryId = SettingsHelper.DocumentLibraryId;

            var req    = TestFactory.CreateHttpRequest();
            var logger = TestFactory.CreateLogger(LoggerTypes.List);

            // Act
            var httpActionResult = await _sut.Download(req, documentLibraryId, null, logger);

            // Assert
            Assert.IsInstanceOf(typeof(BadRequestObjectResult), httpActionResult);
        }
        public async Task ImportResultsOnBlobUpdate_LogsImport()
        {
            var fn     = "somefilename.ext";
            var stream = Stream.Null;
            var logger = (ListLogger)TestFactory.CreateLogger(LoggerTypes.List);
            var svc    = TestFactory.CreateElectionResultsService();

            await new ElectionDataManagement(svc.Object).ImportResultsOnBlobUpdate(stream, fn, logger);

            Assert.AreEqual(1, logger.Logs.Count);
            var msg = logger.Logs[0];

            Assert.IsTrue(msg.Contains("ImportElectionResults:"));
            Assert.IsTrue(msg.Contains(fn));
        }
Example #21
0
        public async Task DownloadMultiple_Returns_BadRequest_When_DriveItemIdIsEmpty()
        {
            // Arrange
            var documentLibraryId = "DL1";
            var body    = "{\"driveItems\": [\"\"]}";
            var reqMock = TestFactory.CreateHttpRequestMock(body);
            var logger  = TestFactory.CreateLogger(LoggerTypes.List);

            // Act
            var httpActionResult = await _controller.DownloadMultiple(reqMock.Object, documentLibraryId, logger);

            // Assert
            _fileServiceMock.Verify(x => x.DownloadAsync(It.Is <string>(p => p == "siteId"), It.Is <string>(p => p == documentLibraryId), It.IsAny <string>()), Times.Never);
            Assert.IsInstanceOf(typeof(BadRequestObjectResult), httpActionResult);
        }
Example #22
0
        public async Task Download_Returns_BadRequest_When_DriveItemIdIsEmpty()
        {
            // Arrange
            var documentLibraryId = "b!Uh445jcGFkK0-jWspn-lx74bPae4-DJEiIWsqKfPgGyQV63S1iPeRIZxnI5dGymZ";
            var driveItemId       = string.Empty;

            var req    = TestFactory.CreateHttpRequest();
            var logger = TestFactory.CreateLogger(LoggerTypes.List);

            // Act
            var httpActionResult = await _controller.Download(req, documentLibraryId, driveItemId, logger);

            // Assert
            _fileServiceMock.Verify(x => x.DownloadAsync(It.Is <string>(p => p == "siteId"), It.Is <string>(p => p == documentLibraryId), It.Is <string>(p => p == driveItemId)), Times.Never);
            Assert.IsInstanceOf(typeof(BadRequestObjectResult), httpActionResult);
        }
Example #23
0
        public async Task Download_Returns_BadRequest_When_DocumentLibraryIdIsEmpty()
        {
            // Arrange
            var documentLibraryId = string.Empty;
            var driveItemId       = "01FG5K4LMYZK6PXIJOOFG3LDYWNPSSFMLR";

            var req    = TestFactory.CreateHttpRequest();
            var logger = TestFactory.CreateLogger(LoggerTypes.List);

            // Act
            var httpActionResult = await _controller.Download(req, documentLibraryId, driveItemId, logger);

            // Assert
            _fileServiceMock.Verify(x => x.DownloadAsync(It.Is <string>(p => p == "siteId"), It.Is <string>(p => p == documentLibraryId), It.Is <string>(p => p == driveItemId)), Times.Never);
            Assert.IsInstanceOf(typeof(BadRequestObjectResult), httpActionResult);
        }
        public async void function_http_trigger_should_return_500_if_teamswebhook_config_is_missing()
        {
            // Arrange
            SetEnvironmentVariables(teamsWebhookUrl: null);

            var        request = TestFactory.CreateHttpRequest();
            var        sonarqubeMSTeamsBridgeFunction = new SonarqubeMSTeamsBridge(null, null, null, null);
            ListLogger logger = (ListLogger)TestFactory.CreateLogger(LoggerTypes.List);

            // Act
            var response = (StatusCodeResult)await sonarqubeMSTeamsBridgeFunction.Run(request, logger);

            // Assert
            Assert.Equal(500, response.StatusCode);
            Assert.Contains($"Required setting {SonarqubeMSTeamsBridge.Setting_TeamsWebhookUrl} is missing.", logger.Logs);
        }
Example #25
0
        public async Task Run_WithNoBodyInRequest_ReturnsBadRequest()
        {
            // arrange
            var req    = new DefaultHttpRequest(new DefaultHttpContext());
            var logger = TestFactory.CreateLogger(LoggerTypes.List);

            DocumentDetails documentDetails = null;

            _documentDetailsCollector.Setup(x => x.AddAsync(It.IsAny <DocumentDetails>(), default(CancellationToken)))
            .Callback((DocumentDetails details, CancellationToken token) => documentDetails = details);

            // act
            var result = await DocumentRequest.Run(req, _documentDetailsCollector.Object, logger);

            // assert
            result.Should().BeOfType <BadRequestObjectResult>();
        }
Example #26
0
        public async Task EmailServiceTriggerFunctionMustNotProcessEmptyQueueItem()
        {
            var emailProviderlogger = (ListLogger <FakeProviderService>)TestFactory.CreateLogger <FakeProviderService>(LoggerTypes.List);
            var functionLogger      = (ListLogger <EmailService>)TestFactory.CreateLogger <EmailService>(LoggerTypes.List);
            var emailProvider       = TestFactory.CreateFakeEmailProvider(emailProviderlogger);

            var serviceCollection = new ServiceCollection();

            serviceCollection.AddSingleton <IEmailProvider>(emailProvider);

            var durableClient = new Mock <IDurableEntityClient>();

            durableClient.Setup(x => x.ReadEntityStateAsync <EmailProvidersStatus>(It.IsAny <EntityId>(), null, null))
            .Returns(Task.FromResult(new EntityStateResponse <EmailProvidersStatus>
            {
                EntityExists = false,
                EntityState  = null
            }));

            var options = Options.Create(new ConfigOptions()
            {
                Sentry         = new SentryOptions(),
                EmailProviders = new EmailProviders {
                    SendGrid = new Config.SendGrid {
                        ApiKey = ""
                    }
                },
                EmailProvidersSettings = new EmailProvidersSettings {
                    SupportedProviders = new List <string> {
                        "Fake"
                    }
                }
            });

            var emailServiceFunction = new EmailService(emailProvider, functionLogger, serviceCollection.BuildServiceProvider(), options);

            await emailServiceFunction.RunAsync(new Models.EmailQueueItem {
            }, durableClient.Object);

            var msg = functionLogger.Logs[0];

            Assert.Contains("'Sender' must not be empty", msg);
            Assert.Contains("'Receiver' must not be empty.", msg);
            Assert.Contains("'Subject' must not be empty", msg);
            Assert.Contains("'Body' must not be empty", msg);
        }
Example #27
0
        public async Task Download_Returns_File_When_Found()
        {
            // Arrange
            var documentLibraryId = "b!Uh445jcGFkK0-jWspn-lx74bPae4-DJEiIWsqKfPgGyQV63S1iPeRIZxnI5dGymZ";
            var driveItemId       = "01FG5K4LMYZK6PXIJOOFG3LDYWNPSSFMLR";

            var req    = TestFactory.CreateHttpRequest();
            var logger = TestFactory.CreateLogger(LoggerTypes.List);

            _fileServiceMock.Setup(x => x.DownloadAsync(It.Is <string>(p => p == "siteId"), It.Is <string>(x => x == documentLibraryId), It.Is <string>(x => x == driveItemId))).ReturnsAsync(DownloadResult.Success(driveItemId, "MyDocument.docx", new byte[] { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 }));

            // Act
            var httpActionResult = await _controller.Download(req, documentLibraryId, driveItemId, logger);

            // Assert
            _fileServiceMock.Verify(x => x.DownloadAsync(It.Is <string>(p => p == "siteId"), It.Is <string>(x => x == documentLibraryId), It.Is <string>(x => x == driveItemId)), Times.Once);
            Assert.IsInstanceOf(typeof(FileContentResult), httpActionResult);
        }
Example #28
0
        public async Task Run_DbSaveError_ReturnsStatus500InternalServerError()
        {
            // arrange
            var requestBody = "doc123.txt";
            var req         = TestFactory.CreateHttpRequest($"{{\"body\": \"{requestBody}\"}}");
            var logger      = TestFactory.CreateLogger(LoggerTypes.List);

            _documentDetailsCollector.Setup(x => x.AddAsync(It.IsAny <DocumentDetails>(), default(CancellationToken)))
            .Throws(new Exception("Error calling Cosmos DB"));

            // act
            var result = await DocumentRequest.Run(req, _documentDetailsCollector.Object, logger);

            // assert
            result.Should().BeOfType <StatusCodeResult>();
            var statusCode = ((StatusCodeResult)result).StatusCode;

            statusCode.Should().Be(500);
        }
Example #29
0
        public async Task DownloadMultiple_Returns_Files_When_Found()
        {
            // Arrange
            var documentLibraryId = "DL1";
            var body    = "{\"driveItems\": [\"DI1\", \"DI2\"]}";
            var reqMock = TestFactory.CreateHttpRequestMock(body);
            var logger  = TestFactory.CreateLogger(LoggerTypes.List);

            _fileServiceMock.Setup(x => x.DownloadAsync(It.Is <string>(p => p == "siteId"), It.Is <string>(x => x == documentLibraryId), It.Is <string>(x => x == "DI1"))).ReturnsAsync(DownloadResult.Success("DI1", "File1.docx", new byte[] { 0x01, 0x01, 0x01 }));
            _fileServiceMock.Setup(x => x.DownloadAsync(It.Is <string>(p => p == "siteId"), It.Is <string>(x => x == documentLibraryId), It.Is <string>(x => x == "DI2"))).ReturnsAsync(DownloadResult.Success("DI2", "File2.docx", new byte[] { 0x02, 0x02, 0x02 }));

            // Act
            var httpActionResult = await _controller.DownloadMultiple(reqMock.Object, documentLibraryId, logger);

            // Assert
            _fileServiceMock.Verify(x => x.DownloadAsync(It.Is <string>(p => p == "siteId"), It.Is <string>(x => x == documentLibraryId), It.Is <string>(x => x == "DI1")), Times.Once);
            _fileServiceMock.Verify(x => x.DownloadAsync(It.Is <string>(p => p == "siteId"), It.Is <string>(x => x == documentLibraryId), It.Is <string>(x => x == "DI2")), Times.Once);
            Assert.IsInstanceOf(typeof(FileContentResult), httpActionResult);
        }
Example #30
0
        public async Task GetDocumentLibraries_Returns_BadRequestObjectResult_When_AnErrorOccurred()
        {
            // Arrange
            var req    = TestFactory.CreateHttpRequest();
            var logger = TestFactory.CreateLogger(LoggerTypes.List);

            _fileServiceMock.Setup(x => x.GetDocumentLibrariesAsync(It.Is <string>(p => p == "siteId"))).ReturnsAsync(DocumentLibrariesResult.Failed("An error occurred."));

            // Act
            var httpActionResult = await _controller.GetDocumentLibraries(req, logger);

            // Assert
            Assert.IsInstanceOf(typeof(BadRequestObjectResult), httpActionResult);

            _fileServiceMock.Verify(x => x.GetDocumentLibrariesAsync(It.Is <string>(p => p == "siteId")), Times.Once);

            var result = ((BadRequestObjectResult)httpActionResult);

            Assert.IsNotNull(result);
            Assert.AreEqual("An error occurred.", result.Value);
        }