import static org.assertj.core.api.Assertions.assertThat; | import static org.assertj.core.api.Assertions.assertThat; | ||||
import static org.assertj.core.api.Assertions.assertThatThrownBy; | import static org.assertj.core.api.Assertions.assertThatThrownBy; | ||||
import static org.assertj.core.api.Assertions.entry; | |||||
@RunWith(DataProviderRunner.class) | @RunWith(DataProviderRunner.class) | ||||
public class CeTaskTest { | public class CeTaskTest { | ||||
assertThat(task.getSubmitter()).isEqualTo(submitter); | assertThat(task.getSubmitter()).isEqualTo(submitter); | ||||
assertThat(task.getComponent()).contains(component); | assertThat(task.getComponent()).contains(component); | ||||
assertThat(task.getMainComponent()).contains(mainComponent); | assertThat(task.getMainComponent()).contains(mainComponent); | ||||
assertThat(task.getCharacteristics()).containsExactly(entry("k1", "v1"), entry("k2", "v2")); | |||||
assertThat(task.getCharacteristics()) | |||||
.hasSize(2) | |||||
.containsEntry("k1", "v1") | |||||
.containsEntry("k2", "v2"); | |||||
} | } | ||||
@Test | @Test |
import org.assertj.core.api.Assertions; | import org.assertj.core.api.Assertions; | ||||
import org.junit.Test; | import org.junit.Test; | ||||
import static org.assertj.core.api.Assertions.assertThatExceptionOfType; | |||||
public class RuleDescriptionSectionDtoTest { | public class RuleDescriptionSectionDtoTest { | ||||
private static final RuleDescriptionSectionDto SECTION = RuleDescriptionSectionDto.builder() | private static final RuleDescriptionSectionDto SECTION = RuleDescriptionSectionDto.builder() | ||||
.key("key") | .key("key") | ||||
.uuid("uuid") | .uuid("uuid") | ||||
.content("desc").build(); | .content("desc").build(); | ||||
@Test | |||||
public void setDefault_whenKeyAlreadySet_shouldThrow() { | |||||
RuleDescriptionSectionDto.RuleDescriptionSectionDtoBuilder builderWithKey = RuleDescriptionSectionDto.builder() | |||||
.key("tagada"); | |||||
assertThatExceptionOfType(IllegalArgumentException.class) | |||||
.isThrownBy(builderWithKey::setDefault) | |||||
.withMessage("Only one of setDefault and key methods can be called"); | |||||
} | |||||
@Test | |||||
public void setKey_whenDefaultAlreadySet_shouldThrow() { | |||||
RuleDescriptionSectionDto.RuleDescriptionSectionDtoBuilder builderWithDefault = RuleDescriptionSectionDto.builder() | |||||
.setDefault(); | |||||
assertThatExceptionOfType(IllegalArgumentException.class) | |||||
.isThrownBy(() -> builderWithDefault.key("balbal")) | |||||
.withMessage("Only one of setDefault and key methods can be called"); | |||||
} | |||||
@Test | @Test | ||||
public void testToString() { | public void testToString() { | ||||
Assertions.assertThat(SECTION).hasToString("RuleDescriptionSectionDto[uuid='uuid', key='key', content='desc']"); | Assertions.assertThat(SECTION).hasToString("RuleDescriptionSectionDto[uuid='uuid', key='key', content='desc']"); |
import java.util.Collection; | import java.util.Collection; | ||||
import java.util.Collections; | import java.util.Collections; | ||||
import java.util.HashMap; | import java.util.HashMap; | ||||
import java.util.HashSet; | |||||
import java.util.LinkedHashMap; | import java.util.LinkedHashMap; | ||||
import java.util.List; | import java.util.List; | ||||
import java.util.Map; | import java.util.Map; |
*/ | */ | ||||
package org.sonar.server.plugins; | package org.sonar.server.plugins; | ||||
import com.google.common.collect.ImmutableSet; | |||||
import java.io.IOException; | |||||
import java.util.Set; | |||||
import javax.servlet.FilterChain; | |||||
import javax.servlet.FilterConfig; | |||||
import javax.servlet.ServletException; | |||||
import javax.servlet.ServletRequest; | |||||
import javax.servlet.ServletResponse; | |||||
import javax.servlet.http.HttpServletRequest; | |||||
import javax.servlet.http.HttpServletResponse; | |||||
import org.sonar.api.config.Configuration; | import org.sonar.api.config.Configuration; | ||||
import org.sonar.api.web.ServletFilter; | import org.sonar.api.web.ServletFilter; | ||||
import org.sonar.core.extension.PluginRiskConsent; | import org.sonar.core.extension.PluginRiskConsent; | ||||
import static org.sonar.core.extension.PluginRiskConsent.NOT_ACCEPTED; | import static org.sonar.core.extension.PluginRiskConsent.NOT_ACCEPTED; | ||||
import static org.sonar.core.extension.PluginRiskConsent.REQUIRED; | import static org.sonar.core.extension.PluginRiskConsent.REQUIRED; | ||||
import static org.sonar.server.authentication.AuthenticationRedirection.redirectTo; | import static org.sonar.server.authentication.AuthenticationRedirection.redirectTo; | ||||
import javax.servlet.FilterChain; | |||||
import javax.servlet.FilterConfig; | |||||
import javax.servlet.ServletException; | |||||
import javax.servlet.ServletRequest; | |||||
import javax.servlet.ServletResponse; | |||||
import javax.servlet.http.HttpServletRequest; | |||||
import javax.servlet.http.HttpServletResponse; | |||||
import java.io.IOException; | |||||
import java.util.Set; | |||||
public class PluginsRiskConsentFilter extends ServletFilter { | public class PluginsRiskConsentFilter extends ServletFilter { | ||||
/* | |||||
* SonarQube | |||||
* Copyright (C) 2009-2022 SonarSource SA | |||||
* mailto:info AT sonarsource DOT com | |||||
* | |||||
* This program is free software; you can redistribute it and/or | |||||
* modify it under the terms of the GNU Lesser General Public | |||||
* License as published by the Free Software Foundation; either | |||||
* version 3 of the License, or (at your option) any later version. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||||
* Lesser General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU Lesser General Public License | |||||
* along with this program; if not, write to the Free Software Foundation, | |||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||||
*/ | |||||
@ParametersAreNonnullByDefault | |||||
package org.sonar.server.issue.ws.pull; | |||||
import javax.annotation.ParametersAreNonnullByDefault; |
import org.sonar.db.DbClient; | import org.sonar.db.DbClient; | ||||
import org.sonar.db.DbSession; | import org.sonar.db.DbSession; | ||||
import org.sonar.db.project.ProjectDto; | import org.sonar.db.project.ProjectDto; | ||||
import org.sonar.db.qualitygate.QualityGateDto; | |||||
import org.sonar.server.component.ComponentFinder; | import org.sonar.server.component.ComponentFinder; | ||||
import org.sonar.server.qualitygate.QualityGateFinder; | import org.sonar.server.qualitygate.QualityGateFinder; | ||||
import org.sonar.server.qualitygate.QualityGateFinder.QualityGateData; | import org.sonar.server.qualitygate.QualityGateFinder.QualityGateData; |
import org.sonar.db.permission.GlobalPermission; | import org.sonar.db.permission.GlobalPermission; | ||||
import org.sonar.db.property.PropertyDto; | import org.sonar.db.property.PropertyDto; | ||||
import org.sonar.db.property.PropertyQuery; | import org.sonar.db.property.PropertyQuery; | ||||
import org.sonar.db.qualitygate.QualityGateDto; | |||||
import org.sonar.db.qualityprofile.QProfileDto; | import org.sonar.db.qualityprofile.QProfileDto; | ||||
import org.sonar.server.component.ComponentFinder; | import org.sonar.server.component.ComponentFinder; | ||||
import org.sonar.server.exceptions.BadRequestException; | import org.sonar.server.exceptions.BadRequestException; |
*/ | */ | ||||
package org.sonar.server.ui.ws; | package org.sonar.server.ui.ws; | ||||
import com.google.common.collect.ImmutableSet; | |||||
import java.util.Arrays; | import java.util.Arrays; | ||||
import java.util.HashMap; | import java.util.HashMap; | ||||
import java.util.Locale; | import java.util.Locale; |
/* | |||||
* SonarQube | |||||
* Copyright (C) 2009-2022 SonarSource SA | |||||
* mailto:info AT sonarsource DOT com | |||||
* | |||||
* This program is free software; you can redistribute it and/or | |||||
* modify it under the terms of the GNU Lesser General Public | |||||
* License as published by the Free Software Foundation; either | |||||
* version 3 of the License, or (at your option) any later version. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||||
* Lesser General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU Lesser General Public License | |||||
* along with this program; if not, write to the Free Software Foundation, | |||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||||
*/ | |||||
@ParametersAreNonnullByDefault | |||||
package org.sonar.core.util.issue; | |||||
import javax.annotation.ParametersAreNonnullByDefault; | |||||
/* | |||||
* SonarQube | |||||
* Copyright (C) 2009-2022 SonarSource SA | |||||
* mailto:info AT sonarsource DOT com | |||||
* | |||||
* This program is free software; you can redistribute it and/or | |||||
* modify it under the terms of the GNU Lesser General Public | |||||
* License as published by the Free Software Foundation; either | |||||
* version 3 of the License, or (at your option) any later version. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||||
* Lesser General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU Lesser General Public License | |||||
* along with this program; if not, write to the Free Software Foundation, | |||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||||
*/ | |||||
@ParametersAreNonnullByDefault | |||||
package org.sonar.core.util.rule; | |||||
import javax.annotation.ParametersAreNonnullByDefault; | |||||