Skip to content

Commit

Permalink
Create TypeId4607Test.java (#4608)
Browse files Browse the repository at this point in the history
  • Loading branch information
JooHyukKim authored Jul 3, 2024
1 parent d3969f8 commit 0359e64
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions src/test/java/com/fasterxml/jackson/failing/TypeId4607Test.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package com.fasterxml.jackson.failing;

import java.util.List;

import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import com.fasterxml.jackson.databind.ObjectMapper;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import static com.fasterxml.jackson.databind.BaseMapTest.newJsonMapper;

public class TypeId4607Test {

@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME)
@JsonSubTypes({
@JsonSubTypes.Type(value = EnumTypeDefinition.class, name = "enum"),
@JsonSubTypes.Type(value = NumberTypeDefinition.class, name = "number")
})
interface TypeDefinition {
}

static class EnumTypeDefinition implements TypeDefinition {
public List<String> values;
}

static class NumberTypeDefinition implements TypeDefinition {
}

private static final ObjectMapper mapper = newJsonMapper();

@Test
public void shouldHandleTypeDefinitionJson() throws Exception {
String input = "{" +
" \"@type\": \"number\" " +
" }";

TypeDefinition model = mapper.readValue(input, TypeDefinition.class);

Assertions.assertInstanceOf(NumberTypeDefinition.class, model);
}
}

0 comments on commit 0359e64

Please sign in to comment.