public void APIUserLogoutTest() { // login to the backend server var clientxsrf = ClientXsrf.GetValidClientAndxsrfTokenPair(_configure); // extract the client var client = clientxsrf.client; // should be 3 cookies after login Assert.Equal(3, client.CookieContainer.Count); // extract the xsrf token var xsrfToken = clientxsrf.xsrfToken; // set the logout url client.BaseUrl = new Uri($"{_configure.BaseUrl}/api/authorization/logout"); //setup the request headers var request = RequestHelpers.BasicPostRequest(); // get the authorization token and adds the token to the request request.AddHeader("X-XSRF-TOKEN", xsrfToken); // execute the logout request var response = client.Execute(request); // valid response Assert.Equal(HttpStatusCode.OK, response.StatusCode); // should be no cookies in the response after login Assert.Equal(0, response.Cookies.Count); ApiOutputHelper.WriteRequestResponseOutput(request, response, _output); }
private IRestResponse AttemptLogin(string username, string password) { var client = new RestClient { BaseUrl = new Uri(_configure.BaseUrl + "/api/authorization/login") }; var request = new RestRequest { Method = Method.POST, RequestFormat = DataFormat.Json }; request.AddHeader("Content-Type", "application/json"); request.AddJsonBody(new { username, password }); var response = client.Execute(request); ApiOutputHelper.WriteRequestResponseOutput(request, response, _output); return(response); }
private void AttemptLogin(string username, string password, HttpStatusCode expectedStatusCode) { // setup client and request var client = new RestClient { BaseUrl = new Uri(_configure.BaseUrl + "/api/authorization/login") }; var request = new RestRequest { Method = Method.POST, RequestFormat = DataFormat.Json }; request.AddHeader("Content-Type", "application/json"); request.AddJsonBody(new { username = username, password = password }); // execute the request and assert response correct var response = client.Execute(request); ApiOutputHelper.WriteRequestResponseOutput(request, response, _output); Assert.Equal(expectedStatusCode, response.StatusCode); }
/// <summary> /// Perform a specific request type to an end point with the specified parameters and headers, /// </summary> /// <param name="method">The specified request method type</param> /// <param name="url">The Endpoint</param> /// <param name="param">The Request Body/Parameters</param> /// <param name="headers">The Request Headers</param> /// <param name="dataFormat">XML or JSon Body</param> /// <param name="files">Files to attatch to the request</param> public IRestResponse RequestEndpoint( Method method, string url, object param = null, Dictionary <string, string> headers = null, DataFormat dataFormat = DataFormat.Json, IEnumerable <FileData> files = null ) { // Setup the rest client var client = new RestClient { BaseUrl = new Uri(_configure.BaseUrl + url) }; // Setup the request var request = new RestRequest { Method = method, }; // Merge the two dictionaries together var requestHeaders = new Dictionary <string, string>(); if (headers != null) { foreach (var(key, value) in headers) { requestHeaders.TryAdd(key, value); } } if (CommonHeaders != null) { foreach (var(key, value) in CommonHeaders) { requestHeaders.TryAdd(key, value); } } // Set all the headers to the request if (requestHeaders.Count > 0) { foreach (var(key, value) in requestHeaders) { request.AddHeader(key, value); } } if (param != null) { request.RequestFormat = dataFormat; switch (dataFormat) { case DataFormat.Json: request.AddJsonBody(param); break; case DataFormat.Xml: request.AddXmlBody(param); break; case DataFormat.None: break; default: request.AddJsonBody(param); break; } } if (files != null) { if (param is Dictionary <string, object> paramDictionary) { foreach (var paramItem in paramDictionary) { request.AddParameter(paramItem.Key, paramItem.Value, ParameterType.GetOrPost); } } else { throw new Exception("The param format is invalid"); } foreach (var file in files) { request.AddFile(file.Id.ToString(), file.Data, file.Filename); } } // Execute the request var response = client.Execute(request); if (_output != null) { ApiOutputHelper.WriteRequestResponseOutput(request, response, _output); } return(response); }