public void AnalyzeCall_ValidData_FraudLevelReturned()
        {
            //Arrange
            string jsonFraudLevel = Properties.Resources.JsonFraudLevel;

            AnalyzeCallData data = new AnalyzeCallData
            {
                Ani = "12125551212",
                Dnis = "18005551212",
                Headers = new Dictionary<string, object>
                {
                    { "from", "\"John Smith\" <sip:[email protected]>" },
                    { "via", new List<string> { "SIP/2.0//UDP 1.1.1.1:5060;branch=z9hG4bK3fe1.9a945462b4c1880c5f6fdc0214a205ca.1"} }
                },
                Meta = new Dictionary<string, string>
                {
                    { "caller_id", "12125551212" },
                    { "charge_number", "12125551212" },
                    { "ani2", "0" },
                    { "private", "true" }
                }
            };

            Mock<IHttpTransport> httpTransportMock = new Mock<IHttpTransport>(MockBehavior.Strict);
            httpTransportMock.Setup(httpTransport => httpTransport.Request(It.IsAny<string>(), It.IsAny<ContentType>(), It.IsIn("GET", "POST"), It.IsAny<string>(), It.IsAny<IEnumerable<Header>>()))
                .Returns(jsonFraudLevel);

            //Action
            NextCallerClient client = new NextCallerClient(httpTransportMock.Object);
            string jsonData = JsonSerializer.Serialize(data);
            string fraudLevel = client.AnalyzeCallJson(jsonData);

            //Assert
            httpTransportMock.Verify(httpTransport => httpTransport.Request(It.IsAny<string>(), It.IsAny<ContentType>(), It.IsIn("GET", "POST"), It.IsAny<string>(), It.IsAny<IEnumerable<Header>>()), Times.Once);

            Assert.IsNotNull(fraudLevel);
            Assert.AreEqual(jsonFraudLevel, fraudLevel);
        }