public async Task SmsReturnsFalseIfValidButBadCredentials() { var lookupsMock = new Mock <ITwilioLookupsApi>(MockBehavior.Strict); var lookupsException = await TwilioTests.CreateException($"https://lookups.twilio.com/v1/PhoneNumbers/{_customerNumber}?Type=carrier", HttpMethod.Get, HttpStatusCode.Unauthorized); lookupsMock.Setup(api => api.NumberInfo(_customerNumber, It.IsAny <string>(), "carrier")) .ThrowsAsync(lookupsException); var messagingMock = new Mock <ITwilioMessagingApi>(MockBehavior.Strict); var twilioApi = new TwilioApi(lookupsMock.Object, messagingMock.Object, "ACxxxxxxxxxxxxxx", _systemNumber); var connectFunction = new SmsWorkflow(twilioApi); var result = await connectFunction.Process(ConnectEventWithMessageEndingWithPhoneParameter, _context); Assert.Single(result); var lambdaResult = result["LambdaResult"]; Assert.NotNull(lambdaResult); Assert.True(lambdaResult.Type == JTokenType.Boolean); Assert.False(lambdaResult.Value <bool>()); lookupsMock.VerifyAll(); }
public async Task LookupReturnsEmptyNumberTypeIfValidButBadCredentials() { var lookupsMock = new Mock <ITwilioLookupsApi>(MockBehavior.Strict); var lookupsException = await TwilioTests.CreateException($"https://lookups.twilio.com/v1/PhoneNumbers/{_customerNumber}?Type=carrier", HttpMethod.Get, HttpStatusCode.Unauthorized); lookupsMock.Setup(api => api.NumberInfo(_customerNumber, It.IsAny <string>(), "carrier")) .ThrowsAsync(lookupsException); var messagingMock = new Mock <ITwilioMessagingApi>(MockBehavior.Strict); var twilioApi = new TwilioApi(lookupsMock.Object, messagingMock.Object, "ACxxxxxxxxxxxxxx", _smsNumber); var connectFunction = new LookupWorkflow(twilioApi); var result = await connectFunction.Process(_connectEvent, _context); Assert.Equal(2, result.Count); var lambdaResult = result["LambdaResult"]; Assert.NotNull(lambdaResult); Assert.True(lambdaResult.Type == JTokenType.Boolean); Assert.True(lambdaResult.Value <bool>()); var numberType = result["NumberType"]; Assert.NotNull(numberType); Assert.True(numberType.Type == JTokenType.String); var typeValue = (string)numberType; Assert.NotNull(typeValue); Assert.Equal(string.Empty, typeValue); }