public async Task Retrieve_GivenTooFewColumns_ShouldRaiseException() { // Arrange. var url = new Uri("https://somegooglesheet"); var requestMaker = Substitute.For <IRestRequestMaker>(); var logger = Substitute.For <ILogger>(); requestMaker .Get <GoogleSheet>(url) .Returns(new GoogleSheet { values = new[] { new[] { "" } } }); var testObject = new EmailAddressGoogleSheet( url, requestMaker, logger); // Act & Assert. try { await testObject.Retrieve(); } catch (EmailAddressGoogleSheetFormatException) { Assert.Pass(); } Assert.Fail(); }
public async Task Retrieve_GivenSuccessfulRetrieval_ShouldReturnTrue() { // Arrange. var url = new Uri("https://somegooglesheet"); var requestMaker = Substitute.For <IRestRequestMaker>(); var logger = Substitute.For <ILogger>(); requestMaker .Get <GoogleSheet>(url) .Returns(new GoogleSheet { values = new [] { new [] { $"{ColumnHeader_FullSchedule}", "", "" } } }); var testObject = new EmailAddressGoogleSheet( url, requestMaker, logger); // Act. bool result = await testObject.Retrieve(); // Assert. Assert.IsTrue(result); }
public async Task Retrieve_GivenSheetCorrectColumnHeaders_ShouldNotRaiseException() { // Arrange. var url = new Uri("https://somegooglesheet"); var requestMaker = Substitute.For <IRestRequestMaker>(); var logger = Substitute.For <ILogger>(); requestMaker .Get <GoogleSheet>(url) .Returns(new GoogleSheet { values = new [] { new [] { ColumnHeader_FullSchedule }, } }); var testObject = new EmailAddressGoogleSheet( url, requestMaker, logger); // Act. await testObject.Retrieve(); // Assert. Assert.Pass(); }
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 Retrieve_GivenUnsuccessfulRetrieval_ShouldReturnFalse() { // Arrange. var url = new Uri("https://somegooglesheet"); var requestMaker = Substitute.For <IRestRequestMaker>(); var logger = Substitute.For <ILogger>(); requestMaker .Get <GoogleSheet>(url) .Throws(new RestRequestException(string.Empty, null)); var testObject = new EmailAddressGoogleSheet( url, requestMaker, logger); // Act. bool result = await testObject.Retrieve(); // Assert. Assert.IsFalse(result); }