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); |
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=?"); |
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 |
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; |
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()); | ||||
} | } |