return Optional.ofNullable(getMapper(dbSession).selectByKey(key));
}
+ public List<AlmSettingDto> selectByAlm(DbSession dbSession, ALM alm) {
+ return getMapper(dbSession).selectByAlm(alm.getId());
+ }
+
+
public List<AlmSettingDto> selectAll(DbSession dbSession) {
return getMapper(dbSession).selectAll();
}
@CheckForNull
AlmSettingDto selectByKey(@Param("key") String key);
+ List<AlmSettingDto> selectByAlm(String alm);
+
List<AlmSettingDto> selectAll();
void insert(@Param("dto") AlmSettingDto almSettingDto, @Param("uuid") String uuid, @Param("now") long now);
}
public Optional<ProjectAlmSettingDto> selectByProject(DbSession dbSession, ComponentDto project) {
- return Optional.ofNullable(getMapper(dbSession).selectByProjectUuid(project.uuid()));
+ return selectByProject(dbSession, project.uuid());
+ }
+
+ public Optional<ProjectAlmSettingDto> selectByProject(DbSession dbSession, String projectUuid) {
+ return Optional.ofNullable(getMapper(dbSession).selectByProjectUuid(projectUuid));
}
private static ProjectAlmSettingMapper getMapper(DbSession dbSession) {
a.kee = #{key, jdbcType=VARCHAR}
</select>
+ <select id="selectByAlm" parameterType="string" resultType="org.sonar.db.alm.setting.AlmSettingDto">
+ select <include refid="sqlColumns"/>
+ from
+ alm_settings a
+ where
+ a.alm_id = #{almId, jdbcType=VARCHAR}
+ </select>
+
<select id="selectAll" resultType="org.sonar.db.alm.setting.AlmSettingDto">
select <include refid="sqlColumns"/>
from alm_settings a
assertThat(underTest.selectByKey(dbSession, "foo")).isNotPresent();
}
+ @Test
+ public void selectByAlm() {
+ when(uuidFactory.create()).thenReturn(A_UUID);
+ when(system2.now()).thenReturn(NOW);
+ AlmSettingDto gitHubAlmSetting1 = db.almSettings().insertGitHubAlmSetting();
+ AlmSettingDto gitHubAlmSetting2 = db.almSettings().insertGitHubAlmSetting();
+ AlmSettingDto azureAlmSetting2 = db.almSettings().insertAzureAlmSetting();
+
+ List<AlmSettingDto> almSettings = underTest.selectByAlm(dbSession, ALM.GITHUB);
+
+ assertThat(almSettings)
+ .extracting(AlmSettingDto::getUuid)
+ .containsExactlyInAnyOrder(gitHubAlmSetting1.getUuid(), gitHubAlmSetting2.getUuid());
+ }
+
@Test
public void selectAll() {
when(uuidFactory.create()).thenReturn(A_UUID);
underTest.insert(dbSession, newGithubAlmSettingDto());
List<AlmSettingDto> almSettings = underTest.selectAll(dbSession);
- assertThat(almSettings).isNotNull();
+
assertThat(almSettings).size().isEqualTo(2);
}