From 1ac32ede34b0ff29bf0af042e4ce359b5999fcd4 Mon Sep 17 00:00:00 2001 From: Teryk Bellahsene Date: Thu, 9 Mar 2017 14:44:31 +0100 Subject: [PATCH] SONAR-8892 Select an organization member in DB --- .../db/organization/OrganizationMemberDao.java | 7 ++++++- .../db/organization/OrganizationMemberMapper.java | 4 ++++ .../db/organization/OrganizationMemberMapper.xml | 14 ++++++++++++++ .../db/organization/OrganizationMemberDaoTest.java | 13 +++++++++++++ 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationMemberDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationMemberDao.java index 81668a5174a..cf8a9791ca7 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationMemberDao.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationMemberDao.java @@ -20,6 +20,7 @@ package org.sonar.db.organization; +import java.util.Optional; import org.sonar.db.Dao; import org.sonar.db.DbSession; @@ -28,7 +29,11 @@ public class OrganizationMemberDao implements Dao { mapper(dbSession).insert(organizationMemberDto); } - private OrganizationMemberMapper mapper(DbSession dbSession) { + public Optional select(DbSession dbSession, String organizationUuid, int userId) { + return Optional.ofNullable(mapper(dbSession).select(organizationUuid, userId)); + } + + private static OrganizationMemberMapper mapper(DbSession dbSession) { return dbSession.getMapper(OrganizationMemberMapper.class); } } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationMemberMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationMemberMapper.java index cec53d6b149..7c2cc845f1d 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationMemberMapper.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationMemberMapper.java @@ -20,6 +20,10 @@ package org.sonar.db.organization; +import org.apache.ibatis.annotations.Param; + public interface OrganizationMemberMapper { void insert(OrganizationMemberDto organizationMember); + + OrganizationMemberDto select(@Param("organizationUuid") String organizationUuid, @Param("userId") int userId); } diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/organization/OrganizationMemberMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/organization/OrganizationMemberMapper.xml index bdb144975a3..9f657932e48 100644 --- a/server/sonar-db-dao/src/main/resources/org/sonar/db/organization/OrganizationMemberMapper.xml +++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/organization/OrganizationMemberMapper.xml @@ -3,6 +3,20 @@ + + om.organization_uuid as "organizationUuid", + om.user_id as "userId" + + + + insert into organization_members ( diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/organization/OrganizationMemberDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/organization/OrganizationMemberDaoTest.java index 09c82d526e4..960418af39e 100644 --- a/server/sonar-db-dao/src/test/java/org/sonar/db/organization/OrganizationMemberDaoTest.java +++ b/server/sonar-db-dao/src/test/java/org/sonar/db/organization/OrganizationMemberDaoTest.java @@ -21,6 +21,7 @@ package org.sonar.db.organization; import java.util.Map; +import java.util.Optional; import org.apache.ibatis.exceptions.PersistenceException; import org.junit.Rule; import org.junit.Test; @@ -43,6 +44,18 @@ public class OrganizationMemberDaoTest { private OrganizationMemberDao underTest = dbClient.organizationMemberDao(); + @Test + public void select() { + underTest.insert(dbSession, create("O1", 512)); + + Optional result = underTest.select(dbSession, "O1", 512); + + assertThat(result).isPresent(); + assertThat(result.get()).extracting(OrganizationMemberDto::getOrganizationUuid, OrganizationMemberDto::getUserId).containsExactly("O1", 512); + assertThat(underTest.select(dbSession, "O1", 256)).isNotPresent(); + assertThat(underTest.select(dbSession, "O2", 512)).isNotPresent(); + } + @Test public void insert() { underTest.insert(dbSession, create("O_1", 256)); -- 2.39.5