34 Commits

Author SHA1 Message Date
thischwa d052555ba7 Merge remote-tracking branch 'origin/develop' into develop
Build and Analyse / build-and-analyse (push) Successful in 41s
2026-06-28 19:38:24 +02:00
thischwa dfa2753619 - moved git actions to gitea actions
- removed sonarqube
- added report for junit tests
2026-06-28 19:37:50 +02:00
thischwa 0a47bb6338 remove javadoc
Build and Analyse / build-and-analyse (push) Successful in 39s
2026-06-28 19:09:53 +02:00
thischwa 25228af9f0 Generate Javadocs for BatchResponse and RecordType classes in the codes.thischwa.cf.model package.
Build and Analyse / build-and-analyse (push) Successful in 39s
2026-06-28 18:20:39 +02:00
thischwa d4fba87e13 Migrate GitHub Actions workflows and custom actions to Gitea, replacing .github directory with .gitea.
Build and Analyse / build-and-analyse (push) Successful in 43s
2026-06-28 13:09:05 +02:00
gitea-actions-bot 9919230a3b ci: update test report [skip ci] 2026-06-28 10:49:25 +00:00
thischwa ba9bc9ea93 Update publish-report action to write output to test.md instead of index.md
Build and Analyse / build-and-analyse (push) Successful in 39s
2026-06-28 12:48:34 +02:00
thischwa eea6e72145 Update changelog for version 0.5.0-SNAPSHOT: migrate to git.mein-gateway.de and replace SonarQube with custom actions
Build and Analyse / build-and-analyse (push) Successful in 40s
2026-06-27 19:39:27 +02:00
gitea-actions-bot c68b865798 ci: update test report [skip ci] 2026-06-27 17:03:10 +00:00
thischwa 41d35fe745 Add JaCoCo coverage parsing to publish-report action; enhance Markdown report with coverage details.
Build and Analyse / build-and-analyse (push) Successful in 39s
2026-06-27 19:02:19 +02:00
thischwa c2d10bb929 Clarify step names in publish-report action for improved readability.
Build and Analyse / build-and-analyse (push) Successful in 40s
2026-06-27 18:53:53 +02:00
thischwa f3e05e1bc7 Extract changelog to a dedicated changelog.md file and update references in README.md.
Build and Analyse / build-and-analyse (push) Successful in 38s
2026-06-27 18:42:12 +02:00
gitea-actions-bot 90664f4007 ci: update test report [skip ci] 2026-06-27 16:25:55 +00:00
thischwa 2c233437da Merge remote-tracking branch 'origin/develop' into develop
Build and Analyse / build-and-analyse (push) Successful in 40s
2026-06-27 18:25:14 +02:00
thischwa 84c5295345 Simplify publish-report action by removing unnecessary variable assignment in JUnit file processing. 2026-06-27 18:24:56 +02:00
thischwa 6d139329f1 reports/index.html gelöscht
Build and Analyse / build-and-analyse (push) Successful in 37s
2026-06-27 18:03:27 +02:00
gitea-actions-bot b5caee443e ci: update test report [skip ci] 2026-06-27 16:00:03 +00:00
thischwa 053979d4e1 Update publish-report to simplify inputs, improve Markdown generation, and adjust token usage for Gitea compatibility
Build and Analyse / build-and-analyse (push) Successful in 39s
2026-06-27 17:59:14 +02:00
thischwa d57da1e60f Switch publish-report action to generate Markdown test reports instead of HTML; modify report structure and formatting.
Build and Analyse / build-and-analyse (push) Failing after 38s
2026-06-27 17:51:48 +02:00
gitea-actions-bot 3613df6974 ci: update test report [skip ci] 2026-06-27 13:11:18 +00:00
thischwa 0acf0d0834 Refactor publish-report to merge JUnit files into single report for HTML generation; remove Maven cache step from setup-java-maven.
Build and Analyse / build-and-analyse (push) Successful in 46s
2026-06-27 15:10:19 +02:00
thischwa 5ed9da4036 Add HTML report generation and auto-commit to publish-report action
Build and Analyse / build-and-analyse (push) Failing after 10m8s
2026-06-27 14:58:30 +02:00
thischwa 84a37b8a8d Merge remote-tracking branch 'origin/develop' into develop
Build and Analyse / build-and-analyse (push) Successful in 10m5s
2026-06-27 14:17:13 +02:00
thischwa c292c27444 wip test report 2026-06-27 14:16:41 +02:00
thischwa 744abd47ff Remove SonarCloud integration from project and related configuration files.
Build and Analyse / build-and-analyse (push) Has been cancelled
2026-06-27 14:11:37 +02:00
thischwa 9f301337b6 Remove SonarCloud integration from project and related configuration files.
Build and Analyse / build-and-analyse (push) Successful in 10m11s
2026-06-25 19:18:21 +02:00
thischwa 0a401b164c Migrate project hosting and repository URLs from Codeberg to Gitea.
Build and Analyse / build-and-analyse (push) Failing after 11m54s
2026-06-25 18:55:00 +02:00
thischwa 7b08820d1a Simplify Maven repository setup instructions in README. 2026-04-23 12:58:36 +02:00
thischwa 83995ba5fa Update actions/cache to v5 in setup-java-maven workflow 2026-04-02 19:15:21 +02:00
thischwa d586567fd6 Merge remote-tracking branch 'origin/develop' into develop 2026-04-02 19:01:52 +02:00
thischwa 3505aee124 Update actions: bump setup-java to v5, checkout to v6, and test-reporter to v3 2026-04-02 19:01:33 +02:00
th-schwarz ee3dcda8ea .github/actions/publish-report/action.yml aktualisiert 2026-04-02 18:44:55 +02:00
thischwa c01946fc05 Update version to 0.5.0-SNAPSHOT and fix changelog entry formatting 2026-03-11 13:22:49 +01:00
thischwa 09cb00db19 [maven-release-plugin] prepare for next development iteration 2026-03-11 13:15:43 +01:00
12 changed files with 242 additions and 199 deletions
+120
View File
@@ -0,0 +1,120 @@
name: Publish JUnit Report (Short Names)
description: Normalize JUnit XML report names and publish a test report to the repo.
inputs:
token:
description: Gitea token with write access to the repository.
required: true
runs:
using: composite
steps:
- name: Normalize JUnit report names
shell: bash
run: |
mkdir -p junit-short
shopt -s globstar nullglob
for f in **/target/*-reports/TEST-*.xml; do
base="$(basename "$f")"
short="${base#TEST-}"
cp "$f" "junit-short/${short}"
done
- name: Generate Markdown Test Report
shell: bash
run: |
mkdir -p reports
python3 - <<'EOF'
import glob, xml.etree.ElementTree as ET
# --- JUnit ---
files = glob.glob("junit-short/*.xml")
total_tests = total_failures = total_errors = total_skipped = 0
test_rows = []
for f in sorted(files):
tree = ET.parse(f)
r = tree.getroot()
suites = r.findall("testsuite") if r.tag == "testsuites" else [r]
for ts in suites:
name = ts.get("name", f)
tests = int(ts.get("tests", 0))
failures = int(ts.get("failures", 0))
errors = int(ts.get("errors", 0))
skipped = int(ts.get("skipped", 0))
passed = tests - failures - errors - skipped
status = "✅" if (failures + errors) == 0 else "❌"
total_tests += tests
total_failures += failures
total_errors += errors
total_skipped += skipped
test_rows.append(f"| {status} | {name} | {tests} | {passed} | {failures + errors} | {skipped} |")
total_passed = total_tests - total_failures - total_errors - total_skipped
overall = "✅ All tests passed" if (total_failures + total_errors) == 0 else "❌ Some tests failed"
# --- JaCoCo ---
def counter(el, type_):
c = next((x for x in el.findall("counter") if x.get("type") == type_), None)
if c is None:
return 0, 0
covered = int(c.get("covered", 0))
missed = int(c.get("missed", 0))
return covered, covered + missed
cov_rows = []
jacoco_files = glob.glob("**/target/site/jacoco/jacoco.xml", recursive=True)
for jf in sorted(jacoco_files):
tree = ET.parse(jf)
root = tree.getroot()
for pkg in root.findall("package"):
name = pkg.get("name", "").replace("/", ".")
line_cov, line_total = counter(pkg, "LINE")
branch_cov, branch_total = counter(pkg, "BRANCH")
line_pct = f"{100 * line_cov / line_total:.0f}%" if line_total else "n/a"
branch_pct = f"{100 * branch_cov / branch_total:.0f}%" if branch_total else "n/a"
cov_rows.append(f"| {name} | {line_pct} ({line_cov}/{line_total}) | {branch_pct} ({branch_cov}/{branch_total}) |")
# --- Markdown zusammenbauen ---
md = (
"# Test Report\n\n"
f"**{overall}**\n\n"
"## Test Results\n\n"
"| | Tests | Passed | Failed | Skipped |\n"
"|---|---|---|---|---|\n"
f"| **Total** | {total_tests} | {total_passed} | {total_failures + total_errors} | {total_skipped} |\n\n"
"### Details\n\n"
"| Status | Suite | Tests | Passed | Failed | Skipped |\n"
"|---|---|---|---|---|---|\n"
) + "\n".join(test_rows) + "\n\n"
if cov_rows:
md += (
"## Coverage\n\n"
"| Package | Line Coverage | Branch Coverage |\n"
"|---|---|---|\n"
) + "\n".join(cov_rows) + "\n"
else:
md += "_No JaCoCo report found._\n"
with open("reports/test.md", "w") as out:
out.write(md)
print(md)
EOF
- name: Commit Test-Report to Repo
shell: bash
env:
GIT_USER: gitea-actions-bot
GIT_EMAIL: bot@mein-gateway.de
GITEA_TOKEN: ${{ inputs.token }}
run: |
git config user.name "$GIT_USER"
git config user.email "$GIT_EMAIL"
git remote set-url origin https://$GIT_USER:$GITEA_TOKEN@git.mein-gateway.de/${{ github.repository }}.git
git fetch origin
git checkout ${{ github.ref_name }}
git add reports/
git diff --cached --quiet && echo "No changes" && exit 0
git commit -m "ci: update test report [skip ci]"
git push origin ${{ github.ref_name }}
@@ -1,6 +1,6 @@
name: "Setup Maven with GitHub Packages"
description: "Sets up JDK, caches Maven dependencies, and configures GitHub Packages for Maven repositories."
description: "Sets up JDK and caches Maven dependencies."
inputs:
java-version:
@@ -15,15 +15,7 @@ runs:
using: "composite"
steps:
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: ${{ inputs.java-distribution }}
java-version: ${{ inputs.java-version }}
- name: Cache Maven Repository
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
uses: actions/setup-java@v5
+34
View File
@@ -0,0 +1,34 @@
name: Build and Analyse
on:
push:
branches:
- develop
- feature*
pull_request:
types: [ opened, synchronize, reopened ]
defaults:
run:
shell: bash
jobs:
build-and-analyse:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Setup Java and Maven
uses: ./.gitea/actions/setup-java-maven
- name: Build and test
run: mvn -B verify
- name: Publish Test Report
uses: ./.gitea/actions/publish-report
if: ${{ always() }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
-35
View File
@@ -1,35 +0,0 @@
name: Publish JUnit Report (Short Names)
description: Normalize JUnit XML report names and publish a summary-only test report.
inputs:
token:
description: GitHub token for creating the check run.
required: true
report-name:
description: Name shown for the test report.
required: false
default: Summary of JUnit Tests
runs:
using: composite
steps:
- name: Normalize JUnit report names
shell: bash
run: |
mkdir -p junit-short
shopt -s globstar nullglob
for f in **/target/*-reports/TEST-*.xml; do
base="$(basename "$f")"
short="${base#TEST-}"
short="${short%.xml}"
cp "$f" "junit-short/${short}"
done
- name: Publish Test Report
uses: dorny/test-reporter@v2
with:
token: ${{ inputs.token }}
name: ${{ inputs.report-name }}
path: "*"
reporter: java-junit
only-summary: true
working-directory: "junit-short"
-41
View File
@@ -1,41 +0,0 @@
name: Build and Analyse
on:
push:
branches:
- develop
- feature*
pull_request:
types: [ opened, synchronize, reopened ]
defaults:
run:
shell: bash
jobs:
build-and-analyse:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Setup Java and Maven
uses: ./.github/actions/setup-java-maven
- name: Build and analyze with SonarCloud
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
CF_API_TOKEN: ${{ secrets.API_TOKEN }}
run: |
echo "Running SonarCloud analysis..."
mvn -B -DtestClasspath=src/test/ verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=th-schwarz_CloudflareDNS-java
- name: Publish Test Report
uses: ./.github/actions/publish-report/
if: ${{ always() }}
with:
token: ${{ secrets.GITHUB_TOKEN }}
report-name: Summary of JUnit Tests
-15
View File
@@ -1,15 +0,0 @@
when:
- event: push
branch: develop
steps:
# - name: hello
# image: alpine
# commands:
# - echo "Hello World!"
- name: maven verify
image: maven:3-amazoncorretto-17-alpine
commands:
- mvn -B verify
+4 -62
View File
@@ -1,22 +1,12 @@
# CloudflareDNS-java
[![pipeline-badge](https://ci.codeberg.org/api/badges/16522/status.svg?events=push%2Cmanual%2Cpull_request%2Cpull_request_closed)](https://ci.codeberg.org/repos/16522)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=th-schwarz_CloudflareDNS-java&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=th-schwarz_CloudflareDNS-java)
[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=th-schwarz_CloudflareDNS-java&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=th-schwarz_CloudflareDNS-java)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=th-schwarz_CloudflareDNS-java&metric=coverage)](https://sonarcloud.io/summary/new_code?id=th-schwarz_CloudflareDNS-java)
[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=th-schwarz_CloudflareDNS-java&metric=ncloc)](https://sonarcloud.io/summary/new_code?id=th-schwarz_CloudflareDNS-java)
[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=th-schwarz_CloudflareDNS-java&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=th-schwarz_CloudflareDNS-java)
[![codeberg.png](docs/codeberg.png)](https://codeberg.org/th-schwarz/CloudflareDNS-java)
## Preface
This project provides a java client for minimalistic access to the Cloudflare API version 4, which is mainly used for
managing DNS settings such as creating, updating and deleting DNS records.
If you encounter any bugs or find missing features, feel free to report them on
the [Codeberg Issues page](https://codeberg.org/th-schwarz/CloudflareDNS-java/issues).
the [Gitea Issues page](https://git.mein-gateway.de/thischwa/CloudflareDNS-java/issues).
---
@@ -28,56 +18,11 @@ This guide comes without any warranty. Use at your own risk. The author is not r
## Get It
The project has its own maven repository. It can be added to the `pom.xml`:
```xml
<repositories>
<repository>
<id>gitea</id>
<url>https://codeberg.org/api/packages/th-schwarz/maven</url>
</repository>
</repositories>
```
The dependency is:
```xml
<dependency>
<groupId>codes.thischwa</groupId>
<artifactId>cloudflaredns</artifactId>
<version>[version]</version>
</dependency>
```
The project has its own maven repository. Follow the instructions on the latest [package](https://git.mein-gateway.de/thischwa/-/packages) to add the repository to your project.
## Changelog
- 0.4.0-SNAPSHOT:
- **Breaking Change**: renamed `client.zone().record()` to `client.zone().getRecord()`
- Code quality improvements: Increasing test coverage
- 0.3.0:
- **Breaking Change**:
- **New Fluent API**: Changed the initialization of the client(`new CfDnsClientBuilder().withApiTokenAuth("your-api-token").build()`)
- Authentication with API token.
- 0.2.0:
- **Breaking Change**: `emptyResultThrowsException` default changed from `true` to `false`. Now applies to both
single and multiple result requests. Empty results will be returned by default without throwing exceptions.
- API method names refactored for consistency: `zoneListAll``zoneList`, `zoneInfo``zoneGet`, `sldListAll`
`recordList`
- RecordEntity getter methods renamed for clarity: `getName()``getSld()`
- **New Fluent API**: Changed the initialization of the client(`new CfDnsClientBuilder().withApiTokenAuth("your-api-token").build()`) and added chainable method interface for more readable DNS operations (
`client.zone().record()...`)
- Code quality improvements: removed duplication in batch operations, improved type safety in HTTP methods,
optimized string concatenation, removed mutable setters from CfDnsClient
- Enhanced type validation in `RecordEntity.build()` with better error messages
- CfClient#recordList must return multiple RecordEntries
- add a missing source jar
- ResponseResultInfo#Errors: wrong object structure
- changing multiple records with put, post, patch and delete for dns-records
- 0.1.0:
- refactored / extended tests
- 0.1.0-beta.3:
- fixed json deserialization
- added logging of api errors
- 0.1.0-beta.1: 1st runnable version
See [changelog](changelog.md)
## Methods Overview
@@ -465,7 +410,4 @@ try {
```
---
# Summary
`CfDnsClient` offers a simple interface for managing DNS entries via Cloudflare's public API, allowing seamless CRUD operations and automation-friendly workflows.
+34
View File
@@ -0,0 +1,34 @@
# Changelog
- 0.5.0-SNAPSHOT:
- moved the project to git.mein-gateway.de
- replaced sonarqube with own actions
- 0.4.0:
- fixed some paging issues
- **Breaking Change**: renamed `client.zone().record()` to `client.zone().getRecord()`
- Code quality improvements: Increasing test coverage
- 0.3.0:
- **Breaking Change**:
- **New Fluent API**: Changed the initialization of the client(`new CfDnsClientBuilder().withApiTokenAuth("your-api-token").build()`)
- Authentication with API token.
- 0.2.0:
- **Breaking Change**: `emptyResultThrowsException` default changed from `true` to `false`. Now applies to both
single and multiple result requests. Empty results will be returned by default without throwing exceptions.
- API method names refactored for consistency: `zoneListAll``zoneList`, `zoneInfo``zoneGet`, `sldListAll`
`recordList`
- RecordEntity getter methods renamed for clarity: `getName()``getSld()`
- **New Fluent API**: Changed the initialization of the client(`new CfDnsClientBuilder().withApiTokenAuth("your-api-token").build()`) and added chainable method interface for more readable DNS operations (
`client.zone().record()...`)
- Code quality improvements: removed duplication in batch operations, improved type safety in HTTP methods,
optimized string concatenation, removed mutable setters from CfDnsClient
- Enhanced type validation in `RecordEntity.build()` with better error messages
- CfClient#recordList must return multiple RecordEntries
- add a missing source jar
- ResponseResultInfo#Errors: wrong object structure
- changing multiple records with put, post, patch and delete for dns-records
- 0.1.0:
- refactored / extended tests
- 0.1.0-beta.3:
- fixed json deserialization
- added logging of api errors
- 0.1.0-beta.1: 1st runnable version
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

-15
View File
@@ -1,15 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cloudflare DNS Client - java</title>
</head>
<body>
<h1>Cloudflare DNS Client - java</h1>
<p>A Java-based client for interacting with the Cloudflare DNS API.</p>
<p>
<a href="apidocs/index.html" target="_blank">View API Documentation</a>
</p>
</body>
</html>
+12 -21
View File
@@ -4,14 +4,14 @@
<groupId>codes.thischwa</groupId>
<artifactId>cloudflaredns</artifactId>
<version>0.4.0</version>
<version>0.5.0-SNAPSHOT</version>
<name>CloudflareDNS-java</name>
<inceptionYear>2025</inceptionYear>
<packaging>jar</packaging>
<issueManagement>
<url>https://codeberg.org/th-schwarz/CloudflareDNS-java/issues</url>
<system>Codeberg Issues</system>
<url>https://git.mein-gateway.de/thischwa/CloudflareDNS-java/issues</url>
<system>Gitea Issues</system>
</issueManagement>
<properties>
@@ -42,36 +42,27 @@
<junit5.version>5.14.2</junit5.version>
<mockito-junit5.version>5.21.0</mockito-junit5.version>
<!-- sonarqube -->
<sonar.organization>th-schwarz</sonar.organization>
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
<sonar.sourceEncoding>${file.encoding}</sonar.sourceEncoding>
<sonar.projectKey>th-schwarz_CloudflareDNS-java</sonar.projectKey>
<sonar.projectName>CloudflareDNS-java</sonar.projectName>
<sonar.branch.name>develop</sonar.branch.name>
<sonar.test.exclusions>src/test/java/**/*</sonar.test.exclusions>
<lombok-maven-plugin.version>1.18.20.0</lombok-maven-plugin.version>
</properties>
<scm>
<developerConnection>scm:git:git@codeberg.org:th-schwarz/CloudflareDNS-java.git</developerConnection>
<connection>scm:git:git@codeberg.org:th-schwarz/CloudflareDNS-java.git</connection>
<url>https://codeberg.org/th-schwarz/CloudflareDNS-java</url>
<tag>v0.4.0</tag>
<developerConnection>scm:git:https://git.mein-gateway.de/thischwa/CloudflareDNS-java.git</developerConnection>
<connection>scm:git:https://git.mein-gateway.de/thischwa/CloudflareDNS-java.git</connection>
<url>https://git.mein-gateway.de/thischwa/CloudflareDNS-java</url>
<tag>HEAD</tag>
</scm>
<distributionManagement>
<repository>
<id>codeberg-cloudflaredns</id>
<url>https://codeberg.org/api/packages/th-schwarz/maven</url>
<id>mygitea</id>
<url>https://git.mein-gateway.de/api/packages/thischwa/maven</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<snapshotRepository>
<id>codeberg-cloudflaredns</id>
<url>https://codeberg.org/api/packages/th-schwarz/maven</url>
<id>mygitea</id>
<url>https://git.mein-gateway.de/api/packages/thischwa/maven</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
@@ -115,7 +106,7 @@
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>24.0.0</version>
<version>24.0.1</version>
<scope>compile</scope>
</dependency>
+36
View File
@@ -0,0 +1,36 @@
# Test Report
**✅ All tests passed**
## Test Results
| | Tests | Passed | Failed | Skipped |
|---|---|---|---|---|
| **Total** | 90 | 90 | 0 | 0 |
### Details
| Status | Suite | Tests | Passed | Failed | Skipped |
|---|---|---|---|---|---|
| ✅ | codes.thischwa.cf.CfBasicHttpClientTest | 9 | 9 | 0 | 0 |
| ✅ | codes.thischwa.cf.CfClientPenTest | 0 | 0 | 0 | 0 |
| ✅ | codes.thischwa.cf.CfClientTest | 0 | 0 | 0 | 0 |
| ✅ | codes.thischwa.cf.CfDnsClientBuilderTest | 16 | 16 | 0 | 0 |
| ✅ | codes.thischwa.cf.CfDnsClientMockTest | 16 | 16 | 0 | 0 |
| ✅ | codes.thischwa.cf.CfRequestTest | 8 | 8 | 0 | 0 |
| ✅ | codes.thischwa.cf.ObjectMapperTest | 2 | 2 | 0 | 0 |
| ✅ | codes.thischwa.cf.ResponseValidatorTest | 8 | 8 | 0 | 0 |
| ✅ | codes.thischwa.cf.fluent.FluentApiTest | 15 | 15 | 0 | 0 |
| ✅ | codes.thischwa.cf.model.BatchEntryTest | 2 | 2 | 0 | 0 |
| ✅ | codes.thischwa.cf.model.PagingRequestTest | 4 | 4 | 0 | 0 |
| ✅ | codes.thischwa.cf.model.RecordEntityTest | 6 | 6 | 0 | 0 |
| ✅ | codes.thischwa.cf.model.RecordTypeTest | 3 | 3 | 0 | 0 |
| ✅ | codes.thischwa.cf.model.ZoneEntityTest | 1 | 1 | 0 | 0 |
## Coverage
| Package | Line Coverage | Branch Coverage |
|---|---|---|
| codes.thischwa.cf.fluent | 100% (25/25) | 100% (4/4) |
| codes.thischwa.cf.model | 100% (93/93) | 90% (9/10) |
| codes.thischwa.cf | 89% (249/279) | 71% (51/72) |