# Tests

{% hint style="info" %}
Currently **we are not targeting the 100% test coverage**, but rather want to be certain that the most common scenarios can run without any errors.
{% endhint %}

### Scenarios

These are the scenarios that are currently being tested:

* Create installation, session-server and device server
* Create a new MonetaryAccount
* Create a tab
* Update the tab
* Create attachment and avatar
* Request money from first MA to second MA
* Accept the request
* Make a transaction from first MA to second MA
* Create connect gr code
* Make a payment to another sandbox user
* Send a chat message in a recent payment
* Delete the current session
* Order a card with a second line

Besides these scenarios, some code of ApiContext, ApiClient and the JSON module are also tested.

### Installation

To run the tests, you must first generate a certificate and key. To do this run the following command, but first update "Your App Id" to a unique id.

```csharp
openssl req -x509 -newkey rsa:4096 -keyout BunqSdk.Tests/Resources/key.pem -out BunqSdk.Tests/Resources/chain.cert -days 365 -nodes -subj '/CN=Your App Id/C=NL'
openssl pkcs12 -inkey BunqSdk.Tests/Resources/key.pem -in BunqSdk.Tests/Resources/chain.cert -export -out BunqSdk.Tests/Resources/credentials.pfx -passout pass:secret 
```

### Configuration

To run the tests you must first setup the test configuration JSON. The example of a configuration file is located at [`Tests/BunqSdkCsharpTest/Resources/config.example.json`](https://github.com/bunq/sdk_csharp/blob/develop/BunqSdk.Tests/BunqSdkCsharpTest/Resources/config.example.json). In order to make use of the configuration file, please copy the example to the same directory, fill in your sandbox user data and rename the copy to `config.json`.

### Execution

To run tests via Rider, you can right click on the `BunqSdk.Tests` solution and should be able to run the tests cases form the IDE.
