Posted feedback without "result" cause NPE in DDI API (#399)

* Fix for the bug by using @Valid on member variables

- add junit test
- done some refactoring

Signed-off-by: Jonathan Philip Knoblauch <JonathanPhilip.Knoblauch@bosch-si.com>

* Refactoring of junit tests

Signed-off-by: Jonathan Philip Knoblauch <JonathanPhilip.Knoblauch@bosch-si.com>
This commit is contained in:
Jonathan Knoblauch
2017-01-11 11:23:48 +01:00
committed by Kai Zimmermann
parent 5707e5908a
commit 824ef2982f
6 changed files with 146 additions and 66 deletions

View File

@@ -8,6 +8,7 @@
*/
package org.eclipse.hawkbit.ddi.json.model;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonCreator;
@@ -40,6 +41,7 @@ public class DdiActionFeedback {
private final String time;
@NotNull
@Valid
private final DdiStatus status;
/**

View File

@@ -8,7 +8,8 @@
*/
package org.eclipse.hawkbit.ddi.json.model;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -20,7 +21,8 @@ import com.fasterxml.jackson.annotation.JsonValue;
*/
public class DdiResult {
@NotEmpty
@NotNull
@Valid
private final FinalResult finished;
private final DdiProgress progress;

View File

@@ -11,6 +11,7 @@ package org.eclipse.hawkbit.ddi.json.model;
import java.util.Collections;
import java.util.List;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonCreator;
@@ -23,9 +24,11 @@ import com.fasterxml.jackson.annotation.JsonValue;
public class DdiStatus {
@NotNull
@Valid
private final ExecutionStatus execution;
@NotNull
@Valid
private final DdiResult result;
private final List<String> details;
@@ -60,8 +63,8 @@ public class DdiStatus {
public List<String> getDetails() {
if (details == null) {
return Collections.emptyList();
}
}
return Collections.unmodifiableList(details);
}