Skip to content

Commit

Permalink
readme update (#2)
Browse files Browse the repository at this point in the history
* readme update

* core library reference update

* readme
  • Loading branch information
mihaj authored Nov 22, 2020
1 parent c510102 commit 6c60a99
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 69 deletions.
74 changes: 6 additions & 68 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,72 +1,10 @@
# QAToolKit Core library
[![Build .NET Library](https://github.com/qatoolkit/qatoolkit-core-net/workflows/.NET%20Core/badge.svg?branch=main)](https://github.com/qatoolkit/qatoolkit-core-net/actions)
[![CodeQL](https://github.com/qatoolkit/qatoolkit-core-net/workflows/CodeQL%20Analyze/badge.svg)](https://github.com/qatoolkit/qatoolkit-core-net/security/code-scanning)
[![Sonarcloud Quality gate](https://github.com/qatoolkit/qatoolkit-core-net/workflows/Sonarqube%20Analyze/badge.svg)](https://sonarcloud.io/dashboard?id=qatoolkit_qatoolkit-core-net)
[![NuGet package](https://img.shields.io/nuget/v/QAToolKit.Core?label=QAToolKit.Core)](https://www.nuget.org/packages/QAToolKit.Core/)
# QAToolKit Engine Database library
[![Build .NET Library](https://github.com/qatoolkit/qatoolkit-engine-database-net/workflows/.NET%20Core/badge.svg?branch=main)](https://github.com/qatoolkit/qatoolkit-engine-database-net/actions)
[![CodeQL](https://github.com/qatoolkit/qatoolkit-engine-database-net/workflows/CodeQL%20Analyze/badge.svg)](https://github.com/qatoolkit/qatoolkit-engine-database-net/security/code-scanning)
[![Sonarcloud Quality gate](https://github.com/qatoolkit/qatoolkit-engine-database-net/workflows/Sonarqube%20Analyze/badge.svg)](https://sonarcloud.io/dashboard?id=qatoolkit_qatoolkit-engine-database-net)
[![NuGet package](https://img.shields.io/nuget/v/QAToolKit.Engine.DataBase?label=QAToolKit.Engine.Database)](https://www.nuget.org/packages/QAToolKit.Engine.Database/)

## Description
`QAToolKit.Core` is a .NET Standard 2.1 library, that contains core objects and functions of the toolkit. It's normally not used as a standalone library but is a dependency for other QAToolKit libraries.

Supported .NET frameworks and standards: `netstandard2.0`, `netstandard2.1`, `netcoreapp3.1`, `net5.0`

## 1. HttpRequest functions
HttpRequest object is one of the main objects that is shared among the QA Toolkit libraries. `QAToolKit.Core` library contains `HttpRequestTools` which can manipulate the HttpRequest object.

For example URL, header and Body generators: `HttpRequestUrlGenerator`, `HttpRequestBodyGenerator` and `HttpRequestHeaderGenerator`.

### 1.1. HttpRequestUrlGenerator
This is a method that will accept key/value pairs for replacement of placeholders in the `HttpRequest` object. Replacement object are stored in a dictionary, which `prevents mistakes with duplicated keys`.
Also dictionary keys are case insensitive when looking for values to replace.

```csharp
options.AddReplacementValues(new Dictionary<string, object> {
{
"version",
"1"
},
{
"parentId",
"4"
}
});
```

In the example above we say: "Replace `{version}` and {parentId} placeholders in Path and URL parameters and JSON body models."

In other words, if you have a test API endpoint like this: https://api.demo.com/v{version}/categories?parent={parentId} that will be set to https://api.demo.com/v1/categories?parent=4.

That, does not stop there, you can also populate JSON request bodies.

### 1.2. HttpRequestBodyGenerator

For example if you set the replacement value to stringified json:

```csharp
options.AddReplacementValues(new Dictionary<string, object> {
{
"id",
"100"
},
{
"category",
"{\"id\":1,\"name\":\"dog\"}"
}
});
```
than the parent model object will be replaced with the stringified json above.

What happend behind the curtains, the model proxy class is generated, which is then used to Deserialized the JSON into the object.
`HttpRequest` list is then scanned and values are properly replaced.

### 1.3. HttpRequestHeaderGenerator

To-do

## To-do

- **This library is an early alpha version**
- `HttpRequestHeaderGenerator` is missing implementation.
- `HttpRequestBodyGenerator` need to cover the whole spectrum of object tipes. Currently it's missing arrays, and nested objects. It's on the priority list.
**Not ready for release.**

## License

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
<PackageReference Include="MySql.Data" Version="8.0.22" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="Npgsql" Version="5.0.0" />
<PackageReference Include="QAToolKit.Core" Version="0.3.2" />
<PackageReference Include="QAToolKit.Core" Version="0.3.0" />
<PackageReference Include="System.Data.SqlClient" Version="4.8.2" />
</ItemGroup>
</Project>

0 comments on commit 6c60a99

Please sign in to comment.