# githubmaster07/unified-java-test-automation architecture

> Architecture diagram of the GitHub repository githubmaster07/unified-java-test-automation, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/githubmaster07/unified-java-test-automation
- Repository: https://github.com/githubmaster07/unified-java-test-automation

## Overview

This repository is a Java test-automation framework for coordinating BDD scenarios across REST API, Selenium UI, and database validation. The main workflow starts with a Cucumber scenario, whose step definitions orchestrate booking setup through the API, UI interaction, and persistence checks. The README documents these capabilities; sampled sources confirm the database manager and shared configuration, but the API, UI, runner, and step-definition implementations were not provided, so their internal wiring is shown only where documented. The graph omits CI, build, and test-infrastructure details.

Main entry points: [`src/test/java/stepdefs`](https://github.com/githubmaster07/unified-java-test-automation/tree/main/src/test/java/stepdefs) (Step definitions), [`src/test/java/runners`](https://github.com/githubmaster07/unified-java-test-automation/tree/main/src/test/java/runners) (Cucumber runner), [`src/test/java/api/BookingApiTests.java`](https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/test/java/api/BookingApiTests.java) (Booking API tests), [`src/test/java/ui/LoginUiTests.java`](https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/test/java/ui/LoginUiTests.java) (Login UI tests)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_bdd["BDD orchestration"]
  node_runner["Cucumber runner"]
  node_features["BDD scenarios"]
  node_steps["Step definitions"]
end

subgraph group_api["API testing"]
  node_booking_api_tests["Booking API tests"]
  node_booking_builder["Booking data builder"]
end

subgraph group_ui["UI testing"]
  node_login_ui_tests["Login UI tests<br/>[LoginUiTests.java]"]
  node_login_page["Login page object<br/>[LoginPage.java]"]
end

subgraph group_data["Data integrity"]
  node_db_tests["Booking DB tests"]
  node_db_manager["DB manager<br/>[DBManager.java]"]
end

subgraph group_core["Framework core"]
  node_driver_factory["Driver factory<br/>[DriverFactory.java]"]
  node_config_manager["Config manager<br/>[ConfigManager.java]"]
  node_config_reader["Environment config reader<br/>[ConfigReader.java]"]
  node_environment_config["Environment properties"]
end

node_qa(("Test author"))
node_booking_service["Booking system"]
node_browser(("Browser"))
node_h2[("H2 database")]

node_qa -->|"starts tests"| node_runner
node_runner -->|"loads scenarios"| node_features
node_runner -->|"binds steps"| node_steps
node_steps -->|"orchestrates API"| node_booking_api_tests
node_steps -->|"orchestrates UI"| node_login_ui_tests
node_steps -->|"orchestrates checks"| node_db_tests
node_booking_api_tests -->|"builds payload"| node_booking_builder
node_booking_api_tests -->|"creates booking"| node_booking_service
node_login_ui_tests -->|"uses page"| node_login_page
node_login_ui_tests -->|"sets up browser"| node_driver_factory
node_login_page -->|"interacts with"| node_browser
node_booking_service -->|"persists booking"| node_h2
node_db_tests -->|"queries records"| node_db_manager
node_db_manager -->|"reads and writes"| node_h2
node_driver_factory -->|"reads settings"| node_config_manager
node_config_manager -.->|"loads properties"| node_environment_config
node_config_reader -->|"loads properties"| node_environment_config

click node_runner "https://github.com/githubmaster07/unified-java-test-automation/tree/main/src/test/java/runners"
click node_features "https://github.com/githubmaster07/unified-java-test-automation/tree/main/src/test/resources/features"
click node_steps "https://github.com/githubmaster07/unified-java-test-automation/tree/main/src/test/java/stepdefs"
click node_booking_api_tests "https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/test/java/api/BookingApiTests.java"
click node_booking_builder "https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/main/java/builders/BookingDataBuilder.java"
click node_login_ui_tests "https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/test/java/ui/LoginUiTests.java"
click node_login_page "https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/test/java/pages/LoginPage.java"
click node_db_tests "https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/test/java/db/BookingDBTests.java"
click node_db_manager "https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/main/java/core/DBManager.java"
click node_driver_factory "https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/main/java/core/DriverFactory.java"
click node_config_manager "https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/main/java/core/ConfigManager.java"
click node_config_reader "https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/main/java/core/ConfigReader.java"
click node_environment_config "https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/test/resources/config/environment.properties"

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_runner,node_features,node_steps,node_browser toneBlue
class node_booking_api_tests,node_booking_builder,node_h2 toneAmber
class node_login_ui_tests,node_login_page toneMint
class node_db_tests,node_db_manager toneRose
class node_driver_factory,node_config_manager,node_config_reader,node_environment_config,node_qa,node_booking_service toneIndigo
```

## Components

### BDD orchestration

- [Cucumber runner](https://github.com/githubmaster07/unified-java-test-automation/tree/main/src/test/java/runners): `src/test/java/runners`
- [BDD scenarios](https://github.com/githubmaster07/unified-java-test-automation/tree/main/src/test/resources/features): `src/test/resources/features`
- [Step definitions](https://github.com/githubmaster07/unified-java-test-automation/tree/main/src/test/java/stepdefs): `src/test/java/stepdefs`

### API testing

- [Booking API tests](https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/test/java/api/BookingApiTests.java): `src/test/java/api/BookingApiTests.java`
- [Booking data builder](https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/main/java/builders/BookingDataBuilder.java): `src/main/java/builders/BookingDataBuilder.java`

### UI testing

- [Login UI tests](https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/test/java/ui/LoginUiTests.java): `src/test/java/ui/LoginUiTests.java`
- [Login page object](https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/test/java/pages/LoginPage.java): `src/test/java/pages/LoginPage.java`

### Data integrity

- [Booking DB tests](https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/test/java/db/BookingDBTests.java): `src/test/java/db/BookingDBTests.java`
- [DB manager](https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/main/java/core/DBManager.java): `src/main/java/core/DBManager.java`

### Framework core

- [Driver factory](https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/main/java/core/DriverFactory.java): `src/main/java/core/DriverFactory.java`
- [Config manager](https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/main/java/core/ConfigManager.java): `src/main/java/core/ConfigManager.java`
- [Environment config reader](https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/main/java/core/ConfigReader.java): `src/main/java/core/ConfigReader.java`
- [Environment properties](https://github.com/githubmaster07/unified-java-test-automation/blob/main/src/test/resources/config/environment.properties): `src/test/resources/config/environment.properties`

### Other components

- **Test author**
- **Booking system**
- **Browser**
- **H2 database**

## Connections

- Test author → Cucumber runner: starts tests
- Cucumber runner → BDD scenarios: loads scenarios
- Cucumber runner → Step definitions: binds steps
- Step definitions → Booking API tests: orchestrates API
- Step definitions → Login UI tests: orchestrates UI
- Step definitions → Booking DB tests: orchestrates checks
- Booking API tests → Booking data builder: builds payload
- Booking API tests → Booking system: creates booking
- Login UI tests → Login page object: uses page
- Login UI tests → Driver factory: sets up browser
- Login page object → Browser: interacts with
- Booking system → H2 database: persists booking
- Booking DB tests → DB manager: queries records
- DB manager → H2 database: reads and writes
- Driver factory → Config manager: reads settings
- Config manager → Environment properties: loads properties
- Environment config reader → Environment properties: loads properties
