All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Nothing yet.
- Added ability to strip charset from
Content-Type
header when automatically added by .NET (#132 by @karboncopy)
- Version bumps for NJsonSchema (main project), Microsoft.NET.Test.Sdk, WireMock.Net (test project)
- Fixed issue where sensitive request headers and cookies specified in a
RequestSpecification
weren't properly masked (#131)
- Added support for .NET 9 (#124)
- Fixed issue where
ResponseLogLevel
defined in static config could not be overwritten at individual test level (#128 by @sqh-jack-starkey)
- Deprecated
Log(RequestLogLevel requestLogLevel)
andLog(ResponseLogLevel responseLogLevel)
in favour ofLog(LogConfiguration logConfiguration)
- Version bumps for HtmlAgilityPack (main project)
- Version bumps for HtmlAgilityPack (main project), Microsoft.NET.Test.Sdk, Microsoft.AspNetCore.Mvc.Testing, NUnit, WireMock.Net (test project)
- Fixed an issue where trying to verify an element to be an empty array threw an exception (#122)
- Added support for specifying the
HttpCompletionOption
to use when waiting for the response (#126 by @RothAndrew)
- Version bumps for HtmlAgilityPack, NJsonSchema (main project), Microsoft.NET.Test.Sdk, Microsoft.AspNetCore.Mvc.Testing, NUnit3TestAdapter, WireMock.Net (test project)
- Fixed an issue where trying to verify or extract elements from a JSON array response threw an exception (#119 by @eliasespinosa)
- Version bumps for HtmlAgilityPack, NJsonSchema (main project), Microsoft.NET.Test.Sdk, Microsoft.AspNetCore.Mvc.Testing, NUnit, Faker.NET and WireMock.NET (test project)
- Removed references to deprecated libraries by replacing them with reference to ASP.NET Core framework (#72)
- Added support for .NET 8 (#71)
- Added support for specifying the base URI in a
RequestSpecification
(#113) - Added support for specifying query parameters in a
RequestSpecification
(#112) - Added support for returning extracted values as a list, even if there's only a single extraction result (#109)
- Added more flexible ways to upload multipart content in a request (#110 by @RipaBogdan)
- Throw
ExtractionException
instead ofResponseVerificationException
when supplied JsonPath does not yield results (#111)
- Deprecated
WithHostName()
andWithScheme()
inRequestSpecBuilder
in favour ofWithBaseUri()
- Version bumps for HtmlAgilityPack, NHamcrest (main project), Microsoft.NET.Test.Sdk, NUnit and WireMock.NET (test project)
- Added support for supplying custom
System.Net.Http.HttpClient
to be used instead of the one created by RestAssured .Net (#103 by @JoeBatt1989) - Added support for supplying multiple query parameter values (#105 by @lorszi456)
- Improved logging of empty request and response bodies (#104)
- Version bumps for HtmlAgilityPack, NHamcrest (main project), Microsoft.NET.Test.Sdk, NUnit3TestAdapter and WireMock.NET (test project)
- Added ability to mask sensitive values for request and response headers and cookies in logging (#93)
- Fixed issue with request cookies not being logged (#98)
- (BREAKING CHANGE) Replaced
Newtonsoft.Json.Schema
withNJsonSchema
due to restrictive licensing of the former (#96 by @aaschmid)
- Added ability to verify response cookie values (#90 by @workmichsem)
- Added ability to extract response cookie values as a string (#90 by @workmichsem)
- Added logging of response cookie details when using
ResponseLogLevel.All
orResponseLogLevel.Headers
(#90 by @workmichsem) - Added
Invoke()
method allowing you to easily make the same call with different HTTP methods (#82) - Added ability to specify custom settings for deserializing request payloads from JSON in individual tests (#84)
- Added ability to specify custom settings for serializing request payloads to JSON in individual tests and through a RequestSpecification (#84)
- Added ability to verify the response time using an NHamcrest matcher (#91 by @christiaanwvermaak)
- Added ability to extract the response time into a
TimeSpan
(#91 by @christiaanwvermaak) - Added ability to verify the response body length using an NHamcrest matcher (#92 by @christiaanwvermaak)
- Added ability to extract the entire response body as a string (#92 by @christiaanwvermaak)
- (BREAKING CHANGE) Changed delimiters for path parameter placeholders from
{{
and}}
to[
and]
, respectively, to enable path parameter usage in combination with C# string interpolation (#89)
- (BREAKING CHANGE) Removed support for .NET Core 3.1
- Removed
As()
for deserializing response payloads in favour ofDeserializeTo()
- Removed
As()
andDeserializeTo()
methods inExtractableResponse
in favour of deserializing response inVerifiableResponse
to clean up the library API - Removed
UseRelaxedHttpsValidation()
and other methods and properties for disabling SSL certificate checks in favour ofDisableSslCertificateValidation()
(#79) - Removed
Log().All()
and other methods for request logging in favour ofLog(RequestLogLevel requestLogLevel)
. - Removed
Log().All()
and other methods for response logging in favour ofLog(ResponseLogLevel responseLogLevel)
.
- Fixed an issue with server-side certificates not being properly validated (#77 by @roydekleijn)
- Deprecated
UseRelaxedHttpsValidation()
and other methods and properties for disabling SSL certificate checks in favour ofDisableSslCertificateValidation()
(#79)
- Version bump for Microsoft.NET.Test.Sdk (test project)
- Added ability to override automatically determined evaluator (based on response Content-Type header) when verifying response body elements (#75)
- Added ability to override automatically determined evaluator (based on response Content-Type header) when extracting response body elements (#76)
- Version bump for WireMock.Net (test project)
- Added ability to override automatically determined deserializer (#73)
- Added support for verifying HTML response body elements (#70 by @workmichsem)
- Added support for extracting HTML response body elements (#70 by @workmichsem)
- Added the ability to validate XML response payloads against an XML schema (#65)
- Added the ability to validate XML response payloads against an inline DTD (#65)
- Added the ability to log response details only when the response status code indicates an error (i.e., 4xx or 5xx) (#64)
- Added the ability to log response details only when a response verification fails (#63)
- Added the
DeserializeTo()
method alias for response body deserialization
- Removed the
SkipNet7
environment parameter used to skip running tests on .NET 7 (#69)
- Version bumps for Newtonsoft.Json (main project) and WireMock.Net (test project)
- Added improved multipart file upload, including the ability to overwrite the automatically determined MIME type and uploading multiple files in a single HTTP call (#58 by @MuresanCristianRichard)
- Fixed issue with Content-Length and other content headers not being included when logging requests and responses (#59 by @workmichsem)
- Version bump for WireMock.Net (test project)
- Added support for HEAD and OPTIONS HTTP verbs (#55)
- Added the ability to deserialize the response body after initial verifications in the
Then()
section of a test (#54)
- Version bumps for Newtonsoft.Json (main project) and WireMock.Net and NUnit3TestAdapter (test project)
- Added support for uploading multipart files (#53 by @RipaBogdan)
- Version bumps for WireMock.Net and Microsoft.NET.Test.Sdk (test project)
- Migrated CI from CircleCI to GitHub Actions (#48 by @drakulavich)
- Improved code documentation, code styling and variable names (all reported by @dev-experience)
- Fixed a vulnerability issue in System.Text.Encodings.Web (transitive dependency from Microsoft.AspNetCore.WebUtilities) by explicitly adding a safe version as a dependency (reported by @dev-experience)
- Fixed lots of nullability warnings and (all reported by @dev-experience)
- Fixed an issue with incorrect URL encoding when adding query parameters to a relative URL (#47 by @MuresanCristianRichard)
- Added support for specifying request and response log level through static RestAssured configuration (#43 by @Ukrainis)
- Added support for specifying request log level through the RequestSpecification (#44)
- Added
Log(RequestLogLevel requestLogLevel)
method for request logging (#46) - Added
Log(ResponseLogLevel responseLogLevel)
method for response logging (#46)
- Version bumps for Newtonsoft.Json (main project) and WireMock.Net and Microsoft.NET.Test.Sdk (test project)
- Deprecated
Log().All()
and other methods for request logging in favour ofLog(RequestLogLevel requestLogLevel)
. - Deprecated
Log().All()
and other methods for response logging in favour ofLog(ResponseLogLevel responseLogLevel)
.
- Added support for sending simple and parameterized GraphQL queries using a GraphQLRequest object and builder (#38)
- Added support for global configuration of SSL check disabling using RestAssuredConfig (#40 by @mennopot)
- Fixed missing documentation for query and path parameters in Usage Guide (#42)
- Version bumps for NHamcrest (main project) and NUnit3TestAdapter (test project)
- (BREAKING CHANGE) To allow for easier understanding and extending of the code, the class and namespace structure has changed to follow a 'folder-by-feature' structure. Please use
using static RestAssured.Dsl;
to start writing tests with RestAssured.Net from this release onwards.
Thanks to @appie2go for PRs #34 and #37, which contain quite a few improvements to the code, as well as for your other suggestions on improving the code structure.
- Added support for configuring the ignoring of SSL errors in a RequestSpecification (#31)
- Added the option to log the response time to the console (#32 by @bheemreddy181)
- Added the option to log request details to the console (#33 by @bheemreddy181)
- Fixed an issue with relative paths being incorrectly converted to file paths on Unix and MacOS (#22 by @bheemreddy181)
- Added support for ignoring SSL errors (#13 by @bheemreddy181)
- Added support for specifying Content-Type and content encoding in a RequestSpecification (#24)
- Added support for specifying headers (including Basic and OAuth2 authorization) in a RequestSpecification (#11 by @bheemreddy181)
- Added .NET 7 to the list of target frameworks (#21)
- Added support for specifying a user agent for individual requests as well as in a RequestSpecification (#16 by @bheemreddy181)
- Added support for specifying custom timeouts for individual requests as well as in a RequestSpecification (#15 by @bheemreddy181)
- Added support for sending x-www-form-urlencoded data in requests (#6 by @bheemreddy181)
- Added support for validating JSON response payloads against a JSON schema (#8)
- Fixed an issue with port numbers defaulting to 80 even when scheme was set to HTTPS (#25)
- Fixed an issue where trying to log a response with an empty response body would throw a NullReferenceException (#26)
- First public, non-alpha/-beta version of RestAssured.Net