Esempio n. 1
0
        public void Index_Returns_View_with_Values()
        {
            var expected_values = new[] { "1", "2", "3" };

            var values_service_mock = new Mock <IValuesService>();

            values_service_mock
            .Setup(service => service.Get())
            .Returns(expected_values);

            // Стаб
            var controller = new WebApiController(values_service_mock.Object);

            var result = controller.Index();

            var view_result = Assert.IsType <ViewResult>(result);

            var model = Assert.IsAssignableFrom <IEnumerable <string> >(view_result.Model);

            Assert.Equal(expected_values.Length, model.Count());

            //"Мок"

            values_service_mock.Verify(service => service.Get());
            values_service_mock.VerifyNoOtherCalls();
        }
Esempio n. 2
0
        public JsonResult GetTankerDetails(string rSTNo)
        {
            WebApiController api = new WebApiController();
            var details          = api.GetTankerDetails(rSTNo);

            return(this.Json(details, JsonRequestBehavior.AllowGet));
        }
        public JsonResult GetAllVendorDetails()
        {
            WebApiController api = new WebApiController();
            var details          = api.GetAllVendorDetails();

            return(this.Json(details, JsonRequestBehavior.AllowGet));
        }
Esempio n. 4
0
        public static Task <bool> JsonResponseAsync(this WebApiController This, object obj,
                                                    HttpStatusCode statusCode = HttpStatusCode.OK)
        {
            This.Response.StatusCode = (int)statusCode;

            return(This.StringResponseAsync(obj?.ToJson() ?? "{}"));
        }
Esempio n. 5
0
        /// <summary>
        /// Clicando no botão editar do formulário para atualizar o nome da atividade
        /// </summary>
        /// <param name="sender">object</param>
        /// <param name="e">EventArgs</param>
        protected void btnEditar_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                //preenche os dados
                var atividades = new AtividadesToDo()
                {
                    NomeTodo     = HtmlToText.StripHtml(txtTituloToDo.Text),
                    CompletoTodo = 0,
                    IdTodo       = int.Parse(hdIdToDo.Value)
                };

                //atualiza os dados na web api
                HttpResponseMessage response = WebApiController.AtualizarDadosWebApi(hdIdToDo.Value, atividades);

                if (response.IsSuccessStatusCode)
                {
                    Response.Redirect("Default?guid=" + Guid.NewGuid() + "&id=AtualizadoSucesso");
                }
                else
                {
                    Response.Write(response.StatusCode + " - " + response.ReasonPhrase);
                }
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Segunda grid com as atividades já realizadas
        /// </summary>
        /// <param name="sender">object</param>
        /// <param name="e">GridViewCommandEventArgs</param>
        protected void grdToDoCompleto_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "DesFeito")
            {
                int    index = int.Parse((string)e.CommandArgument);
                string chave = grdToDoCompleto.DataKeys[index]?["IdToDo"].ToString();

                //preenche os dados
                var atividades = new AtividadesToDo()
                {
                    NomeTodo     = HtmlToText.StripHtml(grdToDoCompleto.Rows[index].Cells[1].Text),
                    CompletoTodo = 0,
                    IdTodo       = int.Parse(chave ?? throw new InvalidOperationException())
                };

                //atualiza os dados no web api
                HttpResponseMessage response = WebApiController.AtualizarDadosWebApi(chave, atividades);

                if (response.IsSuccessStatusCode)
                {
                    Response.Redirect("Default?guid=" + Guid.NewGuid() + "&id=AtualizadoSucesso");
                }
                else
                {
                    Response.Write(response.StatusCode + " - " + response.ReasonPhrase);
                }
            }
        }
Esempio n. 7
0
        public void Index_Returns_View_with_Values()
        {
            var expected_values = new[] { "1", "2", "3" };

            var values_service_mock = new Mock <IValuesService>();             //

            values_service_mock                                                //
            .Setup(x => x.Get())                                               // Стаб - некоторый результат, который будет использован внутри тестового объекта.
            .Returns(expected_values);                                         //(прикидываемся интерфейсом)

            var controller = new WebApiController(values_service_mock.Object); // Stab

            var result = controller.Index();

            var view_result = Assert.IsType <ViewResult>(result);

            var model = Assert.IsAssignableFrom <IEnumerable <string> >(view_result.Model);

            Assert.Equal(expected_values.Length, model.Count());

            //Mock

            values_service_mock.Verify(service => service.Get());
            values_service_mock.VerifyNoOtherCalls();
        }
Esempio n. 8
0
        public void WriteEndpointClassToBlock(TypeScriptBlock endpointsBlock, WebApiController webApiController)
        {
            var controllerBlock = endpointsBlock
                                  .AddAndUseBlock($"export {Config.NamespaceOrModuleName} {webApiController.Name}");

            var actions = webApiController.Actions.Where(a => a.IsMobileAction);

            foreach (var action in actions)
            {
                if (action.BodyParameters.Count > 1)
                {
                    LogMessage($"Multiple conflicting call parameters detected in action [{action.Name}] of controller [{webApiController.Name}]!");
                    LogMessage("Please use [FromBody] or [FromUri] on all non-primitives!");

                    var parameters = action.BodyParameters.Select(bp => $"[{bp.Name}]");
                    LogMessage($"Parameters: {string.Join(" ", parameters)}");
                    LogMessage("");

                    continue;
                }

                foreach (var verb in action.Verbs)
                {
                    var actionName = action.GetActionNameForVerb(verb);

                    var interfaceBlock = controllerBlock
                                         .AddAndUseBlock($"export interface I{actionName}");

                    WriteInterfaceToBlock(interfaceBlock, action);

                    var endpointBlock = controllerBlock
                                        .AddAndUseBlock($"export interface I{actionName}Endpoint extends I{actionName}, IEndpoint");

                    var ctorBlock = controllerBlock
                                    .AddAndUseBlock($"export interface I{actionName}Ctor")
                                    .AddStatement($"new(args?: I{actionName}): I{actionName}Endpoint");

                    var ctorImplBlock = controllerBlock
                                        .AddAndUseBlock($"export var {actionName} : I{actionName}Ctor = <any>(function(args?: I{actionName})", false, ");")
                                        .AddStatement($"this._verb = '{verb.VerbMethod}';");

                    var constructorParameterMappings = action.GetConstructorParameterMappings(ignoreEnumDefinitions: true);
                    foreach (var mapping in constructorParameterMappings)
                    {
                        ctorImplBlock.AddStatement($"this.{mapping.Name} = args != null ? args.{mapping.Name} : null;");
                        if (mapping.TypeMapping?.AutoInitialize ?? false)
                        {
                            ctorImplBlock
                            .AddAndUseBlock($"if (this.{mapping.Name} == null)")
                            .AddStatement($"this.{mapping.Name} = new {mapping.TypeMapping.TypeScriptTypeName}();");
                        }
                    }

                    WriteGetQueryStringToBlock(controllerBlock, actionName, action);

                    WriteToStringToBlock(controllerBlock, actionName, action);
                }
            }
        }
Esempio n. 9
0
        public void IsConnectedTest()
        {
            WebApiController api = new WebApiController();

            bool result = api.IsConnected(true);

            Assert.IsTrue(result);
        }
Esempio n. 10
0
        public void ControllerWithProvidedInstanceShouldPopulateCorrectInstanceOfControllerType()
        {
            var instance   = new WebApiController();
            var controller = MyWebApi.Controller(instance).Controller;

            Assert.IsNotNull(controller);
            Assert.IsAssignableFrom <WebApiController>(controller);
        }
Esempio n. 11
0
        public void ControllerWithProvidedInstanceShouldPopulateCorrectInstanceOfControllerType()
        {
            var instance = new WebApiController();
            var controller = MyWebApi.Controller(instance).AndProvideTheController();

            Assert.IsNotNull(controller);
            Assert.IsAssignableFrom<WebApiController>(controller);
        }
 public ActionResult InsertVendorTanker(VendorTankerModel res)
 {
     if (res != null)
     {
         WebApiController webapi = new WebApiController();
         webapi.InsertVendorTanker(res);
     }
     return(RedirectToAction("Index"));
 }
        public void WriteEndpointClassToBlock(TypeScriptBlock endpointBlock, WebApiController webApiController)
        {
            var controllerBlock = endpointBlock
                                  .AddAndUseBlock($"export {Config.NamespaceOrModuleName} {webApiController.Name}");

            TypeScriptBlock serviceBlock = null;

            if (Config.GenerateService)
            {
                serviceBlock = controllerBlock
                               .AddAndUseBlock($"export interface I{webApiController.Name}Service");
            }

            var actions = webApiController.Actions;

            foreach (var action in actions)
            {
                foreach (var verb in action.Verbs)
                {
                    var actionName = action.GetActionNameForVerb(verb);

                    var interfaceBlock = controllerBlock
                                         .AddAndUseBlock($"export interface I{actionName}");

                    WriteInterfaceToBlock(interfaceBlock, action);

                    if (Config.GenerateService)
                    {
                        var interfaceWithCallBlock = controllerBlock
                                                     .AddAndUseBlock($"export interface I{actionName}WithCall extends I{actionName}, {IEndpoint}");

                        WriteInterfaceWithCallToBlock(interfaceWithCallBlock, action, verb);

                        serviceBlock
                        .AddStatement($"{actionName}: (args?: I{actionName}) => I{actionName}WithCall");
                    }

                    var classBlock = controllerBlock
                                     .AddAndUseBlock($"export class {actionName} implements I{actionName}, {IEndpoint}")
                                     .AddStatement($"_verb = '{verb.VerbMethod}';");

                    var constructorParameterMappings = action.GetConstructorParameterMappings();
                    foreach (var constructorParameterMapping in constructorParameterMappings)
                    {
                        classBlock
                        .AddStatement($"{constructorParameterMapping.String};");
                    }

                    WriteConstructorToBlock(classBlock, action, verb);

                    WriteGetQueryStringToBlock(classBlock, action);

                    WriteToStringToBlock(classBlock, action);
                }
            }
        }
        public void WithResponseModelShouldNotThrowExceptionWithCorrectResponseModel()
        {
            var controller = new WebApiController();

            MyWebApi
            .Controller(controller)
            .Calling(c => c.HttpResponseMessageAction())
            .ShouldReturn()
            .HttpResponseMessage()
            .WithResponseModel(controller.ResponseModel);
        }
        public void WithResponceModelShouldNotThrowExceptionWithDeeplyEqualPassedExpectedObject()
        {
            var controller = new WebApiController();

            MyWebApi
                .Controller<WebApiController>()
                .Calling(c => c.OkResultWithResponse())
                .ShouldReturn()
                .Ok()
                .WithResponseModel(controller.ResponseModel);
        }
        public void WithResponseModelShouldNotThrowExceptionWithCorrectResponseModel()
        {
            var controller = new WebApiController();

            MyWebApi
                .Controller(controller)
                .Calling(c => c.HttpResponseMessageAction())
                .ShouldReturn()
                .HttpResponseMessage()
                .WithResponseModel(controller.ResponseModel);
        }
Esempio n. 17
0
        public void Cannot_Get_Data_When_Not_Contain_KeyString()
        {
            MyMock myMock = new MyMock();
            string key    = "GPU";

            myMock.ProductRepository.Setup(m => m.Products).Returns(GetProductsData());
            var controller = new WebApiController(myMock.ProductRepository.Object);

            ProductsListJsonViewModel result = controller.GetSpecifyProductIntro("ALL", key);

            Assert.AreEqual(0, result.Products.Count());
        }
Esempio n. 18
0
        public void Setup()
        {
            _listener      = new HttpListener();
            _localEndPoint = new IPEndPoint(IPAddress.Loopback, 8080);
            _apiUrl        = string.Format("http://{0}/sharpremote/api/test/", _localEndPoint);
            _listener.Prefixes.Add(_apiUrl);
            _listener.Start();
            _client = new HttpClient();

            _server    = new WebApiController();
            _container = new SystemNetHttpListener(_listener, _server);
        }
Esempio n. 19
0
        /// <summary>
        /// Preenche o grid com as atividades não completas
        /// </summary>
        private void PreencherGridNaoCompleto()
        {
            HttpResponseMessage response = WebApiController.ConsultaWebApiByStatus(0);

            if (response.IsSuccessStatusCode)
            {
                var contas = response.Content.ReadAsAsync <IEnumerable <AtividadesToDo> >().Result;

                grdToDo.DataSource = contas;
                grdToDo.DataBind();
            }
        }
Esempio n. 20
0
        public override bool Execute()
        {
            InitializeServices();

            var apiControllers = TypeService.GetControllers(Config.WebApiModuleFileName);

            var endpointBlock = EndpointsService.CreateEndpointBlock();
            var serviceBlock  = AngularEndpointsService.CreateServiceBlock();

            StartAnalysis("controllers and actions");

            foreach (var apiController in apiControllers)
            {
                var webApiController = new WebApiController(apiController);

                EndpointsService.WriteEndpointClassToBlock(endpointBlock, webApiController);
                AngularEndpointsService.WriteServiceObjectToBlock(serviceBlock.Children.First() as TypeScriptBlock, webApiController);
            }

            StopAnalysis();

            CreateFileForBlock(endpointBlock, Config.EndpointsOutputDirectory, Config.EndpointsFileName);
            CreateFileForBlock(serviceBlock, Config.ServiceOutputDirectory, Config.ServiceFileName);

            var enumsBlock      = EnumsService.CreateEnumsBlock();
            var interfacesBlock = InterfaceService.CreateInterfacesBlock();

            if (Config.GenerateInterfaces)
            {
                StartAnalysis("interfaces");

                InterfaceService.AddMatchingInterfaces();
                InterfaceService.WriteInterfacesToBlock(interfacesBlock);

                StopAnalysis();

                CreateFileForBlock(interfacesBlock, Config.InterfacesOutputDirectory, Config.InterfacesFileName);
            }

            if (Config.GenerateEnums)
            {
                StartAnalysis("enumerations");

                EnumsService.WriteEnumsToBlock(enumsBlock);

                StopAnalysis();

                CreateFileForBlock(enumsBlock, Config.EnumsOutputDirectory, Config.EnumsFileName);
            }

            return(true);
        }
Esempio n. 21
0
        /// <summary>
        /// Deletando dados na Web Api
        /// </summary>
        /// <param name="sender">object</param>
        /// <param name="e">GridViewDeleteEventArgs</param>
        protected void grdToDo_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            //pegando o valor selecionado no grid
            string idToDo = grdToDo.DataKeys[e.RowIndex]?["IdToDo"].ToString();

            //deleta os dados pela Web API
            HttpResponseMessage response = WebApiController.DeletarDadosWebApi(idToDo);

            if (response.IsSuccessStatusCode)
            {
                Response.Redirect("Default?guid=" + Guid.NewGuid() + "&id=deleteSucesso");
            }
        }
Esempio n. 22
0
        public void Can_Get_Data()
        {
            MyMock myMock = new MyMock();

            myMock.ProductRepository.Setup(m => m.Products).Returns(GetProductsData());
            var controller = new WebApiController(myMock.ProductRepository.Object);

            ProductsListJsonViewModel result = controller.GetSpecifyProductIntro("ALL");

            Assert.AreEqual(5, result.CategoryList.Count());
            Assert.AreEqual("ALL", result.CategoryList.First());
            Assert.AreEqual(10, result.Products.Count());
            Assert.AreEqual(2, result.TotalPage);
        }
Esempio n. 23
0
        public void Can_Get_Data_With_KeyString()
        {
            MyMock myMock = new MyMock();
            string key    = "2";

            myMock.ProductRepository.Setup(m => m.Products).Returns(GetProductsData());
            var controller = new WebApiController(myMock.ProductRepository.Object);

            ProductsListJsonViewModel result = controller.GetSpecifyProductIntro("ALL", key);

            Assert.AreEqual(3, result.Products.Count());
            Assert.AreEqual(1, result.TotalPage);
            Assert.AreEqual("smartphone2", result.Products.First().Name);
        }
        public void WithResponceModelShouldThrowExceptionWithDifferentPassedExpectedObject()
        {
            var controller = new WebApiController();

            var another = controller.ResponseModel.ToList();
            another.Add(new ResponseModel());

            MyWebApi
                .Controller<WebApiController>()
                .Calling(c => c.OkResultWithResponse())
                .ShouldReturn()
                .Ok()
                .WithResponseModel(another);
        }
        public void WriteServiceObjectToBlock(TypeScriptBlock serviceBlock, WebApiController webApiController)
        {
            var controllerBlock = serviceBlock
                                  .AddAndUseBlock($"public {webApiController.Name} =");

            var actions = webApiController.Actions;

            for (var a = 0; a < actions.Count; a++)
            {
                var action = actions[a];

                var constructorParameterMappings = action.GetConstructorParameterMappings();

                for (var v = 0; v < action.Verbs.Count; v++)
                {
                    var verb = action.Verbs[v];

                    var actionName = action.GetActionNameForVerb(verb);

                    var isLastActionAndVerb = a == actions.Count - 1 &&
                                              v == action.Verbs.Count - 1;

                    var areAllParametersOptional = constructorParameterMappings
                                                   .All(m => m.IsOptional);

                    var optionalString = areAllParametersOptional
                        ? "?"
                        : string.Empty;

                    var callArgumentDefinition = action.GetCallArgumentDefinition(verb);
                    var callArgumentValue      = action.GetCallArgumentValue(verb);

                    var interfaceFullName         = $"{Config.EndpointsNamespace}.{webApiController.Name}.I{actionName}";
                    var interfaceWithCallFullName = $"{Config.EndpointsNamespace}.{webApiController.Name}.I{actionName}WithCall";
                    var endpointFullName          = $"{Config.EndpointsNamespace}.{webApiController.Name}.{actionName}";

                    controllerBlock
                    .AddAndUseBlock
                    (
                        outer: $"{actionName}: (args{optionalString}: {interfaceFullName}): {interfaceWithCallFullName} =>",
                        isFunctionBlock: false,
                        terminationString: !isLastActionAndVerb ? "," : string.Empty
                    )
                    .AddStatement($"var endpoint = new {endpointFullName}(args);")
                    .AddAndUseBlock("return _.extendOwn(endpoint,", isFunctionBlock: true, terminationString: ";")
                    .AddAndUseBlock($"call<TView>({callArgumentDefinition})")
                    .AddStatement($"return {Config.ServiceName}.call<TView>(this, {callArgumentValue});");
                }
            }
        }
        /// <summary>
        /// Convertir el cuerpo JSON de la solicitud en un modelo de datos
        /// </summary>
        /// <typeparam name="T">Tipo de modelo</typeparam>
        /// <param name="controller">Controlador</param>
        /// <param name="body">Referencia donde almacenar el contenido del cuerpo</param>
        /// <returns>null en caso de que la solicitud no sea JSON o no tenga la estructura correcta</returns>
        public static T RequestBodyToModel <T>(this WebApiController controller, out string body)
            where T : class
        {
            body = controller.RequestBody();
            try {
                if (controller.Request.ContentType != "application/json")
                {
                    return(null);
                }

                return(JsonConvert.DeserializeObject <T>(body));
            } catch (Exception) {
                return(null);
            }
        }
Esempio n. 27
0
        //获取工单详情
        public ActionResult GetOrderData(string OrderNo, string TenantID, string LineId)
        {
            StringBuilder sb = new StringBuilder();

            try
            {
                WebApiController controller = new WebApiController();
                dynamic          result     = controller.GetOrderNoDetail(LineId, OrderNo, DateTime.Now.Date.ToString("yyyy-MM-dd"), TenantID);
                string           status     = result.status + "";
                string           message    = result.message + "";
                if (status == "error")
                {
                    sb.Append("{\"ok\":false,");
                    sb.Append("\"message\":\"" + message + "\"}");
                    return(Json(sb.ToString(), "application/json", JsonRequestBehavior.AllowGet));
                }
                else
                {
                    dynamic rows     = result.rows;
                    int     TTQty    = rows.Qty;
                    int     TodayQty = GetQty(TenantID, LineId, OrderNo);
                    if (TTQty < TodayQty)
                    {
                        TTQty = TodayQty;
                    }
                    string Rate = Math.Round((decimal)TTQty * 100 / Convert.ToInt32(rows.PlanQty), 2) + "%";
                    sb.Append("{\"ok\":true,");
                    sb.Append("\"OrderNo\":\"" + rows.OrderNo + "\",");
                    sb.Append("\"ProductCode\":\"" + rows.ProductCode + "\",");
                    sb.Append("\"ProductName\":\"" + rows.ProductName + "\",");
                    sb.Append("\"Qty\":\"" + TodayQty + "\",");
                    sb.Append("\"QtyNG\":\"" + rows.QtyNG + "\",");
                    sb.Append("\"PlanQty\":\"" + rows.PlanQty + "\",");
                    sb.Append("\"Ratio\":\"" + rows.Ratio + "\",");
                    sb.Append("\"StandUsers\":\"" + rows.StandUsers + "\",");
                    sb.Append("\"TTQty\":\"" + TTQty + "\",");
                    sb.Append("\"Rate\":\"" + Rate + "\"}");
                    return(Json(sb.ToString(), "application/json", JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception ex)
            {
                sb.Append("{\"ok\":false,");
                sb.Append("\"message\":\"" + ex.Message + "\"}");
                return(Json(sb.ToString(), "application/json", JsonRequestBehavior.AllowGet));
            }
        }
Esempio n. 28
0
        public void Setup()
        {
            _dummyPolls = new InMemoryDbSet <Poll>(true);

            var mockContextFactory = new Mock <IContextFactory>();
            var mockContext        = new Mock <IVotingContext>();

            _mockContext = mockContext.Object;
            mockContextFactory.Setup(a => a.CreateContext()).Returns(_mockContext);
            mockContext.Setup(a => a.Polls).Returns(_dummyPolls);

            var mockMetricHandler = new Mock <IMetricHandler>();

            _controller               = new WebApiController(mockContextFactory.Object, mockMetricHandler.Object);
            _controller.Request       = new HttpRequestMessage();
            _controller.Configuration = new HttpConfiguration();
        }
Esempio n. 29
0
        /// <summary>
        /// Atualiza os dados pel Web Api
        /// Ou Joga os dados para a tela
        /// Apenas o status que altera
        /// </summary>
        /// <param name="sender">object</param>
        /// <param name="e">GridViewCommandEventArgs</param>
        protected void grdToDo_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            //clicar no botão feito (já foi realizado essa atividade)
            if (e.CommandName == "Feito")
            {
                int    index = int.Parse((string)e.CommandArgument);
                string chave = grdToDo.DataKeys[index]?["IdToDo"].ToString();

                //preenche os dados
                var atividades = new AtividadesToDo()
                {
                    NomeTodo     = HtmlToText.StripHtml(grdToDo.Rows[index].Cells[1].Text),
                    CompletoTodo = 1,
                    IdTodo       = int.Parse(chave)
                };

                //atualiza os dados preenchidos da classe Atividades no Web Api
                HttpResponseMessage response = WebApiController.AtualizarDadosWebApi(chave, atividades);

                if (!response.IsSuccessStatusCode)
                {
                    Response.Write(response.StatusCode + " - " + response.ReasonPhrase);
                }
                else
                {
                    Response.Redirect("Default?guid=" + Guid.NewGuid() + "&id=AtualizadoSucesso");
                }
            }
            //click no botão editar dentro do grid
            else if (e.CommandName == "Editar")
            {
                int    index = int.Parse((string)e.CommandArgument);
                string chave = grdToDo.DataKeys[index]?["IdToDo"].ToString();

                if (chave != null)
                {
                    hdIdToDo.Value = chave;
                }

                txtTituloToDo.Text = HtmlToText.StripHtml(grdToDo.Rows[index].Cells[1].Text);

                btnEditar.Visible = true;
                btnEnviar.Visible = false;
            }
        }
        public void WithResponseModelShouldNotThrowExceptionWithCorrectPassedExpectedObject()
        {
            var controller = new WebApiController();

            MyWebApi
                .Controller(() => controller)
                .Calling(c => c.OkResultWithInterfaceResponse())
                .ShouldReturn()
                .Ok()
                .WithResponseModel(controller.ResponseModel);
        }