Loading pom.xml +17 −1 Changes for pom.xml: 17 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -36,7 +36,11 @@ <artifactId>commons-lang3</artifactId> <!-- <version>3.14.0</version> <!– use the latest stable –>--> </dependency> <!-- Quarkus Flyway Extension --> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-flyway</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-hibernate-orm</artifactId> Loading Loading @@ -187,6 +191,18 @@ <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <!-- 1. Ensure test failures strictly fail the build --> <testFailureIgnore>false</testFailureIgnore> <!-- 2. Stop the entire test execution immediately on the 1st failure --> <skipAfterFailureCount>1</skipAfterFailureCount> <systemPropertyVariables> <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> <maven.home>${maven.home}</maven.home> </systemPropertyVariables> </configuration> </plugin> <plugin> Loading src/main/java/org/etsi/osl/hypo/api/fabric/repository/DomainIdentityRepository.java +5 −6 Changes for src/main/java/org/etsi/osl/hypo/api/fabric/repository/DomainIdentityRepository.java: 5 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -2,10 +2,10 @@ package org.etsi.osl.hypo.api.fabric.repository; import io.quarkus.hibernate.orm.panache.PanacheRepository; import io.quarkus.panache.common.Page; import io.quarkus.panache.common.Parameters; import io.quarkus.panache.common.Sort; import jakarta.enterprise.context.ApplicationScoped; import java.util.List; import java.util.Map; import java.util.Optional; import org.etsi.osl.hypo.api.fabric.entity.DomainIdentityData; Loading @@ -27,16 +27,15 @@ public class DomainIdentityRepository implements PanacheRepository<DomainIdentit public List<DomainIdentityData> getDomainIdentityDataPageByNetworkControllerId( String networkControllerId, int pageIndex, int pageSize) { return find( "networkController.networkControllerId = :ncId", Sort.descending("id"), Parameters.with("ncId", networkControllerId)) Map<String, Object> parameters = Map.of("ncId", networkControllerId); Sort descending = Sort.descending("id"); return find("networkController.networkControllerId = :ncId", descending, parameters) .page(Page.of(pageIndex, pageSize)) .list(); } public List<DomainIdentityData> getAllDomainIdentityListByIds(List<String> ids) { Parameters queryParameters = Parameters.with("idsList", ids); Map<String, Object> queryParameters = Map.of("idsList", ids); return find("where domainIdentityId in :idsList", queryParameters).list(); } } src/main/resources/application.properties +5 −4 Changes for src/main/resources/application.properties: 5 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -113,11 +113,12 @@ quarkus.datasource.db-kind=postgresql %prod.quarkus.datasource.username=${_PROD_QUARKUS_DATASOURCE_USERNAME:username} %prod.quarkus.datasource.password=${_PROD_QUARKUS_DATASOURCE_PASSWORD:password} %prod.quarkus.hibernate-orm.database.generation=update quarkus.flyway.migrate-at-start=true quarkus.hibernate-orm.database.generation=none %dev.quarkus.hibernate-orm.database.generation=drop-and-create %test.quarkus.hibernate-orm.database.generation=drop-and-create %unittest.quarkus.hibernate-orm.database.generation=drop-and-create # Force Flyway to execute both main schema AND test mock data %test.quarkus.flyway.locations=db/migration,db/migration-test %unittest.quarkus.flyway.locations=db/migration,db/migration-test #Open Telemetry for Tracing %prod.quarkus.otel.enabled=true Loading src/main/resources/db/migration/V1.0.0__initialize_database.sql 0 → 100644 +60 −0 Changes for src/main/resources/db/migration/V1.0.0__initialize_database.sql: 60 added lines, 0 removed lines. Original line number Diff line number Diff line CREATE SEQUENCE DomainConnectionData_SEQ START WITH 1 INCREMENT BY 50; CREATE SEQUENCE DomainIdentity_SEQ START WITH 1 INCREMENT BY 50; CREATE SEQUENCE NetworkController_SEQ START WITH 1 INCREMENT BY 50; CREATE TABLE DomainConnectionData ( id BIGINT NOT NULL, domainConnectionDataId VARCHAR(255) NOT NULL UNIQUE, networkControllerId BIGINT NOT NULL, address VARCHAR(40) NOT NULL, port INTEGER NOT NULL CHECK (port >= 1 AND port <= 65535), protocol VARCHAR(40) NOT NULL, domainIdentityId VARCHAR(40) NOT NULL, domainServiceId VARCHAR(40) NOT NULL UNIQUE, serviceId VARCHAR(40) NOT NULL, hostConfigId VARCHAR(40) NOT NULL UNIQUE, interceptConfigId VARCHAR(40) NOT NULL UNIQUE, policyBindId VARCHAR(40) NOT NULL UNIQUE, policyDialId VARCHAR(40) NOT NULL UNIQUE, PRIMARY KEY (id) ); CREATE TABLE DomainIdentity ( id BIGINT NOT NULL, network_controller_id BIGINT NOT NULL, domainIdentityId VARCHAR(100) NOT NULL UNIQUE, organizationId VARCHAR(100), organizationName VARCHAR(100), status VARCHAR(255) CHECK (status IN ('ONLINE', 'OFFLINE')), PRIMARY KEY (id) ); CREATE TABLE NetworkController ( id BIGINT NOT NULL, networkControllerId VARCHAR(255) NOT NULL UNIQUE, networkName VARCHAR(100) NOT NULL UNIQUE, networkOwner VARCHAR(50) NOT NULL, username VARCHAR(50) NOT NULL, hostConfigTypeId VARCHAR(255) NOT NULL, interceptConfigTypeId VARCHAR(255) NOT NULL, networkEndpoint VARCHAR(255) NOT NULL, networkLocation VARCHAR(255) NOT NULL, status VARCHAR(255) CHECK (status IN ('ONLINE', 'OFFLINE')), PRIMARY KEY (id) ); CREATE INDEX idx_domain_identity_data_domain_identity_id ON DomainIdentity (domainIdentityId); CREATE INDEX idx_domain_identity_data_organization_id ON DomainIdentity (organizationId); ALTER TABLE IF EXISTS DomainConnectionData ADD CONSTRAINT FK4ybq6pnv6a7w4utm7vykpy9e3 FOREIGN KEY (networkControllerId) REFERENCES NetworkController; ALTER TABLE IF EXISTS DomainIdentity ADD CONSTRAINT fk_domain_identity_network_controller FOREIGN KEY (network_controller_id) REFERENCES NetworkController; No newline at end of file src/test/java/org/etsi/osl/hypo/api/fabric/database/DatabaseIntegrityTest.java 0 → 100644 +117 −0 Changes for src/test/java/org/etsi/osl/hypo/api/fabric/database/DatabaseIntegrityTest.java: 117 added lines, 0 removed lines. Original line number Diff line number Diff line package org.etsi.osl.hypo.api.fabric.database; import static org.assertj.core.api.Assertions.assertThat; import io.quarkus.test.junit.QuarkusTest; import jakarta.inject.Inject; import jakarta.transaction.Transactional; import java.util.Optional; import org.etsi.osl.hypo.api.fabric.entity.DomainConnectionData; import org.etsi.osl.hypo.api.fabric.entity.DomainIdentityData; import org.etsi.osl.hypo.api.fabric.entity.NetworkController; import org.etsi.osl.hypo.api.fabric.entity.Status; import org.etsi.osl.hypo.api.fabric.repository.DomainConnectionDataRepository; import org.etsi.osl.hypo.api.fabric.repository.DomainIdentityRepository; import org.etsi.osl.hypo.api.fabric.repository.NetworkControllerRepository; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; @QuarkusTest @Order(1) class DatabaseIntegrityTest { @Inject DomainConnectionDataRepository domainConnectionDataRepository; @Inject NetworkControllerRepository networkControllerRepository; @Inject DomainIdentityRepository domainIdentityRepository; @Test @DisplayName("Verify Domain Connection Data operations") @Transactional void verifyDomainConnectionData() { // 1. Verify DomainConnectionData was seeded Optional<DomainConnectionData> domainConnectionDataOptional = domainConnectionDataRepository.findById("dcd-test-uuid-001"); assertThat(domainConnectionDataOptional).isPresent(); DomainConnectionData domainConnectionData = domainConnectionDataOptional.get(); // 2. Fetch entity and test JPA Mapping & FK relationship to NetworkController assertThat(domainConnectionData).describedAs("Record with ID 1 should exist").isNotNull(); assertThat(domainConnectionData.getDomainConnectionDataId()).isEqualTo("dcd-test-uuid-001"); // Verify all DomainConnectionData fields against SQL seed assertThat(domainConnectionData.getDomainConnectionDataId()).isEqualTo("dcd-test-uuid-001"); assertThat(domainConnectionData.getAddress()).isEqualTo("192.168.1.100"); assertThat(domainConnectionData.getPort()).isEqualTo(8080); assertThat(domainConnectionData.getProtocol()).isEqualTo("HTTPS"); assertThat(domainConnectionData.getDomainIdentityId()).isEqualTo("identity-test-01"); assertThat(domainConnectionData.getDomainServiceId()).isEqualTo("service-test-01"); assertThat(domainConnectionData.getServiceId()).isEqualTo("srv-test-01"); assertThat(domainConnectionData.getHostConfigId()).isEqualTo("host-cfg-test-01"); assertThat(domainConnectionData.getInterceptConfigId()).isEqualTo("intercept-cfg-test-01"); assertThat(domainConnectionData.getPolicyBindId()).isEqualTo("bind-test-01"); assertThat(domainConnectionData.getPolicyDialId()).isEqualTo("dial-test-01"); // 3. Verify Foreign Key relationship mapping assertThat(domainConnectionData.getNetworkController()) .describedAs("Parent NetworkController FK relationship must resolve") .isNotNull(); assertThat(domainConnectionData.getNetworkController().getNetworkName()) .isEqualTo("Athens-Test-Core"); } @Test @DisplayName("Verify Domain Connection Data operations") @Transactional void verifyNetworkController() { // 1. Verify DomainConnectionData was seeded Optional<NetworkController> networkControllerOptional = networkControllerRepository.findById("nc-test-uuid-001"); assertThat(networkControllerOptional).isPresent(); NetworkController networkController = networkControllerOptional.get(); // 2. Verify networkController fields against SQL seed assertThat(networkController) .describedAs("Parent NetworkController FK relationship must resolve") .isNotNull(); assertThat(networkController.getNetworkControllerId()).isEqualTo("nc-test-uuid-001"); assertThat(networkController.getNetworkName()).isEqualTo("Athens-Test-Core"); assertThat(networkController.getNetworkOwner()).isEqualTo("OpenSlice-Owner"); assertThat(networkController.getUsername()).isEqualTo("admin"); assertThat(networkController.getHostConfigTypeId()).isEqualTo("cfg-type-01"); assertThat(networkController.getInterceptConfigTypeId()).isEqualTo("intercept-type-01"); assertThat(networkController.getNetworkEndpoint()).isEqualTo("https://athens.endpoint:8080"); assertThat(networkController.getNetworkLocation()).isEqualTo("Athens-GR"); assertThat(networkController.getStatus()).isEqualTo(Status.ONLINE); } @Test @DisplayName("Verify Domain Connection Identity operations") @Transactional void verifyDomainIdentity() { // 1. Verify DomainConnectionData was seeded Optional<DomainIdentityData> optionalDomainIdentityData = domainIdentityRepository.getByDomainIdentityId("domain-id-test-01"); assertThat(optionalDomainIdentityData).isPresent(); DomainIdentityData domainIdentityData = optionalDomainIdentityData.get(); // 2. Fetch entity and test JPA Mapping & FK relationship to NetworkController assertThat(domainIdentityData).isNotNull(); assertThat(domainIdentityData.getDomainIdentityId()).isEqualTo("domain-id-test-01"); assertThat(domainIdentityData.getOrganizationId()).isEqualTo("org-test-uuid-999"); assertThat(domainIdentityData.getOrganizationName()).isEqualTo("Athens-Research-Org"); assertThat(domainIdentityData.getStatus()).isEqualTo(Status.ONLINE); // 3. Verify Foreign Key relationship mapping assertThat(domainIdentityData.getNetworkController()) .describedAs("Parent NetworkController FK relationship must resolve") .isNotNull(); assertThat(domainIdentityData.getNetworkController().getNetworkName()) .isEqualTo("Athens-Test-Core"); } } Loading
pom.xml +17 −1 Changes for pom.xml: 17 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -36,7 +36,11 @@ <artifactId>commons-lang3</artifactId> <!-- <version>3.14.0</version> <!– use the latest stable –>--> </dependency> <!-- Quarkus Flyway Extension --> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-flyway</artifactId> </dependency> <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-hibernate-orm</artifactId> Loading Loading @@ -187,6 +191,18 @@ <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <!-- 1. Ensure test failures strictly fail the build --> <testFailureIgnore>false</testFailureIgnore> <!-- 2. Stop the entire test execution immediately on the 1st failure --> <skipAfterFailureCount>1</skipAfterFailureCount> <systemPropertyVariables> <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> <maven.home>${maven.home}</maven.home> </systemPropertyVariables> </configuration> </plugin> <plugin> Loading
src/main/java/org/etsi/osl/hypo/api/fabric/repository/DomainIdentityRepository.java +5 −6 Changes for src/main/java/org/etsi/osl/hypo/api/fabric/repository/DomainIdentityRepository.java: 5 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -2,10 +2,10 @@ package org.etsi.osl.hypo.api.fabric.repository; import io.quarkus.hibernate.orm.panache.PanacheRepository; import io.quarkus.panache.common.Page; import io.quarkus.panache.common.Parameters; import io.quarkus.panache.common.Sort; import jakarta.enterprise.context.ApplicationScoped; import java.util.List; import java.util.Map; import java.util.Optional; import org.etsi.osl.hypo.api.fabric.entity.DomainIdentityData; Loading @@ -27,16 +27,15 @@ public class DomainIdentityRepository implements PanacheRepository<DomainIdentit public List<DomainIdentityData> getDomainIdentityDataPageByNetworkControllerId( String networkControllerId, int pageIndex, int pageSize) { return find( "networkController.networkControllerId = :ncId", Sort.descending("id"), Parameters.with("ncId", networkControllerId)) Map<String, Object> parameters = Map.of("ncId", networkControllerId); Sort descending = Sort.descending("id"); return find("networkController.networkControllerId = :ncId", descending, parameters) .page(Page.of(pageIndex, pageSize)) .list(); } public List<DomainIdentityData> getAllDomainIdentityListByIds(List<String> ids) { Parameters queryParameters = Parameters.with("idsList", ids); Map<String, Object> queryParameters = Map.of("idsList", ids); return find("where domainIdentityId in :idsList", queryParameters).list(); } }
src/main/resources/application.properties +5 −4 Changes for src/main/resources/application.properties: 5 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -113,11 +113,12 @@ quarkus.datasource.db-kind=postgresql %prod.quarkus.datasource.username=${_PROD_QUARKUS_DATASOURCE_USERNAME:username} %prod.quarkus.datasource.password=${_PROD_QUARKUS_DATASOURCE_PASSWORD:password} %prod.quarkus.hibernate-orm.database.generation=update quarkus.flyway.migrate-at-start=true quarkus.hibernate-orm.database.generation=none %dev.quarkus.hibernate-orm.database.generation=drop-and-create %test.quarkus.hibernate-orm.database.generation=drop-and-create %unittest.quarkus.hibernate-orm.database.generation=drop-and-create # Force Flyway to execute both main schema AND test mock data %test.quarkus.flyway.locations=db/migration,db/migration-test %unittest.quarkus.flyway.locations=db/migration,db/migration-test #Open Telemetry for Tracing %prod.quarkus.otel.enabled=true Loading
src/main/resources/db/migration/V1.0.0__initialize_database.sql 0 → 100644 +60 −0 Changes for src/main/resources/db/migration/V1.0.0__initialize_database.sql: 60 added lines, 0 removed lines. Original line number Diff line number Diff line CREATE SEQUENCE DomainConnectionData_SEQ START WITH 1 INCREMENT BY 50; CREATE SEQUENCE DomainIdentity_SEQ START WITH 1 INCREMENT BY 50; CREATE SEQUENCE NetworkController_SEQ START WITH 1 INCREMENT BY 50; CREATE TABLE DomainConnectionData ( id BIGINT NOT NULL, domainConnectionDataId VARCHAR(255) NOT NULL UNIQUE, networkControllerId BIGINT NOT NULL, address VARCHAR(40) NOT NULL, port INTEGER NOT NULL CHECK (port >= 1 AND port <= 65535), protocol VARCHAR(40) NOT NULL, domainIdentityId VARCHAR(40) NOT NULL, domainServiceId VARCHAR(40) NOT NULL UNIQUE, serviceId VARCHAR(40) NOT NULL, hostConfigId VARCHAR(40) NOT NULL UNIQUE, interceptConfigId VARCHAR(40) NOT NULL UNIQUE, policyBindId VARCHAR(40) NOT NULL UNIQUE, policyDialId VARCHAR(40) NOT NULL UNIQUE, PRIMARY KEY (id) ); CREATE TABLE DomainIdentity ( id BIGINT NOT NULL, network_controller_id BIGINT NOT NULL, domainIdentityId VARCHAR(100) NOT NULL UNIQUE, organizationId VARCHAR(100), organizationName VARCHAR(100), status VARCHAR(255) CHECK (status IN ('ONLINE', 'OFFLINE')), PRIMARY KEY (id) ); CREATE TABLE NetworkController ( id BIGINT NOT NULL, networkControllerId VARCHAR(255) NOT NULL UNIQUE, networkName VARCHAR(100) NOT NULL UNIQUE, networkOwner VARCHAR(50) NOT NULL, username VARCHAR(50) NOT NULL, hostConfigTypeId VARCHAR(255) NOT NULL, interceptConfigTypeId VARCHAR(255) NOT NULL, networkEndpoint VARCHAR(255) NOT NULL, networkLocation VARCHAR(255) NOT NULL, status VARCHAR(255) CHECK (status IN ('ONLINE', 'OFFLINE')), PRIMARY KEY (id) ); CREATE INDEX idx_domain_identity_data_domain_identity_id ON DomainIdentity (domainIdentityId); CREATE INDEX idx_domain_identity_data_organization_id ON DomainIdentity (organizationId); ALTER TABLE IF EXISTS DomainConnectionData ADD CONSTRAINT FK4ybq6pnv6a7w4utm7vykpy9e3 FOREIGN KEY (networkControllerId) REFERENCES NetworkController; ALTER TABLE IF EXISTS DomainIdentity ADD CONSTRAINT fk_domain_identity_network_controller FOREIGN KEY (network_controller_id) REFERENCES NetworkController; No newline at end of file
src/test/java/org/etsi/osl/hypo/api/fabric/database/DatabaseIntegrityTest.java 0 → 100644 +117 −0 Changes for src/test/java/org/etsi/osl/hypo/api/fabric/database/DatabaseIntegrityTest.java: 117 added lines, 0 removed lines. Original line number Diff line number Diff line package org.etsi.osl.hypo.api.fabric.database; import static org.assertj.core.api.Assertions.assertThat; import io.quarkus.test.junit.QuarkusTest; import jakarta.inject.Inject; import jakarta.transaction.Transactional; import java.util.Optional; import org.etsi.osl.hypo.api.fabric.entity.DomainConnectionData; import org.etsi.osl.hypo.api.fabric.entity.DomainIdentityData; import org.etsi.osl.hypo.api.fabric.entity.NetworkController; import org.etsi.osl.hypo.api.fabric.entity.Status; import org.etsi.osl.hypo.api.fabric.repository.DomainConnectionDataRepository; import org.etsi.osl.hypo.api.fabric.repository.DomainIdentityRepository; import org.etsi.osl.hypo.api.fabric.repository.NetworkControllerRepository; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; @QuarkusTest @Order(1) class DatabaseIntegrityTest { @Inject DomainConnectionDataRepository domainConnectionDataRepository; @Inject NetworkControllerRepository networkControllerRepository; @Inject DomainIdentityRepository domainIdentityRepository; @Test @DisplayName("Verify Domain Connection Data operations") @Transactional void verifyDomainConnectionData() { // 1. Verify DomainConnectionData was seeded Optional<DomainConnectionData> domainConnectionDataOptional = domainConnectionDataRepository.findById("dcd-test-uuid-001"); assertThat(domainConnectionDataOptional).isPresent(); DomainConnectionData domainConnectionData = domainConnectionDataOptional.get(); // 2. Fetch entity and test JPA Mapping & FK relationship to NetworkController assertThat(domainConnectionData).describedAs("Record with ID 1 should exist").isNotNull(); assertThat(domainConnectionData.getDomainConnectionDataId()).isEqualTo("dcd-test-uuid-001"); // Verify all DomainConnectionData fields against SQL seed assertThat(domainConnectionData.getDomainConnectionDataId()).isEqualTo("dcd-test-uuid-001"); assertThat(domainConnectionData.getAddress()).isEqualTo("192.168.1.100"); assertThat(domainConnectionData.getPort()).isEqualTo(8080); assertThat(domainConnectionData.getProtocol()).isEqualTo("HTTPS"); assertThat(domainConnectionData.getDomainIdentityId()).isEqualTo("identity-test-01"); assertThat(domainConnectionData.getDomainServiceId()).isEqualTo("service-test-01"); assertThat(domainConnectionData.getServiceId()).isEqualTo("srv-test-01"); assertThat(domainConnectionData.getHostConfigId()).isEqualTo("host-cfg-test-01"); assertThat(domainConnectionData.getInterceptConfigId()).isEqualTo("intercept-cfg-test-01"); assertThat(domainConnectionData.getPolicyBindId()).isEqualTo("bind-test-01"); assertThat(domainConnectionData.getPolicyDialId()).isEqualTo("dial-test-01"); // 3. Verify Foreign Key relationship mapping assertThat(domainConnectionData.getNetworkController()) .describedAs("Parent NetworkController FK relationship must resolve") .isNotNull(); assertThat(domainConnectionData.getNetworkController().getNetworkName()) .isEqualTo("Athens-Test-Core"); } @Test @DisplayName("Verify Domain Connection Data operations") @Transactional void verifyNetworkController() { // 1. Verify DomainConnectionData was seeded Optional<NetworkController> networkControllerOptional = networkControllerRepository.findById("nc-test-uuid-001"); assertThat(networkControllerOptional).isPresent(); NetworkController networkController = networkControllerOptional.get(); // 2. Verify networkController fields against SQL seed assertThat(networkController) .describedAs("Parent NetworkController FK relationship must resolve") .isNotNull(); assertThat(networkController.getNetworkControllerId()).isEqualTo("nc-test-uuid-001"); assertThat(networkController.getNetworkName()).isEqualTo("Athens-Test-Core"); assertThat(networkController.getNetworkOwner()).isEqualTo("OpenSlice-Owner"); assertThat(networkController.getUsername()).isEqualTo("admin"); assertThat(networkController.getHostConfigTypeId()).isEqualTo("cfg-type-01"); assertThat(networkController.getInterceptConfigTypeId()).isEqualTo("intercept-type-01"); assertThat(networkController.getNetworkEndpoint()).isEqualTo("https://athens.endpoint:8080"); assertThat(networkController.getNetworkLocation()).isEqualTo("Athens-GR"); assertThat(networkController.getStatus()).isEqualTo(Status.ONLINE); } @Test @DisplayName("Verify Domain Connection Identity operations") @Transactional void verifyDomainIdentity() { // 1. Verify DomainConnectionData was seeded Optional<DomainIdentityData> optionalDomainIdentityData = domainIdentityRepository.getByDomainIdentityId("domain-id-test-01"); assertThat(optionalDomainIdentityData).isPresent(); DomainIdentityData domainIdentityData = optionalDomainIdentityData.get(); // 2. Fetch entity and test JPA Mapping & FK relationship to NetworkController assertThat(domainIdentityData).isNotNull(); assertThat(domainIdentityData.getDomainIdentityId()).isEqualTo("domain-id-test-01"); assertThat(domainIdentityData.getOrganizationId()).isEqualTo("org-test-uuid-999"); assertThat(domainIdentityData.getOrganizationName()).isEqualTo("Athens-Research-Org"); assertThat(domainIdentityData.getStatus()).isEqualTo(Status.ONLINE); // 3. Verify Foreign Key relationship mapping assertThat(domainIdentityData.getNetworkController()) .describedAs("Parent NetworkController FK relationship must resolve") .isNotNull(); assertThat(domainIdentityData.getNetworkController().getNetworkName()) .isEqualTo("Athens-Test-Core"); } }