Fix deserialization of embedded values in HAL objects (#1630)

The embedded avatar object of the repository avatar plugin
leads to an exception without this configuration, when
a repository json object is deserialized. This happens
for example when the description of a repository should
be modified.
This commit is contained in:
René Pfeuffer
2021-04-26 08:11:13 +02:00
committed by GitHub
parent 26c04a2f8b
commit 6cd8fc5ba4
3 changed files with 13 additions and 2 deletions

View File

@@ -21,10 +21,11 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package sonia.scm.api.rest;
import com.fasterxml.jackson.core.JsonProcessingException;
import de.otto.edison.hal.HalRepresentation;
import org.junit.jupiter.api.Test;
import java.time.ZoneId;
@@ -45,4 +46,10 @@ class ObjectMapperProviderTest {
assertThat(value).isEqualTo("\"2020-02-04T14:21:42Z\"");
}
@Test
void shouldDeserializeEmbeddedObjects() throws JsonProcessingException {
HalRepresentation halRepresentation = provider.get().readValue("{\"_embedded\": {\"avatar\": {\"type\": \"AUTO_GENERATED\"}}}", HalRepresentation.class);
assertThat(halRepresentation.getEmbedded().getItemsBy("avatar")).hasSize(1);
}
}