# w-lavi/teste-automatizado architecture

> Architecture diagram of the GitHub repository w-lavi/teste-automatizado, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-09). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/w-lavi/teste-automatizado
- Repository: https://github.com/w-lavi/teste-automatizado

## Overview

This repository is a Selenium/JUnit web-automation project for BugBank. Its principal scenario creates two accounts, transfers money between them, then checks the source and destination balances in their statements. The README documents the test/task/page-object/validation layers; sampled code confirms browser setup, URL-property loading, and supporting utilities. The scenario’s individual calls are not sampled, so layer relationships below are documented at the README level rather than inferred from imports.

Main entry points: [`src/test/java/TestCases/TransferenciaEntreContasTest.java`](https://github.com/w-lavi/teste-automatizado/blob/main/src/test/java/TestCases/TransferenciaEntreContasTest.java) (Transfer test), [`src/test/java/PageObjects`](https://github.com/w-lavi/teste-automatizado/tree/main/src/test/java/PageObjects) (Page objects), [`src/test/java/Tasks/CadastroTask.java`](https://github.com/w-lavi/teste-automatizado/blob/main/src/test/java/Tasks/CadastroTask.java) (Account registration), [`src/main/java/Framework/TestBase.java`](https://github.com/w-lavi/teste-automatizado/blob/main/src/main/java/Framework/TestBase.java) (Test lifecycle)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_scenario["Test scenario"]
  node_case["Transfer test"]
  node_registration["Account registration<br/>[CadastroTask.java]"]
  node_login["Account login<br/>[LoginTask.java]"]
  node_transfer["Money transfer"]
  node_statement["Account statement<br/>[ExtratoTask.java]"]
  node_validation["Assertions"]
end

subgraph group_ui["Browser interaction"]
  node_pages["Page objects"]
  node_browser["Browser driver<br/>[DriverManager.java]"]
  node_waits["Explicit waits<br/>[Waits.java]"]
end

subgraph group_framework["Test framework"]
  node_testbase["Test lifecycle<br/>[TestBase.java]"]
  node_urlconfig["Site URL config<br/>[url.properties]"]
  node_transferconfig["Transfer settings"]
  node_account["Account data<br/>[Conta.java]"]
  node_faker["Generated data"]
  node_currency["Currency formatting<br/>[Moeda.java]"]
  node_screenshots["Report screenshots"]
  node_properties["Property reader"]
end

node_runner(("Test runner"))
node_site{{"BugBank"}}

node_runner -->|"runs"| node_case
node_case -->|"runs steps"| node_registration
node_case -->|"runs steps"| node_login
node_case -->|"runs steps"| node_transfer
node_case -->|"checks statements"| node_statement
node_case -->|"performs checks"| node_validation
node_registration -->|"uses elements"| node_pages
node_login -->|"uses elements"| node_pages
node_transfer -->|"uses elements"| node_pages
node_statement -->|"uses elements"| node_pages
node_testbase -->|"opens and closes"| node_browser
node_testbase -->|"loads URL from"| node_properties
node_properties -->|"reads"| node_urlconfig
node_testbase -->|"navigates to"| node_site
node_case -->|"uses lifecycle"| node_testbase
node_registration -->|"generates account data"| node_faker
node_registration -->|"captures account details"| node_account
node_transfer -->|"uses destination details"| node_account
node_case -->|"uses transfer settings"| node_transferconfig
node_validation -.->|"formats balance values"| node_currency
node_case -.->|"attaches screenshots"| node_screenshots
node_pages -->|"uses explicit waits"| node_waits

click node_case "https://github.com/w-lavi/teste-automatizado/blob/main/src/test/java/TestCases/TransferenciaEntreContasTest.java"
click node_registration "https://github.com/w-lavi/teste-automatizado/blob/main/src/test/java/Tasks/CadastroTask.java"
click node_login "https://github.com/w-lavi/teste-automatizado/blob/main/src/test/java/Tasks/LoginTask.java"
click node_transfer "https://github.com/w-lavi/teste-automatizado/blob/main/src/test/java/Tasks/TransferenciaTask.java"
click node_statement "https://github.com/w-lavi/teste-automatizado/blob/main/src/test/java/Tasks/ExtratoTask.java"
click node_validation "https://github.com/w-lavi/teste-automatizado/tree/main/src/test/java/Validacao"
click node_pages "https://github.com/w-lavi/teste-automatizado/tree/main/src/test/java/PageObjects"
click node_browser "https://github.com/w-lavi/teste-automatizado/blob/main/src/main/java/Framework/Browser/DriverManager.java"
click node_waits "https://github.com/w-lavi/teste-automatizado/blob/main/src/main/java/Framework/Browser/Waits.java"
click node_testbase "https://github.com/w-lavi/teste-automatizado/blob/main/src/main/java/Framework/TestBase.java"
click node_urlconfig "https://github.com/w-lavi/teste-automatizado/blob/main/src/main/resources/Properties/url.properties"
click node_transferconfig "https://github.com/w-lavi/teste-automatizado/blob/main/src/main/resources/Properties/transferencia.properties"
click node_account "https://github.com/w-lavi/teste-automatizado/blob/main/src/main/java/Framework/Dados/Conta.java"
click node_faker "https://github.com/w-lavi/teste-automatizado/blob/main/src/main/java/Framework/Utils/FakersGeneration.java"
click node_currency "https://github.com/w-lavi/teste-automatizado/blob/main/src/main/java/Framework/Utils/Moeda.java"
click node_screenshots "https://github.com/w-lavi/teste-automatizado/blob/main/src/main/java/Framework/Utils/TakeScreenshot.java"
click node_properties "https://github.com/w-lavi/teste-automatizado/blob/main/src/main/java/Framework/Utils/FileOperations.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_case,node_registration,node_login,node_transfer,node_statement,node_validation toneBlue
class node_pages,node_browser,node_waits toneAmber
class node_testbase,node_urlconfig,node_transferconfig,node_account,node_faker,node_currency,node_screenshots,node_properties toneMint
class node_runner,node_site toneIndigo
```

## Components

### Test scenario

- [Transfer test](https://github.com/w-lavi/teste-automatizado/blob/main/src/test/java/TestCases/TransferenciaEntreContasTest.java): `src/test/java/TestCases/TransferenciaEntreContasTest.java`
- [Account registration](https://github.com/w-lavi/teste-automatizado/blob/main/src/test/java/Tasks/CadastroTask.java): `src/test/java/Tasks/CadastroTask.java`
- [Account login](https://github.com/w-lavi/teste-automatizado/blob/main/src/test/java/Tasks/LoginTask.java): `src/test/java/Tasks/LoginTask.java`
- [Money transfer](https://github.com/w-lavi/teste-automatizado/blob/main/src/test/java/Tasks/TransferenciaTask.java): `src/test/java/Tasks/TransferenciaTask.java`
- [Account statement](https://github.com/w-lavi/teste-automatizado/blob/main/src/test/java/Tasks/ExtratoTask.java): `src/test/java/Tasks/ExtratoTask.java`
- [Assertions](https://github.com/w-lavi/teste-automatizado/tree/main/src/test/java/Validacao): `src/test/java/Validacao`

### Browser interaction

- [Page objects](https://github.com/w-lavi/teste-automatizado/tree/main/src/test/java/PageObjects): `src/test/java/PageObjects`
- [Browser driver](https://github.com/w-lavi/teste-automatizado/blob/main/src/main/java/Framework/Browser/DriverManager.java): `src/main/java/Framework/Browser/DriverManager.java`
- [Explicit waits](https://github.com/w-lavi/teste-automatizado/blob/main/src/main/java/Framework/Browser/Waits.java): `src/main/java/Framework/Browser/Waits.java`

### Test framework

- [Test lifecycle](https://github.com/w-lavi/teste-automatizado/blob/main/src/main/java/Framework/TestBase.java): `src/main/java/Framework/TestBase.java`
- [Site URL config](https://github.com/w-lavi/teste-automatizado/blob/main/src/main/resources/Properties/url.properties): `src/main/resources/Properties/url.properties`
- [Transfer settings](https://github.com/w-lavi/teste-automatizado/blob/main/src/main/resources/Properties/transferencia.properties): `src/main/resources/Properties/transferencia.properties`
- [Account data](https://github.com/w-lavi/teste-automatizado/blob/main/src/main/java/Framework/Dados/Conta.java): `src/main/java/Framework/Dados/Conta.java`
- [Generated data](https://github.com/w-lavi/teste-automatizado/blob/main/src/main/java/Framework/Utils/FakersGeneration.java): `src/main/java/Framework/Utils/FakersGeneration.java`
- [Currency formatting](https://github.com/w-lavi/teste-automatizado/blob/main/src/main/java/Framework/Utils/Moeda.java): `src/main/java/Framework/Utils/Moeda.java`
- [Report screenshots](https://github.com/w-lavi/teste-automatizado/blob/main/src/main/java/Framework/Utils/TakeScreenshot.java): `src/main/java/Framework/Utils/TakeScreenshot.java`
- [Property reader](https://github.com/w-lavi/teste-automatizado/blob/main/src/main/java/Framework/Utils/FileOperations.java): `src/main/java/Framework/Utils/FileOperations.java`

### Other components

- **Test runner**
- **BugBank**

## Connections

- Test runner → Transfer test: runs (evidence: `README.md`)
- Transfer test → Account registration: runs steps (evidence: `README.md`)
- Transfer test → Account login: runs steps (evidence: `README.md`)
- Transfer test → Money transfer: runs steps (evidence: `README.md`)
- Transfer test → Account statement: checks statements (evidence: `README.md`)
- Transfer test → Assertions: performs checks (evidence: `README.md`)
- Account registration → Page objects: uses elements (evidence: `README.md`)
- Account login → Page objects: uses elements (evidence: `README.md`)
- Money transfer → Page objects: uses elements (evidence: `README.md`)
- Account statement → Page objects: uses elements (evidence: `README.md`)
- Test lifecycle → Browser driver: opens and closes (evidence: `src/main/java/Framework/TestBase.java`)
- Test lifecycle → Property reader: loads URL from (evidence: `src/main/java/Framework/TestBase.java`)
- Property reader → Site URL config: reads (evidence: `src/main/java/Framework/Utils/FileOperations.java`)
- Test lifecycle → BugBank: navigates to (evidence: `src/main/java/Framework/TestBase.java`)
- Transfer test → Test lifecycle: uses lifecycle (evidence: `README.md`)
- Account registration → Generated data: generates account data (evidence: `README.md`)
- Account registration → Account data: captures account details (evidence: `README.md`)
- Money transfer → Account data: uses destination details (evidence: `README.md`)
- Transfer test → Transfer settings: uses transfer settings (evidence: `README.md`)
- Assertions → Currency formatting: formats balance values
- Transfer test → Report screenshots: attaches screenshots
- Page objects → Explicit waits: uses explicit waits (evidence: `src/main/java/Framework/Browser/Waits.java`)
