TSK-426: creation of classifications with empty id is now possible.

This commit is contained in:
Holger Hagen 2018-04-18 17:00:09 +02:00 committed by Martin Rojas Miguel Angel
parent 8307e3e7a7
commit fdfb9b65d0
3 changed files with 44 additions and 3 deletions

View File

@ -202,7 +202,7 @@ public class ClassificationServiceImpl implements ClassificationService {
*/
private void initDefaultClassificationValues(ClassificationImpl classification) throws InvalidArgumentException {
Instant now = Instant.now();
if (classification.getId() == null) {
if (classification.getId() == null || "".equals(classification.getId())) {
classification.setId(IdGenerator.generateWithPrefix(ID_PREFIX_CLASSIFICATION));
}

View File

@ -4,6 +4,11 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Collections;
import org.junit.Test;
@ -104,6 +109,38 @@ public class ClassificationControllerIntTest {
assertNotNull(response.getBody().getLink(Link.REL_PREVIOUS));
}
@Test
public void testCreateClassification() throws IOException {
String newClassification = "{\"classificationId\":\"\",\"category\":\"MANUAL\",\"domain\":\"DOMAIN_A\",\"key\":\"NEW_CLASS\",\"name\":\"new classification\",\"type\":\"TASK\"}";
// {"classificationId": "","key": "aaaaa","parentId": "","category": "EXTERN","type": "TASK","domain": ""
URL url = new URL("http://127.0.0.1:" + port + "/v1/classifications");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Authorization", "Basic dGVhbWxlYWRfMTp0ZWFtbGVhZF8x");
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "application/json");
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(con.getOutputStream()));
out.write(newClassification);
out.flush();
out.close();
assertEquals(201, con.getResponseCode());
con.disconnect();
newClassification = "{\"classificationId\":\"\",\"category\":\"MANUAL\",\"domain\":\"DOMAIN_A\",\"key\":\"NEW_CLASS_2\",\"name\":\"new classification\",\"type\":\"TASK\"}";
url = new URL("http://127.0.0.1:" + port + "/v1/classifications");
con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Authorization", "Basic dGVhbWxlYWRfMTp0ZWFtbGVhZF8x");
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "application/json");
out = new BufferedWriter(new OutputStreamWriter(con.getOutputStream()));
out.write(newClassification);
out.flush();
out.close();
assertEquals(201, con.getResponseCode());
con.disconnect();
}
@Test
public void testGetClassificationWithSpecialCharacter() {
RestTemplate template = getRestTemplate();

View File

@ -48,8 +48,12 @@ public class ClassificationResourceAssembler {
BeanUtils.copyProperties(classificationResource, classification);
classification.setId(classificationResource.getClassificationId());
classification.setCreated(Instant.parse(classificationResource.getCreated()));
classification.setModified(Instant.parse(classificationResource.getModified()));
if (classificationResource.getCreated() != null) {
classification.setCreated(Instant.parse(classificationResource.getCreated()));
}
if (classificationResource.getModified() != null) {
classification.setModified(Instant.parse(classificationResource.getModified()));
}
return classification;
}