public void DeleteOnEachEndpoint <TRes>(string relativePathOrAbsoluteUri, Action <TRes> validate) { using (var xmlClient = new XmlServiceClient(BaseUrl)) using (var jsonClient = new JsonServiceClient(BaseUrl)) using (var jsvClient = new JsvServiceClient(BaseUrl)) { var xmlResponse = xmlClient.Delete <TRes>(relativePathOrAbsoluteUri); if (validate != null) { validate(xmlResponse); } var jsonResponse = jsonClient.Delete <TRes>(relativePathOrAbsoluteUri); if (validate != null) { validate(jsonResponse); } var jsvResponse = jsvClient.Delete <TRes>(relativePathOrAbsoluteUri); if (validate != null) { validate(jsvResponse); } } }
public static IServiceGateway ResolveBestFitClient(string baseUrl, Type requestType) { var restricts = requestType.AllAttributes <RestrictAttribute>(); var inSecureAllowed = restricts.All(t => t.HasAccessTo(RequestAttributes.InSecure)) || restricts.All(t => !t.HasAccessTo(RequestAttributes.Secure)); if (!inSecureAllowed && baseUrl.StartsWith("http", StringComparison.InvariantCultureIgnoreCase)) { baseUrl = baseUrl.Insert(4, "s"); //tack in the secure if required and not in base listening url } IServiceGateway gateway = null; if (requestType.HasJsonClientSupport()) { gateway = new JsonServiceClient(baseUrl); } else if (requestType.HasJsvClientSupport()) { gateway = new JsvServiceClient(baseUrl); } else if (requestType.HasXmlClientSupport()) { gateway = new XmlServiceClient(baseUrl); } return(gateway ?? (IServiceGateway) new JsonServiceClient(baseUrl)); //default will be Json if logic doesn't figure it out }
/// <summary> /// Run the request against each Endpoint /// </summary> /// <typeparam name="TRes"></typeparam> /// <param name="request"></param> /// <param name="validate"></param> /// <param name="httpMethod"></param> public void SendToEachEndpoint <TRes>(object request, string httpMethod, Action <TRes> validate) { using (var xmlClient = new XmlServiceClient(BaseUrl)) using (var jsonClient = new JsonServiceClient(BaseUrl)) using (var jsvClient = new JsvServiceClient(BaseUrl)) { xmlClient.HttpMethod = httpMethod; jsonClient.HttpMethod = httpMethod; jsvClient.HttpMethod = httpMethod; var xmlResponse = xmlClient.Send <TRes>(request); if (validate != null) { validate(xmlResponse); } var jsonResponse = jsonClient.Send <TRes>(request); if (validate != null) { validate(jsonResponse); } var jsvResponse = jsvClient.Send <TRes>(request); if (validate != null) { validate(jsvResponse); } } }
public void IniciarSesion() { if (autorizado != null) { CerrarConexionVivanto(); } disposedValue = false; cliente = new XmlServiceClient(parametros.UrlBase); using (var httpResponse = cliente.Get <HttpWebResponse>("{0}/{1},{2},{3}".Fmt(parametros.UrlLogin, parametros.IdAplicacion, login.Usuario, login.Clave))) { var responseStream = httpResponse.GetResponseStream(); var r2 = responseStream.ToUtf8String(); var dd = ServiceStack.Text.XmlSerializer.DeserializeFromString <List <Autorizado> >(r2); if (dd.Count > 0) { autorizado = dd[0]; long prueba; if (!long.TryParse(autorizado.IdUsuario, out prueba)) { var msg = autorizado.IdUsuario; autorizado = null; throw new ExcepcionServicioVivanto(DirInfoLog, msg); } Log.Autorizado(DirInfoLog, "{0} {1}".Fmt(autorizado.IdUsuario, autorizado.Token)); return; } } throw new ExcepcionServicioVivanto(DirInfoLog, "Metodo de autenticación no retornó Autorizados"); }
private void CerrarConexionVivanto() { if (cliente != null) { using (cliente) { if (autorizado != null) { try { using (var httpResponse = cliente.Get <HttpWebResponse>("{0}/{1},{2},{3}".Fmt(parametros.UrlLogout, parametros.IdAplicacion, autorizado.IdUsuario, autorizado.Token))) { var responseStream = httpResponse.GetResponseStream(); var r2 = responseStream.ToUtf8String(); Log.Sesion(DirInfoLog, r2); } } catch (Exception ex) { Log.Sesion(DirInfoLog, ex.Message); } autorizado = null; } } cliente = null; } }
/// <summary>Sends a request of contentype application/xml </summary> private void IncorrectRequest() { var client = new XmlServiceClient(HostingAt); var request = new MyRequest { Data = "RequestData" }; var response = client.Post(request); }
public void Can_call_GetFactorial_WebService() { var client = new XmlServiceClient(ListeningOn); var request = new GetFactorial { ForNumber = 3 }; var response = client.Send<GetFactorialResponse>(request); Assert.That(response.Result, Is.EqualTo(GetFactorialService.GetFactorial(request.ForNumber))); }
public void PostRequest() { var client = new XmlServiceClient(Config.ServiceStackBaseUri); client.Headers.Add("Bar", "abc123"); client.Headers.Add("Foo", "xyz"); var response = client.Post(new CustomHeaders()); Assert.That(response.Bar, Is.EqualTo("abc123")); Assert.That(response.Foo, Is.EqualTo("xyz")); }
void RptrTestsItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e) { var request = (AuthenticateRequest)e.Item.DataItem; var lMessage = (Label)e.Item.FindControl("lMessage"); var lSuccess = (Label)e.Item.FindControl("lSuccess"); var lUser = (Label)e.Item.FindControl("lUser"); var lUsername = (Label)e.Item.FindControl("lUsername"); var lFirstName = (Label)e.Item.FindControl("lFirstName"); var lLastName = (Label)e.Item.FindControl("lLastName"); var lAddress = (Label)e.Item.FindControl("lAddress"); var lAddressStreet = (Label)e.Item.FindControl("lAddressStreet"); var lCity = (Label)e.Item.FindControl("lCity"); var lState = (Label)e.Item.FindControl("lState"); var lZip = (Label)e.Item.FindControl("lZip"); var phAddress = (PlaceHolder)e.Item.FindControl("phAddress"); var hUsername = (Label)e.Item.FindControl("hUsername"); hUsername.Text = request.Username; //var restClient = new JsonServiceClient("http://localhost:25000/"); var restClient = new XmlServiceClient("http://localhost:25000/"); restClient.Timeout = new TimeSpan(0, 0, 30); var response = restClient.Send <AuthenticateResponse>(request); lMessage.Text = response.Message ?? "null"; lSuccess.Text = response.Success ? "true" : "false"; if (response.User == null) { lUser.Text = "null"; } else { lUser.Text = "not null"; User u = response.User; lUsername.Text = u.Username ?? "null"; lFirstName.Text = u.FirstName ?? "null"; lLastName.Text = u.LastName ?? "null"; if (u.Address == null) { lAddress.Text = "null"; phAddress.Visible = false; } else { lAddress.Text = "not null"; Address a = u.Address; lAddressStreet.Text = a.Street ?? "null"; lCity.Text = a.City ?? "null"; lState.Text = a.State ?? "null"; lZip.Text = a.Zip ?? "null"; } } }
public void Can_call_GetFactorial_WebService() { var client = new XmlServiceClient(ListeningOn); var request = new GetFactorial { ForNumber = 3 }; var response = client.Send <GetFactorialResponse>(request); Assert.That(response.Result, Is.EqualTo(GetFactorialService.GetFactorial(request.ForNumber))); }
public void GetAllOrders() { //ARRANGE --- var client = new XmlServiceClient("http://localhost:50712/"); //ACT ------ var orders = client.Get <OrdersResponse>("/orders"); //ASSERT ---- Assert.IsTrue(orders != null); Assert.IsTrue(orders.Orders.Count > 0); }
public void UpdateOrder() { //ARRANGE --- HttpStatusCode statusCode = 0; const string SITE = "http://localhost:50712"; const string ORDERS_LINK = "/orders/1"; const string URI = SITE + ORDERS_LINK; const int NEW_PRODUCT_ID = 5; DateTime NEW_CREATION_DATE = new DateTime(2013, 08, 08); var client = new XmlServiceClient(SITE) { //grabbing the header once the call is ended. LocalHttpWebResponseFilter = httpRes => { statusCode = httpRes.StatusCode; } }; var updateOrder = new Order { CreationDate = NEW_CREATION_DATE, IsTakeAway = false, Items = new List <OrderItem>() { new OrderItem { Id = 6, //setting a different product! Product = new Product { Id = NEW_PRODUCT_ID }, //setting a different quantity. Quantity = 100 } }, Status = new Status { Id = 1 } }; //ACT ------ var orderResponse = client.Put <OrderResponse>(ORDERS_LINK, updateOrder); //ASSERT ---- Assert.IsTrue(statusCode == HttpStatusCode.OK); Assert.IsTrue(orderResponse.CreationDate == NEW_CREATION_DATE); Assert.IsTrue(orderResponse.IsTakeAway == false); //only one item Assert.IsTrue(orderResponse.Items.Count == 1); Assert.IsTrue(orderResponse.Items[0].Product.Id == NEW_PRODUCT_ID); }
public void GetOrdersByOrderId() { //ARRANGE --- const int ORDER_ID = 1; var client = new XmlServiceClient("http://localhost:50712/"); //ACT ------ var order = client.Get <OrderResponse>("/orders/" + ORDER_ID); //ASSERT ---- Assert.IsTrue(order != null); Assert.IsTrue(order.Id == ORDER_ID); }
void RptrTestsItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e) { var request = (AuthenticateRequest)e.Item.DataItem; var lMessage = (Label)e.Item.FindControl("lMessage"); var lSuccess = (Label)e.Item.FindControl("lSuccess"); var lUser = (Label)e.Item.FindControl("lUser"); var lUsername = (Label)e.Item.FindControl("lUsername"); var lFirstName = (Label)e.Item.FindControl("lFirstName"); var lLastName = (Label)e.Item.FindControl("lLastName"); var lAddress = (Label)e.Item.FindControl("lAddress"); var lAddressStreet = (Label)e.Item.FindControl("lAddressStreet"); var lCity = (Label)e.Item.FindControl("lCity"); var lState = (Label)e.Item.FindControl("lState"); var lZip = (Label)e.Item.FindControl("lZip"); var phAddress = (PlaceHolder)e.Item.FindControl("phAddress"); var hUsername = (Label)e.Item.FindControl("hUsername"); hUsername.Text = request.Username; //var restClient = new JsonServiceClient("http://localhost:25000/"); var restClient = new XmlServiceClient("http://localhost:25000/"); restClient.Timeout = new TimeSpan(0, 0, 30); var response = restClient.Send<AuthenticateResponse>(request); lMessage.Text = response.Message ?? "null"; lSuccess.Text = response.Success ? "true" : "false"; if(response.User == null) { lUser.Text = "null"; } else { lUser.Text = "not null"; User u = response.User; lUsername.Text = u.Username ?? "null"; lFirstName.Text = u.FirstName ?? "null"; lLastName.Text = u.LastName ?? "null"; if(u.Address == null) { lAddress.Text = "null"; phAddress.Visible = false; } else { lAddress.Text = "not null"; Address a = u.Address; lAddressStreet.Text = a.Street ?? "null"; lCity.Text = a.City ?? "null"; lState.Text = a.State ?? "null"; lZip.Text = a.Zip ?? "null"; } } }
public void CreateNewOrder() { //ARRANGE --- WebHeaderCollection headers = null; HttpStatusCode statusCode = 0; const string SITE = "http://localhost:50712"; const string ORDERS = "/orders"; const string URI = SITE + ORDERS; var client = new XmlServiceClient(SITE) { //grabbing the header once the call is ended. LocalHttpWebResponseFilter = httpRes => { headers = httpRes.Headers; statusCode = httpRes.StatusCode; } }; var newOrder = new Order { CreationDate = DateTime.Now, IsTakeAway = true, Status = new Status { Id = 1 }, //active Items = new List <OrderItem> { new OrderItem { Product = new Product { Id = 1 }, Quantity = 10 }, new OrderItem { Product = new Product { Id = 2 }, Quantity = 10 } } }; //ACT ------ var order = client.Post <OrderResponse>(ORDERS, newOrder); //ASSERT ---- Assert.IsTrue(headers["Location"] == URI + "/" + order.Id); Assert.IsTrue(statusCode == HttpStatusCode.Created); Assert.IsTrue(order.Items.Count == 2); Assert.IsTrue(order.Status.Id == 1); //status is active. }
public void Get_Xml_XmlCodifiedLanguages() { var repository = Substitute.For<ILanguageRepository>(); Replacing(repository); repository.FindAll().Returns(new[] {"es", "da"}); using (var client = new XmlServiceClient()) { var response = client.Get<LanguagesResponse>(UrlFor("/languages")); Assert.That(response.ResponseStatus, Is.Null); Assert.That(response.Languages[0].Code, Is.EqualTo("es")); Assert.That(response.Languages[1].Code, Is.EqualTo("da")); } }
public void GetOrderItemByOrderId() { //ARRANGE --- var ITEM_ID = "2"; var client = new XmlServiceClient("http://localhost:50712/"); string ITEM_LINK = "/orders/1/items/2"; //ACT ------ var item = client.Get <OrderItemResponse>(ITEM_LINK); //ASSERT ---- Assert.IsNotNull(item != null); Assert.IsTrue(item.Id.ToString() == ITEM_ID); }
public void Get_customers_using_XmlServiceClient() { using (IServiceClient client = new XmlServiceClient(base.XmlSyncReplyBaseUri)) { var request = new GetCustomers { CustomerIds = new ArrayOfIntId { CustomerId } }; var response = client.Send <GetCustomersResponse>(request); Assert.AreEqual(1, response.Customers.Count); Assert.AreEqual(CustomerId, response.Customers[0].Id); } }
public void GetOrderItemsByOrderId() { //ARRANGE --- int ORDER_ID = 1; string ITEMS_LINK = "/orders/" + ORDER_ID + "/items"; var client = new XmlServiceClient("http://localhost:50712/"); //ACT ------ var items = client.Get <OrderItemsResponse>(ITEMS_LINK); //ASSERT ---- Assert.IsNotNull(items != null); Assert.IsNotNull(items.Items); Assert.IsTrue(items.Items.Count == 2); }
public void Send <TRes>(object request, Action <TRes> validate) { using (var xmlClient = new XmlServiceClient(BaseUrl)) using (var jsonClient = new JsonServiceClient(BaseUrl)) using (var jsvClient = new JsvServiceClient(BaseUrl)) { var xmlResponse = xmlClient.Send <TRes>(request); validate(xmlResponse); var jsonResponse = jsonClient.Send <TRes>(request); validate(jsonResponse); var jsvResponse = jsvClient.Send <TRes>(request); validate(jsvResponse); } }
public void Disabling_XML_ContentType_prevents_posting_XML() { var client = new XmlServiceClient(Config.ListeningOn); try { client.Post(new TestContentType { Id = 1 }); } catch (WebServiceException ex) { Assert.That(ex.StatusCode, Is.EqualTo(403)); Assert.That(ex.StatusDescription, Is.EqualTo(nameof(HttpStatusCode.Forbidden))); } }
public void Can_start_Listener_and_call_GetFactorial_WebService() { var appHost = new AppHost(); appHost.Init(); appHost.Start(ListeningOn); System.Console.WriteLine("AppHost Created at {0}, listening on {1}", DateTime.Now, ListeningOn); var client = new XmlServiceClient(ListeningOn); var request = new GetFactorial { ForNumber = 3 }; var response = client.Send <GetFactorialResponse>(request); Assert.That(response.Result, Is.EqualTo(GetFactorialService.GetFactorial(request.ForNumber))); }
public void DeleteOrder() { //ARRANGE --- HttpStatusCode statusCode = 0; const string SITE = "http://localhost:50712"; var client = new XmlServiceClient(SITE) { //grabbing the header once the call is ended. LocalHttpWebResponseFilter = httpRes => { statusCode = httpRes.StatusCode; } }; //ACT ------ client.Delete <HttpResult>("/orders/2"); //ASSERT ---- Assert.IsTrue(statusCode == HttpStatusCode.NoContent); }
/// <summary>Sends a request of contentype application/xml </summary> private void IncorrectRequest() { var client = new XmlServiceClient(HostingAt); var request = new MyRequest {Data = "RequestData"}; var response = client.Post(request); }