From 6cb785ff6aec0a217de43de3474c57a5f59c3481 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Lesaint?= Date: Fri, 22 Jun 2018 17:29:51 +0200 Subject: [PATCH] move FavoriteUpdater to server-common --- .../server/favorite/FavoriteUpdater.java | 9 ++++--- .../sonar/server/favorite/package-info.java | 24 +++++++++++++++++++ .../server/favorite/FavoriteUpdaterTest.java | 5 ++-- .../server/favorite/ws/RemoveActionTest.java | 3 +-- 4 files changed, 31 insertions(+), 10 deletions(-) rename server/{sonar-server => sonar-server-common}/src/main/java/org/sonar/server/favorite/FavoriteUpdater.java (85%) create mode 100644 server/sonar-server-common/src/main/java/org/sonar/server/favorite/package-info.java rename server/{sonar-server => sonar-server-common}/src/test/java/org/sonar/server/favorite/FavoriteUpdaterTest.java (96%) diff --git a/server/sonar-server/src/main/java/org/sonar/server/favorite/FavoriteUpdater.java b/server/sonar-server-common/src/main/java/org/sonar/server/favorite/FavoriteUpdater.java similarity index 85% rename from server/sonar-server/src/main/java/org/sonar/server/favorite/FavoriteUpdater.java rename to server/sonar-server-common/src/main/java/org/sonar/server/favorite/FavoriteUpdater.java index a9f3d195214..cc58bc0e882 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/favorite/FavoriteUpdater.java +++ b/server/sonar-server-common/src/main/java/org/sonar/server/favorite/FavoriteUpdater.java @@ -26,9 +26,8 @@ import org.sonar.db.DbSession; import org.sonar.db.component.ComponentDto; import org.sonar.db.property.PropertyDto; import org.sonar.db.property.PropertyQuery; -import org.sonar.server.exceptions.BadRequestException; -import static org.sonar.server.ws.WsUtils.checkRequest; +import static com.google.common.base.Preconditions.checkArgument; public class FavoriteUpdater { static final String PROP_FAVORITE_KEY = "favourite"; @@ -52,7 +51,7 @@ public class FavoriteUpdater { .setUserId(userId) .setComponentId(componentDto.getId()) .build(), dbSession); - checkRequest(existingFavoriteOnComponent.isEmpty(), "Component '%s' is already a favorite", componentDto.getDbKey()); + checkArgument(existingFavoriteOnComponent.isEmpty(), "Component '%s' is already a favorite", componentDto.getDbKey()); dbClient.propertiesDao().saveProperty(dbSession, new PropertyDto() .setKey(PROP_FAVORITE_KEY) .setResourceId(componentDto.getId()) @@ -61,7 +60,7 @@ public class FavoriteUpdater { /** * Remove a favorite to the user. - * @throws BadRequestException if the component is not a favorite + * @throws IllegalArgumentException if the component is not a favorite */ public void remove(DbSession dbSession, ComponentDto component, @Nullable Integer userId) { if (userId == null) { @@ -72,6 +71,6 @@ public class FavoriteUpdater { .setKey(PROP_FAVORITE_KEY) .setResourceId(component.getId()) .setUserId(userId)); - checkRequest(result == 1, "Component '%s' is not a favorite", component.getDbKey()); + checkArgument(result == 1, "Component '%s' is not a favorite", component.getDbKey()); } } diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/favorite/package-info.java b/server/sonar-server-common/src/main/java/org/sonar/server/favorite/package-info.java new file mode 100644 index 00000000000..c97371f3501 --- /dev/null +++ b/server/sonar-server-common/src/main/java/org/sonar/server/favorite/package-info.java @@ -0,0 +1,24 @@ +/* + * SonarQube + * Copyright (C) 2009-2018 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.favorite; + +import javax.annotation.ParametersAreNonnullByDefault; + diff --git a/server/sonar-server/src/test/java/org/sonar/server/favorite/FavoriteUpdaterTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/favorite/FavoriteUpdaterTest.java similarity index 96% rename from server/sonar-server/src/test/java/org/sonar/server/favorite/FavoriteUpdaterTest.java rename to server/sonar-server-common/src/test/java/org/sonar/server/favorite/FavoriteUpdaterTest.java index d931f3373ea..836be016cac 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/favorite/FavoriteUpdaterTest.java +++ b/server/sonar-server-common/src/test/java/org/sonar/server/favorite/FavoriteUpdaterTest.java @@ -30,7 +30,6 @@ import org.sonar.db.component.ComponentDto; import org.sonar.db.component.ComponentTesting; import org.sonar.db.organization.OrganizationTesting; import org.sonar.db.property.PropertyQuery; -import org.sonar.server.exceptions.BadRequestException; import static org.assertj.core.api.Assertions.assertThat; @@ -44,9 +43,9 @@ public class FavoriteUpdaterTest { @Rule public ExpectedException expectedException = ExpectedException.none(); - @Rule public DbTester db = DbTester.create(System2.INSTANCE); + private DbClient dbClient = db.getDbClient(); private DbSession dbSession = db.getSession(); @@ -73,7 +72,7 @@ public class FavoriteUpdaterTest { underTest.add(dbSession, COMPONENT, USER_ID); assertFavorite(); - expectedException.expect(BadRequestException.class); + expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("Component 'K1' is already a favorite"); underTest.add(dbSession, COMPONENT, USER_ID); diff --git a/server/sonar-server/src/test/java/org/sonar/server/favorite/ws/RemoveActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/favorite/ws/RemoveActionTest.java index 280f190bbaa..6cc32477483 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/favorite/ws/RemoveActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/favorite/ws/RemoveActionTest.java @@ -30,7 +30,6 @@ import org.sonar.db.DbTester; import org.sonar.db.component.ComponentDto; import org.sonar.db.organization.OrganizationDto; import org.sonar.server.component.TestComponentFinder; -import org.sonar.server.exceptions.BadRequestException; import org.sonar.server.exceptions.NotFoundException; import org.sonar.server.exceptions.UnauthorizedException; import org.sonar.server.favorite.FavoriteUpdater; @@ -82,7 +81,7 @@ public class RemoveActionTest { public void fail_if_not_already_a_favorite() { insertProjectAndPermissions(); - expectedException.expect(BadRequestException.class); + expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("Component '" + PROJECT_KEY + "' is not a favorite"); call(PROJECT_KEY); -- 2.39.5