From: Teryk Bellahsene Date: Thu, 9 Mar 2017 13:44:31 +0000 (+0100) Subject: SONAR-8892 Select an organization member in DB X-Git-Tag: 6.4-RC1~738 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=1ac32ede34b0ff29bf0af042e4ce359b5999fcd4;p=sonarqube.git SONAR-8892 Select an organization member in DB --- 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));