From 534cf0d48d2ed973a0e740b6e86b54360b31df0e Mon Sep 17 00:00:00 2001 From: Viliam Krizan Date: Mon, 8 Jan 2024 14:20:32 +0100 Subject: [PATCH] fix(models): boolean quering in HQL `IS TRUE` predicate does not seem to be valid in Hiberate 6. RHINENG-1631 --- .../db/repositories/PoliciesRepository.java | 2 +- .../repositories/PoliciesRepositoryTest.java | 65 +++++++++++++++++++ 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 src/test/java/com/redhat/cloud/policies/engine/db/repositories/PoliciesRepositoryTest.java diff --git a/src/main/java/com/redhat/cloud/policies/engine/db/repositories/PoliciesRepository.java b/src/main/java/com/redhat/cloud/policies/engine/db/repositories/PoliciesRepository.java index 05b69231..dc160f07 100644 --- a/src/main/java/com/redhat/cloud/policies/engine/db/repositories/PoliciesRepository.java +++ b/src/main/java/com/redhat/cloud/policies/engine/db/repositories/PoliciesRepository.java @@ -55,7 +55,7 @@ LocalDateTime findLatestUpdate(String orgId) { } private List findEnabledPolicies(String orgId) { - String hql = "FROM Policy WHERE orgId = :orgId AND enabled IS TRUE"; + String hql = "FROM Policy WHERE orgId = :orgId AND enabled = TRUE"; return statelessSessionFactory.getCurrentSession().createQuery(hql, Policy.class) .setParameter("orgId", orgId) .getResultList(); diff --git a/src/test/java/com/redhat/cloud/policies/engine/db/repositories/PoliciesRepositoryTest.java b/src/test/java/com/redhat/cloud/policies/engine/db/repositories/PoliciesRepositoryTest.java new file mode 100644 index 00000000..42aea64a --- /dev/null +++ b/src/test/java/com/redhat/cloud/policies/engine/db/repositories/PoliciesRepositoryTest.java @@ -0,0 +1,65 @@ +package com.redhat.cloud.policies.engine.db.repositories; + +import com.redhat.cloud.policies.engine.TestLifecycleManager; +import com.redhat.cloud.policies.engine.db.StatelessSessionFactory; +import com.redhat.cloud.policies.engine.db.entities.Policy; + +import io.quarkus.test.common.QuarkusTestResource; +import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.junit.mockito.InjectSpy; + +import org.hibernate.Session; +import org.junit.jupiter.api.Test; + + +import jakarta.inject.Inject; +import jakarta.transaction.Transactional; + +import java.util.List; +import java.util.UUID; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@QuarkusTest +@QuarkusTestResource(TestLifecycleManager.class) +class PoliciesRepositoryTest { + + @InjectSpy + StatelessSessionFactory statelessSessionFactory; + + @Inject + Session session; + + @Inject + PoliciesRepository repository; + + @Test + public void testGetEnabledPolicies() { + String orgId = UUID.randomUUID().toString(); + + Policy policyFixture = createEnabledPolicy(orgId); + + statelessSessionFactory.withSession(session -> { + List enabledPolicies = repository.getEnabledPolicies(orgId); + assertEquals(1, enabledPolicies.size()); + assertEquals(orgId, enabledPolicies.get(0).orgId); + assertEquals(policyFixture.id, enabledPolicies.get(0).id); + }); + } + + @Transactional + Policy createEnabledPolicy(String orgId) { + Policy policy = new Policy(); + policy.id = UUID.randomUUID(); + policy.accountId = "123"; + policy.orgId = orgId; + policy.name = "Test"; + policy.description = "desc"; + policy.condition = "true"; + policy.enabled = true; + policy.actions = "none"; + session.persist(policy); + + return policy; + } +}