Browse Source

SONAR-11812 Restore ability to set unit tests as favorite

tags/7.7
Julien Lancelot 5 years ago
parent
commit
17b3feadd5

+ 1
- 1
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v77/DeleteFavoritesExceedingOneHundred.java View File



private static final String FAVOURITE_PROPERTY = "favourite"; private static final String FAVOURITE_PROPERTY = "favourite";


private static final List<String> SORTED_QUALIFIERS = asList("TRK", "VW", "APP", "SVW", "FIL");
private static final List<String> SORTED_QUALIFIERS = asList("TRK", "VW", "APP", "SVW", "FIL", "UTS");


public DeleteFavoritesExceedingOneHundred(Database db) { public DeleteFavoritesExceedingOneHundred(Database db) {
super(db); super(db);

+ 1
- 1
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v77/DeleteFavouritesOnNotSupportedComponentQualifiers.java View File

public void execute(Context context) throws SQLException { public void execute(Context context) throws SQLException {
MassUpdate massUpdate = context.prepareMassUpdate().rowPluralName("favourites"); MassUpdate massUpdate = context.prepareMassUpdate().rowPluralName("favourites");
massUpdate.select("SELECT prop.id FROM properties prop " + massUpdate.select("SELECT prop.id FROM properties prop " +
"INNER JOIN projects p ON p.id=prop.resource_id AND p.qualifier NOT IN ('TRK', 'FIL', 'VW', 'SVW', 'APP') " +
"INNER JOIN projects p ON p.id=prop.resource_id AND p.qualifier NOT IN ('TRK', 'FIL', 'VW', 'SVW', 'APP', 'UTS') " +
"WHERE prop_key=? AND user_id IS NOT NULL") "WHERE prop_key=? AND user_id IS NOT NULL")
.setString(1, "favourite"); .setString(1, "favourite");
massUpdate.update("DELETE FROM properties WHERE id=?"); massUpdate.update("DELETE FROM properties WHERE id=?");

+ 3
- 1
server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v77/DeleteFavouritesOnNotSupportedComponentQualifiersTest.java View File

int prop4 = insertProperty(FAVOURITE_PROPERTY, subPortfolioId); int prop4 = insertProperty(FAVOURITE_PROPERTY, subPortfolioId);
int applicationId = insertComponent("APP"); int applicationId = insertComponent("APP");
int prop5 = insertProperty(FAVOURITE_PROPERTY, applicationId); int prop5 = insertProperty(FAVOURITE_PROPERTY, applicationId);
int unitTestId = insertComponent("UTS");
int prop6 = insertProperty(FAVOURITE_PROPERTY, unitTestId);


underTest.execute(); underTest.execute();


assertProperties(prop1, prop2, prop3, prop4, prop5);
assertProperties(prop1, prop2, prop3, prop4, prop5, prop6);
} }


@Test @Test

+ 7
- 1
server/sonar-server/src/main/java/org/sonar/server/favorite/ws/AddAction.java View File

import static java.lang.String.format; import static java.lang.String.format;
import static java.lang.String.join; import static java.lang.String.join;
import static java.util.Arrays.asList; import static java.util.Arrays.asList;
import static org.sonar.api.resources.Qualifiers.APP;
import static org.sonar.api.resources.Qualifiers.FILE;
import static org.sonar.api.resources.Qualifiers.PROJECT;
import static org.sonar.api.resources.Qualifiers.SUBVIEW;
import static org.sonar.api.resources.Qualifiers.UNIT_TEST_FILE;
import static org.sonar.api.resources.Qualifiers.VIEW;
import static org.sonar.api.web.UserRole.USER; import static org.sonar.api.web.UserRole.USER;
import static org.sonar.server.favorite.ws.FavoritesWsParameters.PARAM_COMPONENT; import static org.sonar.server.favorite.ws.FavoritesWsParameters.PARAM_COMPONENT;


public class AddAction implements FavoritesWsAction { public class AddAction implements FavoritesWsAction {


private static final List<String> SUPPORTED_QUALIFIERS = asList("TRK", "VW", "APP", "SVW", "FIL");
private static final List<String> SUPPORTED_QUALIFIERS = asList(PROJECT, VIEW, SUBVIEW, APP, FILE, UNIT_TEST_FILE);
private static final String SUPPORTED_QUALIFIERS_AS_STRING = join(", ", SUPPORTED_QUALIFIERS); private static final String SUPPORTED_QUALIFIERS_AS_STRING = join(", ", SUPPORTED_QUALIFIERS);


private final UserSession userSession; private final UserSession userSession;

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/favorite/ws/AddActionTest.java View File

userSession.logIn(user).addProjectPermission(USER, project); userSession.logIn(user).addProjectPermission(USER, project);


expectedException.expect(IllegalArgumentException.class); expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("Only components with qualifiers TRK, VW, APP, SVW, FIL are supported");
expectedException.expectMessage("Only components with qualifiers TRK, VW, SVW, APP, FIL, UTS are supported");


call(directory.getKey()); call(directory.getKey());
} }

Loading…
Cancel
Save