# Trips Service

## Overview

This is the Trips API for the MyDriving service.

The server was generated by the [swagger-codegen](https://github.com/swagger-api/swagger-codegen) project.  
By using the [OpenAPI-Spec](https://github.com/OAI/OpenAPI-Specification) from a remote server, you can easily generate a server stub.

## Build & Test

### Get dependencies

```shell
go get
```

### Build the Application

```shell
go build
```

### Testing

#### Unit Tests

To run unit tests and get coverage report, execute:

```shell
go test -v ./tripsgo -run Unit -coverprofile=trips_coverage.out -covermode=count
```

To run unit tests and get coverage report and junit report use **gotestsum** tool, execute:

```shell
./gotestsum --format standard-verbose --junitfile unittest_results.xml -- ./tripsgo -run Unit -coverprofile=unittest_coverage.out -covermode=count
```

#### Integration Tests

- Add a file called .evn to the tripsgo folder with the following structure:

  ```shell
  SQL_SERVER="<-- your database server uri -- >"
  SQL_PASSWORD="<-- your login password -- >"
  SQL_USER="<-- your login user -- >"
  SQL_DBNAME="<-- your database name -- >"
  SQL_DRIVER="mssql"
  ```

  You shouldn't need to change the SQL_DRIVER variable.

- To run all integration tests, execute:

  ```shell
  go test -v ./tripsgo
  ```

- To run all integration tests and get junit report use **gotestsum** tool, execute:

```shell
./gotestsum --format standard-verbose --junitfile integrationtest_results.xml -- ./tripsgo
```

> **NOTE** This requires an actual database connection, so the required ENV variables need to be present.
