public void MissingArgument()
 {
     var controller = new RouteTotalController();
     IHttpActionResult result = controller.GetRouteTotalValue(null, 0);
     Assert.IsInstanceOf(typeof(ExceptionResult), result);
     var exception = result as ExceptionResult;
     if (exception != null)
         exception.Exception.Message.Should()
             .Contain("O parâmetro jsonAddresses não pode ser null ou vazio!");
 }
 public void OnlyOneAddress()
 {
     var controller = new RouteTotalController();
     const string addressJson =
         "[{  'street':'string', 'housenumber':'1', 'city':'São Paulo','state':'SP'}]";
     IHttpActionResult result = controller.GetRouteTotalValue(addressJson, 0);
     Assert.IsInstanceOf(typeof (ExceptionResult), result);
     var exception = result as ExceptionResult;
     if (exception != null)
         exception.Exception.Message.Should()
             .Contain("Deve haver ao menos dois pontos de parada. Quantidade de pontos informados: 1");
 }
        public void InvalidAddressTest()
        {
            var controller = new RouteTotalController();
            const string addressJson =
                "[{'street':'a','houseNumber':'b','city':'c','state':'d'},{'street':'e','houseNumber':'f','city':'g','state':'h'}]";
            IHttpActionResult result = controller.GetRouteTotalValue(addressJson, 0);
            Assert.IsInstanceOf(typeof (ExceptionResult), result);

            var exception = result as ExceptionResult;
            if (exception != null)
                exception.Exception.Message.Should().Contain("getXY: Falha ao efetuar geocode");
        }
 public void InvalidRouteValue()
 {
     var controller = new RouteTotalController();
     const string addressJson =
         "[{  'street':'string', 'housenumber':'1', 'city':'São Paulo','state':'SP'}]";
     IHttpActionResult result = controller.GetRouteTotalValue(addressJson, 1);
     Assert.IsInstanceOf(typeof (ExceptionResult), result);
     var exception = result as ExceptionResult;
     if (exception != null)
         exception.Exception.Message.Should()
             .Contain("Deve enviar somente 0 para rota padrão rápida ou 23 para rota evitando o trânsito");
 }
        public void GetRouteTotalValueTest()
        {
            var controller = new RouteTotalController();
            const string addressJson =
                "[{'street':'Avenida Paulista','houseNumber':'1000','city':'São Paulo','state':'SP'},{'street':'Av Pres Juscelino Kubitschek','houseNumber':'1000','city':'São Paulo','state':'SP'},{'street':'Av Nove de Julho','houseNumber':'1500','city':'São Paulo','state':'SP'}]";
            IHttpActionResult result = controller.GetRouteTotalValue(addressJson, 0);
            Assert.IsInstanceOf(typeof (OkNegotiatedContentResult<IRouteTotalValues>), result);

            var routeTotalValue = result as OkNegotiatedContentResult<IRouteTotalValues>;
            routeTotalValue.Should().Not.Be.Null();
            if (routeTotalValue != null)
            {
                routeTotalValue.Content.TotalCost.Should().Not.Be(0);
                routeTotalValue.Content.TotalDistance.Should().Not.Be(0);
                routeTotalValue.Content.TotalTime.Should().Not.Be.Empty();
                routeTotalValue.Content.TotalfuelCost.Should().Not.Be(0);
            }
        }