public async Task Retrieve_GivenFullScheduleEmailAddresses_ShouldReturnAddresses() { // Arrange. var url = new Uri("https://somegooglesheet"); var requestMaker = Substitute.For <IRestRequestMaker>(); var logger = Substitute.For <ILogger>(); const string address1 = "abc"; const string address2 = "def"; requestMaker .Get <GoogleSheet>(url) .Returns(new GoogleSheet { values = new[] { new [] { $"{ColumnHeader_FullSchedule}" }, new [] { $"{address1}" }, new [] { $"{address2}" } } }); var testObject = new EmailAddressGoogleSheet( url, requestMaker, logger); // Act. await testObject.Retrieve(); IEmailAddresses emailAddresses = testObject.EmailAddresses; // Assert. Assert.AreEqual(2, testObject.FullScheduleEmailAddresses.Count()); Assert.AreEqual(address1, testObject.FullScheduleEmailAddresses.ElementAt(0)); Assert.AreEqual(address2, testObject.FullScheduleEmailAddresses.ElementAt(1)); Assert.IsNotNull(emailAddresses); Assert.AreEqual(2, emailAddresses.FullScheduleEmailAddresses.Count()); Assert.AreEqual(address1, emailAddresses.FullScheduleEmailAddresses.ElementAt(0)); Assert.AreEqual(address2, emailAddresses.FullScheduleEmailAddresses.ElementAt(1)); }
public async Task <ActionResult> SendFullScheduleToAll(EmailContent emailContent) { try { IEmailAddresses addresses = await _emailAddressService.RetrieveEmailAddresses(); _logger.LogInfo("Sending full schedule email to all...", ClassName); emailContent.Address = addresses .FullScheduleEmailAddresses .Join(";"); return(await SendFullScheduleToAddress(emailContent)); } catch (Exception ex) { _logger.LogError("Exception while sending full schedule email to all.", ClassName, ex); return(StatusCode(500, ex.Message)); } }