Skip to content

Commit

Permalink
fix quality flaws
Browse files Browse the repository at this point in the history
  • Loading branch information
Daniel Schwarz authored and bartfastiel committed Apr 14, 2017
1 parent 981f0bf commit 033ef4b
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 35 deletions.
25 changes: 9 additions & 16 deletions server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDao.java
Expand Up @@ -32,30 +32,23 @@
import org.sonar.db.organization.OrganizationDto;

import static com.google.common.base.Preconditions.checkNotNull;
import static java.util.Optional.*;
import static org.sonar.db.DatabaseUtils.executeLargeInputs;

public class RuleDao implements Dao {

public Optional<RuleDto> selectByKey(DbSession session, OrganizationDto organization, RuleKey key) {
return selectByKey(session, organization.getUuid(), key);
}

/**
* @deprecated use {@link #selectByKey(DbSession, OrganizationDto, RuleKey)}
*/
@Deprecated
public Optional<RuleDto> selectByKey(DbSession session, String organizationUuid, RuleKey key) {
RuleDto res = mapper(session).selectByKey(organizationUuid, key);
ensureOrganizationIsSet(organizationUuid, res);
return Optional.ofNullable(res);
RuleDto res = mapper(session).selectByKey(organization.getUuid(), key);
ensureOrganizationIsSet(organization.getUuid(), res);
return ofNullable(res);
}

public Optional<RuleDefinitionDto> selectDefinitionByKey(DbSession session, RuleKey key) {
return Optional.ofNullable(mapper(session).selectDefinitionByKey(key));
return ofNullable(mapper(session).selectDefinitionByKey(key));
}

public java.util.Optional<RuleMetadataDto> selectMetadataByKey(DbSession session, RuleKey key, OrganizationDto organization) {
return java.util.Optional.ofNullable(mapper(session).selectMetadataByKey(key, organization.getUuid()));
public Optional<RuleMetadataDto> selectMetadataByKey(DbSession session, RuleKey key, OrganizationDto organization) {
return ofNullable(mapper(session).selectMetadataByKey(key, organization.getUuid()));
}

public RuleDto selectOrFailByKey(DbSession session, OrganizationDto organization, RuleKey key) {
Expand All @@ -78,11 +71,11 @@ public RuleDefinitionDto selectOrFailDefinitionByKey(DbSession session, RuleKey
public Optional<RuleDto> selectById(long id, String organizationUuid, DbSession session) {
RuleDto res = mapper(session).selectById(organizationUuid, id);
ensureOrganizationIsSet(organizationUuid, res);
return Optional.ofNullable(res);
return ofNullable(res);
}

public Optional<RuleDefinitionDto> selectDefinitionById(long id, DbSession session) {
return Optional.ofNullable(mapper(session).selectDefinitionById(id));
return ofNullable(mapper(session).selectDefinitionById(id));
}

public List<RuleDto> selectByIds(DbSession session, String organizationUuid, List<Integer> ids) {
Expand Down
Expand Up @@ -26,6 +26,7 @@
import java.util.List;
import java.util.Optional;
import org.apache.ibatis.session.ResultHandler;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
Expand Down Expand Up @@ -57,14 +58,20 @@ public class RuleDaoTest {
public DbTester dbTester = DbTester.create(System2.INSTANCE);

private RuleDao underTest = dbTester.getDbClient().ruleDao();
private OrganizationDto organization;

@Before
public void before() {
organization = dbTester.organizations().insert(o -> o.setUuid(ORGANIZATION_UUID));
}

@Test
public void selectByKey() {
dbTester.prepareDbUnit(getClass(), "shared.xml");

assertThat(underTest.selectByKey(dbTester.getSession(), ORGANIZATION_UUID, RuleKey.of("NOT", "FOUND")).isPresent()).isFalse();
assertThat(underTest.selectByKey(dbTester.getSession(), organization, RuleKey.of("NOT", "FOUND")).isPresent()).isFalse();

Optional<RuleDto> rule = underTest.selectByKey(dbTester.getSession(), ORGANIZATION_UUID, RuleKey.of("java", "S001"));
Optional<RuleDto> rule = underTest.selectByKey(dbTester.getSession(), organization, RuleKey.of("java", "S001"));
assertThat(rule.isPresent()).isTrue();
assertThat(rule.get().getId()).isEqualTo(1);
}
Expand All @@ -73,7 +80,7 @@ public void selectByKey() {
public void selectByKey_populates_organizationUuid_even_when_organization_has_no_metadata() {
dbTester.prepareDbUnit(getClass(), "shared.xml");

assertThat(underTest.selectByKey(dbTester.getSession(), ORGANIZATION_UUID, RuleKey.of("java", "S001")).get().getOrganizationUuid())
assertThat(underTest.selectByKey(dbTester.getSession(), organization, RuleKey.of("java", "S001")).get().getOrganizationUuid())
.isEqualTo(ORGANIZATION_UUID);
}

Expand Down
Expand Up @@ -36,6 +36,7 @@
import org.sonar.api.rules.RulePriority;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.rule.RuleDao;
import org.sonar.db.rule.RuleDto;
import org.sonar.db.rule.RuleParamDto;
Expand Down Expand Up @@ -99,7 +100,10 @@ public Collection<org.sonar.api.rules.Rule> findByKeys(Collection<RuleKey> ruleK
@CheckForNull
public org.sonar.api.rules.Rule findByKey(RuleKey key) {
try (DbSession dbSession = dbClient.openSession(false)) {
Optional<RuleDto> rule = ruleDao.selectByKey(dbSession, defaultOrganizationProvider.get().getUuid(), key);
String defaultOrganizationUuid = defaultOrganizationProvider.get().getUuid();
OrganizationDto defaultOrganization = dbClient.organizationDao().selectByUuid(dbSession, defaultOrganizationUuid)
.orElseThrow(() -> new IllegalStateException(String.format("Cannot find default organization '%s'", defaultOrganizationUuid)));
Optional<RuleDto> rule = ruleDao.selectByKey(dbSession, defaultOrganization, key);
if (rule.isPresent() && rule.get().getStatus() != RuleStatus.REMOVED) {
return toRule(rule.get(), ruleDao.selectRuleParamsByRuleKey(dbSession, rule.get().getKey()));
} else {
Expand Down
Expand Up @@ -25,9 +25,7 @@
import org.sonar.api.utils.System2;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.organization.OrganizationFlags;
import org.sonar.server.qualityprofile.RuleActivator;
import org.sonar.server.rule.index.RuleIndexer;
Expand All @@ -39,16 +37,13 @@ public class RuleDeleter {
private final RuleIndexer ruleIndexer;
private final DbClient dbClient;
private final RuleActivator ruleActivator;
private final DefaultOrganizationProvider defaultOrganizationProvider;
private final OrganizationFlags organizationFlags;

public RuleDeleter(System2 system2, RuleIndexer ruleIndexer, DbClient dbClient, RuleActivator ruleActivator, DefaultOrganizationProvider defaultOrganizationProvider,
OrganizationFlags organizationFlags) {
public RuleDeleter(System2 system2, RuleIndexer ruleIndexer, DbClient dbClient, RuleActivator ruleActivator, OrganizationFlags organizationFlags) {
this.system2 = system2;
this.ruleIndexer = ruleIndexer;
this.dbClient = dbClient;
this.ruleActivator = ruleActivator;
this.defaultOrganizationProvider = defaultOrganizationProvider;
this.organizationFlags = organizationFlags;
}

Expand All @@ -61,10 +56,6 @@ public void delete(RuleKey ruleKey) {
throw new IllegalStateException("Only custom rules can be deleted");
}

String defaultOrganizationUuid = defaultOrganizationProvider.get().getUuid();
OrganizationDto organization = dbClient.organizationDao().selectByUuid(dbSession, defaultOrganizationUuid)
.orElseThrow(() -> new IllegalStateException(String.format("Default organization not found for uuid '%s'", defaultOrganizationUuid)));

// For custom rule, first deactivate the rule on all profiles
if (rule.getTemplateId() != null) {
ruleActivator.deactivateOfAllOrganizations(dbSession, rule);
Expand Down
Expand Up @@ -46,7 +46,6 @@
import org.sonar.db.rule.RuleDefinitionDto;
import org.sonar.db.rule.RuleDto;
import org.sonar.db.rule.RuleParamDto;
import org.sonar.server.organization.DefaultOrganizationProvider;
import org.sonar.server.rule.index.RuleIndexer;
import org.sonar.server.user.UserSession;

Expand All @@ -62,13 +61,11 @@ public class RuleUpdater {
private final DbClient dbClient;
private final RuleIndexer ruleIndexer;
private final System2 system;
private final DefaultOrganizationProvider defaultOrganizationProvider;

public RuleUpdater(DbClient dbClient, RuleIndexer ruleIndexer, System2 system, DefaultOrganizationProvider defaultOrganizationProvider) {
public RuleUpdater(DbClient dbClient, RuleIndexer ruleIndexer, System2 system) {
this.dbClient = dbClient;
this.ruleIndexer = ruleIndexer;
this.system = system;
this.defaultOrganizationProvider = defaultOrganizationProvider;
}

/**
Expand Down
Expand Up @@ -85,7 +85,7 @@ public class UpdateActionTest {
private Languages languages = new Languages();
private RuleMapper mapper = new RuleMapper(languages, macroInterpreter);
private RuleIndexer ruleIndexer = new RuleIndexer(esClient, dbClient);
private RuleUpdater ruleUpdater = new RuleUpdater(dbClient, ruleIndexer, System2.INSTANCE, defaultOrganizationProvider);
private RuleUpdater ruleUpdater = new RuleUpdater(dbClient, ruleIndexer, System2.INSTANCE);
private RuleWsSupport ruleWsSupport = new RuleWsSupport(dbClient, userSession, defaultOrganizationProvider);
private WsAction underTest = new UpdateAction(dbClient, ruleUpdater, mapper, userSession, ruleWsSupport, defaultOrganizationProvider);
private WsActionTester actionTester = new WsActionTester(underTest);
Expand Down

0 comments on commit 033ef4b

Please sign in to comment.