public void Constructor_Works() { var baseUri = new Uri("https://www.google.ch"); const string ActualResourcePathString = "Test"; Maybe <string> resourcePath = ActualResourcePathString; const RestCallMethodType MethodType = RestCallMethodType.Get; var security = RestSecurity.CreateAnonymous(); var headers = new RestHeaders(new List <RestHeader>()); var body = Maybe.CreateSome(RestCallBody.CreateApplicationJson(new object())); var expectedFullUri = new Uri(baseUri, "/" + ActualResourcePathString); var queryParameters = new QueryParameters(new List <QueryParameter>()); ConstructorTestBuilderFactory.Constructing <RestCall>() .UsingDefaultConstructor() .WithArgumentValues(baseUri, resourcePath, MethodType, security, headers, body, queryParameters) .Maps() .ToProperty(f => f.BaseUri).WithValue(baseUri) .ToProperty(f => f.Body).WithValue(body) .ToProperty(f => f.Headers).WithValue(headers) .ToProperty(f => f.MethodType).WithValue(MethodType) .ToProperty(f => f.ResourcePath).WithValue(resourcePath) .ToProperty(f => f.Security).WithValue(security) .ToProperty(f => f.AbsoluteUri).WithValue(expectedFullUri) .BuildMaps() .Assert(); }
public void Constructor_WithQueryParameters_AddsQueryParametersToFullUri() { const string UriString = "https://www.google.ch"; var baseUri = new Uri(UriString); const RestCallMethodType MethodType = RestCallMethodType.Get; var security = RestSecurity.CreateAnonymous(); var headers = new RestHeaders(new List <RestHeader>()); var body = Maybe.CreateSome(RestCallBody.CreateApplicationJson(new object())); var queryParameterList = new List <QueryParameter> { new QueryParameter("Key1", "Value1", "Value2"), new QueryParameter("Key2", "Value3") }; const string ExpectedUriString = UriString + "?Key1=Value1&Key1=Value2&Key2=Value3"; var expectedFullUri = new Uri(ExpectedUriString); var queryParameters = new QueryParameters(queryParameterList); ConstructorTestBuilderFactory.Constructing <RestCall>() .UsingDefaultConstructor() .WithArgumentValues(baseUri, Maybe.CreateNone <string>(), MethodType, security, headers, body, queryParameters) .Maps() .ToProperty(f => f.AbsoluteUri).WithValue(expectedFullUri) .BuildMaps() .Assert(); }
public void CreatingApplicationWwwFormUrlEncoded_CreatesApplicationWwwFormUrlEncoded() { // Act var actualBody = RestCallBody.CreateApplicationWwwFormUrlEncoded(new Dictionary <string, string>()); // Assert Assert.IsInstanceOf <ApplicationWwwFormUrlEncodedBody>(actualBody); }
public void CreatingApplicationJson_CreatesApplicationJson() { // Act var actualBody = RestCallBody.CreateApplicationJson("Tra"); // Assert Assert.IsInstanceOf <ApplicationJsonBody>(actualBody); }
internal static RestCall CreatePostOneTodoRestCall(string todoJson) { return(new RestCall( new Uri("https://jsonplaceholder.typicode.com/comments"), Maybe.CreateNone <string>(), RestCallMethodType.Post, RestSecurity.CreateAnonymous(), new RestHeaders(new List <RestHeader>()), RestCallBody.CreateApplicationJson(todoJson), new QueryParameters(new List <QueryParameter>()))); }
public void CreatingHttpContent_CreatesContentTypeFromSubClass() { // Arrange var actualBody = RestCallBody.CreateApplicationJson("Tra"); // Act var actualHttpContent = actualBody.CreateHttpContent(); // Assert var actualContentType = actualHttpContent.Headers.ContentType; Assert.IsNotNull(actualContentType); Assert.IsInstanceOf <MediaTypeHeaderValue>(actualContentType); actualContentType.MediaType = ApplicationJsonBody.MediaTypeAppJson; }
public async Task CreatingHttpContent_CreatesContentValueFromSubClass() { // Arrange var dict = new Dictionary <string, string> { { "Key1", "Value1" }, { "Key2", "Value2" } }; const string ExpectedContentValue = "Key1=Value1&Key2=Value2"; var actualBody = RestCallBody.CreateApplicationWwwFormUrlEncoded(dict); // Act var actualHttpContent = actualBody.CreateHttpContent(); // Assert var actualContentValue = await actualHttpContent.ReadAsStringAsync(); Assert.IsNotNull(actualContentValue); Assert.AreEqual(ExpectedContentValue, actualContentValue); }
public IRestCallBuilder WithBody(RestCallBody body) { _body = body; return(this); }