示例#1
0
        public async Task RoadStatus_GivenInputIsA2_ReturnValidRoadIds()
        {
            // Arrange
            var expected = new Road()
            {
                Id                        = "a2",
                DisplayName               = "A2",
                StatusSeverity            = "Good",
                StatusSeverityDescription = "No Exceptional Delays"
            };

            var fakeHttpMessageHandler = new Mock <FakeHttpMessageHandler> {
                CallBase = true
            };

            fakeHttpMessageHandler.Setup(x => x.Send(It.IsAny <HttpRequestMessage>()))
            .Returns(new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(new Road[] { expected }))
            });

            var client = new HttpClient(fakeHttpMessageHandler.Object);

            var roadService = new RoadService(client);

            // Act
            var actual = await roadService.GetRoadStatus("A2");

            // Asset
            fakeHttpMessageHandler.Verify();
            Assert.AreEqual(expected.Text, actual.Result.Text);
        }
示例#2
0
        public async Task RoadStatus_GivenInputIsA233_ReturnValidRoadIds()
        {
            // Arrange
            var expected = new RequestError()
            {
                Message = "A233"
            };

            var fakeHttpMessageHandler = new Mock <FakeHttpMessageHandler> {
                CallBase = true
            };

            fakeHttpMessageHandler.Setup(x => x.Send(It.IsAny <HttpRequestMessage>()))
            .Returns(new HttpResponseMessage(HttpStatusCode.NotFound)
            {
                Content = new StringContent($"A233 is not a valid road")
            });
            var client = new HttpClient(fakeHttpMessageHandler.Object);

            var roadService = new RoadService(client);

            // Act
            var actual = await roadService.GetRoadStatus("A233");

            // Asset
            fakeHttpMessageHandler.Verify();
            Assert.AreEqual(expected.Text, actual.Result.Text);
        }
示例#3
0
        static async Task <int> Main(string[] args)
        {
            var           roadService   = new RoadService(new HttpClient());
            RequestStatus requestStatus = await roadService.GetRoadStatus(args[0]);

            System.Console.WriteLine(requestStatus.Result.Text);

            return(requestStatus.ExitCode);
        }
示例#4
0
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

            IConfigurationRoot configuration = builder.Build();

            try
            {
                var result = RoadService.GetRoadStatus(args[0], configuration["appId"], configuration["developerKey"]);

                Console.WriteLine($"The status of the {result.DisplayName} is as follows");
                Console.WriteLine($"Road Status is {result.StatusSeverity}");
                Console.WriteLine($"Road Status Description is {result.StatusSeverityDescription}");
                Environment.ExitCode = 0;
            }
            catch (Exception e)
            {
                Console.WriteLine($"{args[0]} is not a valid road");
                Environment.ExitCode = 1;
            }
        }
示例#5
0
 public void should_not_getroadstatus_withinvaliddeveloperkey_and_return_exception()
 {
     PAssert.Throws <RoadRequestException>(() => RoadService.GetRoadStatus("A2", configuration["appId"], "xxxxxx"));
 }
示例#6
0
 public void should_not_getroadstatus_withvalidroadname_and_return_exception()
 {
     PAssert.Throws <RoadRequestException>(() =>
                                           RoadService.GetRoadStatus("Z2", configuration["appId"], configuration["developerKey"]));
 }
示例#7
0
        public void should_getroadstatus_withvalidroadname_and_return_valid_data()
        {
            var actual = RoadService.GetRoadStatus("A2", configuration["appId"], configuration["developerKey"]);

            PAssert.IsTrue(() => actual.GetType() == typeof(RoadRequestResponse));
        }