# [USS Qualifier] Teste automatizado de Provedor

US: [https://pista.decea.mil.br/project/br-utm-tecnologia/us/41?milestone=309](https://pista.decea.mil.br/project/br-utm-tecnologia/us/41?milestone=309)

#### Introdução

A [InterUSS](https://interussplatform.org/) disponibiliza um conjunto de testes suites automatizados ([USS QUALIFIER](https://github.com/interuss/monitoring)) para validar os conformidade na implementação de UAS Service Suppliers (USS).

Validação dos seguintes critérios de conforme:  
\- [Remote ID ](https://www.astm.org/f3411-22a.html)(ASTM F3411-19/22);  
-[ Strategic Conflict Detection ](https://www.astm.org/f3548-21.html)(ASTM F3548-21);  
\- UAS Traffic Management (UTM) UAS Service Supplier (USS) Interoperability Specification.

Como a implementação do DSS feita pelo time de pesquisa do ICEA foi feita a partir da solução da InterUSS, para um provedor se integrar ao nosso ecossistema, sua implementação deve estar em concordância com as normas utilizadas em sua implementação.

O objetivo dessa US é implementar a configuração de um ambiente de testes automatizada a partir de um arquivo .env

#### Solução

Para utilizar USS locais em seus testes, deve-se subir um container contendo a aplicação e sua configuração de ambiente, a qual deve conter as seguintes variáveis:

```yaml
 environment:
      - MOCK_USS_AUTH_SPEC=DummyOAuth(http://oauth.authority.localutm:8085/token,uss1)
      - MOCK_USS_DSS_URL=http://dss.uss1.localutm
      - MOCK_USS_PUBLIC_KEY=/var/test-certs/auth2.pem
      - MOCK_USS_TOKEN_AUDIENCE=scdsc.uss1.localutm,localhost,host.docker.internal
      - MOCK_USS_BASE_URL=http://scdsc.uss1.localutm
      - MOCK_USS_SERVICES=scdsc,versioning,interaction_logging,flight_planning
      - MOCK_USS_INTERACTIONS_LOG_DIR=output/scdsc_a_interaction_logs
      - MOCK_USS_PORT=80
      - MOCK_USS_PROXY_VALUES=x_for=1,x_proto=1,x_host=1,x_prefix=1,x_port=1
```

Após configurar e implantar o USS, pode-se configurar o test suite que deseja executar. Como existem perfis diferentes de USS, foram disponibilizados arquivos de configuração visando validar conformes mais específicos dos seus respectivos tipos, estes podem ser encontrados no diretório `monitoring/monitoring/uss_qualifier/configurations/dev/`

[![image.png](https://servicos2.decea.mil.br/br-utm/wiki/uploads/images/gallery/2024-05/scaled-1680-/Efcimage.png)](https://servicos2.decea.mil.br/br-utm/wiki/uploads/images/gallery/2024-05/Efcimage.png)

Caso seja necessário criar um novo arquivo de teste, é necessário implementá-lo através de um arquivo .yaml ou JSON seguindo as guidelines definidas nesse [README](https://github.com/interuss/monitoring/tree/03a462d7a209528b885ffa9651d936e8b4df8f18/monitoring/uss_qualifier/configurations)

#### How to

[Quick start guide](https://github.com/interuss/monitoring/tree/main/monitoring/uss_qualifier)

```bash

git clone https://github.com/interuss/monitoring.git

cd monitoring

#deploys local infrastructure containing DSS, database and Auth Server 
make start-locally

COMPOSE_PROFILES='' make start-uss-mocks

cd /monitoring/uss_qualifier

./run_locally.sh

```