public async Task LookupReturnsNumberTypeIfValidCredentials() { var lookupsMock = new Mock <ITwilioLookupsApi>(MockBehavior.Strict); lookupsMock.Setup(api => api.NumberInfo(It.IsAny <string>(), It.IsAny <string>(), "carrier")) .ReturnsAsync((string phoneNumber, string countryCode, string type) => JObject.Parse($"{{\"url\": \"https://lookups.twilio.com/v1/PhoneNumbers/{phoneNumber}?Type=carrier\",\"carrier\": {{ \"type\": \"mobile\" }},\"phone_number\": \"{phoneNumber}\",\"country_code\": \"{countryCode}\"}}")); 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("mobile", typeValue); 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); }