*/
package org.sonar.server.component;
-import org.sonar.core.component.ComponentKeys;
-
import com.google.common.base.Strings;
import org.sonar.api.component.Component;
import org.sonar.api.component.RubyComponentService;
import org.sonar.core.component.ComponentDto;
+import org.sonar.core.component.ComponentKeys;
import org.sonar.core.resource.ResourceDao;
import org.sonar.core.resource.ResourceDto;
import org.sonar.core.resource.ResourceIndexerDao;
if (component != null) {
throw new BadRequestException("Could not create resource, key already exists: "+kee);
}
- if (!ComponentKeys.isValidModuleKey(kee)) {
- throw new BadRequestException("Could not create resource, malformed key: "+kee);
- }
+ checkKeyFormat(kee);
resourceDao.insertOrUpdate(
new ResourceDto()
if (resource == null) {
throw new NotFoundException();
}
+ checkKeyFormat(key);
+
resourceDao.insertOrUpdate(resource.setKey(key).setName(name));
}
return builder.build();
}
+ private static void checkKeyFormat(String kee) {
+ if (!ComponentKeys.isValidModuleKey(kee)) {
+ throw new BadRequestException("Could not create resource, malformed key: "+kee);
+ }
+ }
}
package org.sonar.server.component;
-import org.sonar.server.exceptions.NotFoundException;
-
-import org.sonar.server.exceptions.BadRequestException;
-import org.sonar.core.resource.ResourceDto;
+import org.junit.Before;
+import org.junit.Test;
import org.mockito.ArgumentCaptor;
+import org.sonar.api.component.Component;
import org.sonar.api.resources.Qualifiers;
import org.sonar.api.resources.Scopes;
import org.sonar.core.component.ComponentDto;
-import org.sonar.core.resource.ResourceIndexerDao;
-import org.junit.Before;
-import org.junit.Test;
-import org.sonar.api.component.Component;
import org.sonar.core.resource.ResourceDao;
+import org.sonar.core.resource.ResourceDto;
+import org.sonar.core.resource.ResourceIndexerDao;
+import org.sonar.server.exceptions.BadRequestException;
+import org.sonar.server.exceptions.NotFoundException;
import java.util.List;
import java.util.Map;
import static com.google.common.collect.Maps.newHashMap;
import static org.fest.assertions.Assertions.assertThat;
import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.*;
+import static org.mockito.Matchers.anyListOf;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
public class DefaultRubyComponentServiceTest {
verify(resourceDao).insertOrUpdate(resource);
}
+ @Test(expected=BadRequestException.class)
+ public void should_throw_if_malformed_key_in_update() {
+ final long componentId = 1234l;
+ final String newKey = "new/key";
+ final String newName = "newName";
+ ResourceDto resource = mock(ResourceDto.class);
+ when(resourceDao.getResource(componentId)).thenReturn(resource);
+ componentService.updateComponent(componentId, newKey, newName);
+ }
+
@Test
public void should_find() {
List<String> qualifiers = newArrayList("TRK");