public static RestImplementationBuilder AddBasicAuthorization( this RestImplementationBuilder builder, string userName, string password) { return(builder.WithHandler(new BasicAuthorizationHandler(userName, password))); }
public async Task GetOrder_ShouldBeSuccess() { //Arrange var order = new Fixture() .Create <Order>(); var countInvokation = 0; var restFactory = new RestImplementationBuilder() .WithBaseUrl("http://localhost:8080/") .WithHandler(new RequestHandlerStub(req => { countInvokation++; var responseMessage = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(JsonConvert.SerializeObject(order), Encoding.UTF8, "application/json") }; return(responseMessage); })) .Build(); var imp = restFactory.Create <ITestInterface>(); //Act var response = await imp.GetOrder(1); //Assert Assert.IsNotNull(response); Assert.AreEqual(1, countInvokation); }
public async Task GreateOrder_WithBody_ShouldBeSuccess() { //Arrange var order = new Fixture() .Create <Order>(); var countInvokation = 0; var restFactory = new RestImplementationBuilder() .WithBaseUrl("http://localhost:8080/") .WithHandler(new RequestHandlerStub(req => { countInvokation++; return(new HttpResponseMessage(HttpStatusCode.Created)); })) .Build(); var imp = restFactory.Create <ITestInterface>(); //Act await imp.GreateOrder(order); //Assert Assert.AreEqual(1, countInvokation); }
static async Task Main(string[] args) { var restImple = new RestImplementationBuilder() .WithBaseUrl("https://jsonplaceholder.typicode.com/") .WithTimeout(TimeSpan.FromSeconds(60)) .AddLogging(async request => { var requestString = request.Content == null ? null : await request.Content .ReadAsStringAsync() .ConfigureAwait(false); var stringBuilder = new StringBuilder(512); stringBuilder.AppendLine($"METHOD: {request.Method.Method}"); stringBuilder.AppendLine($"URI: {request.RequestUri}"); stringBuilder.AppendLine($"REQUEST HEADERS: "); foreach (var header in request.Headers) { stringBuilder.AppendLine("\t" + header.Key + " : "); stringBuilder.Append(string.Join(", ", header.Value)); } stringBuilder.AppendLine($"REQUEST: {requestString}"); Console.WriteLine(stringBuilder.ToString()); }, async response => { var responseString = response.Content == null ? null : await response.Content .ReadAsStringAsync() .ConfigureAwait(false); var stringBuilder = new StringBuilder(512); stringBuilder.AppendLine($"REQUEST HEADERS: "); foreach (var header in response.Headers) { stringBuilder.Append("\t" + header.Key + " : "); stringBuilder.Append(string.Join(", ", header.Value)); } stringBuilder.AppendLine($"RESPONSE: {responseString}"); Console.WriteLine(stringBuilder.ToString()); }) .Build(); try { var apiClient = restImple.Create <GoogleApi>(); var result = await apiClient.GetTodos(1); } catch (Exception e) { Console.WriteLine(e); throw; } }
public void Initialize() { _server = Initializer.InitializeServer(); var clientBuilder = new RestImplementationBuilder() .WithBaseUrl("http://localhost:54200/api/orders/") .WithTimeout(TimeSpan.FromSeconds(30)) .WithHttpClient(_server.CreateClient()) .Build(); _client = clientBuilder.Create <OrderClient>(); _fixture = new Fixture(); }
public async Task GetOrder_WithAuth_ShouldBeSuccess() { //Arrange var order = new Fixture() .Create <Order>(); var countInvokation = 0; var userName = "******"; var password = "******"; var returnedUserName = string.Empty; var returnedPassword = string.Empty; var restFactory = new RestImplementationBuilder() .WithBaseUrl("http://localhost:8080/") .AddBasicAuthorization(userName, password) .WithHandler(new RequestHandlerStub(req => { countInvokation++; string encodedCredentials = req.Headers.Authorization.Parameter; var decodedCredentials = Encoding.UTF8.GetString(Convert.FromBase64String(encodedCredentials)); var delimiterIndex = decodedCredentials.IndexOf(':'); returnedUserName = decodedCredentials.Substring(0, delimiterIndex); returnedPassword = decodedCredentials.Substring(delimiterIndex + 1); var responseMessage = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(JsonConvert.SerializeObject(order), Encoding.UTF8, "application/json") }; return(responseMessage); })) .Build(); var imp = restFactory.Create <ITestInterface>(); //Act var response = await imp.GetOrder(1); //Assert Assert.AreEqual(userName, returnedUserName); Assert.AreEqual(password, returnedPassword); }