|
16 | 16 | import com.fasterxml.jackson.databind.JsonNode;
|
17 | 17 | import com.fasterxml.jackson.databind.ObjectWriter;
|
18 | 18 | import com.fasterxml.jackson.databind.node.ObjectNode;
|
| 19 | + |
19 | 20 | import io.crnk.core.engine.document.Document;
|
20 | 21 | import io.crnk.core.engine.document.ErrorData;
|
21 | 22 | import io.crnk.core.engine.document.Relationship;
|
22 | 23 | import io.crnk.core.engine.document.Resource;
|
23 | 24 | import io.crnk.core.engine.document.ResourceIdentifier;
|
24 | 25 | import io.crnk.core.engine.query.QueryAdapter;
|
| 26 | +import io.crnk.core.mock.models.BottomTask; |
25 | 27 | import io.crnk.core.mock.models.LazyTask;
|
| 28 | +import io.crnk.core.mock.models.MiddleTask; |
26 | 29 | import io.crnk.core.mock.models.Project;
|
27 | 30 | import io.crnk.core.mock.models.Schedule;
|
28 |
| -import io.crnk.core.mock.models.SpecialTask; |
29 |
| -import io.crnk.core.mock.models.SuperTask; |
30 | 31 | import io.crnk.core.mock.models.Task;
|
| 32 | +import io.crnk.core.mock.models.TopTask; |
31 | 33 | import io.crnk.core.queryspec.PathSpec;
|
32 | 34 | import io.crnk.core.queryspec.QuerySpec;
|
33 | 35 | import io.crnk.core.queryspec.internal.QuerySpecAdapter;
|
|
43 | 45 | import org.junit.Test;
|
44 | 46 | import org.mockito.Mockito;
|
45 | 47 |
|
| 48 | + |
46 | 49 | public class DocumentMapperTest extends AbstractDocumentMapperTest {
|
47 | 50 |
|
48 | 51 | @Test
|
@@ -650,25 +653,37 @@ public void testAttributesSelection() {
|
650 | 653 |
|
651 | 654 | @Test
|
652 | 655 | public void testSupertypeAttributesSelection() {
|
653 |
| - SpecialTask task = createSpecialTask(2, "sample task"); |
| 656 | + BottomTask task = createTreeTask(2, "sample task"); |
654 | 657 | task.setEnd("next month");
|
| 658 | + task.setRecurring(true); |
| 659 | + task.setPublicComment("public"); |
| 660 | + task.setPrivateComment("private"); |
| 661 | + |
655 | 662 | JsonApiResponse response = new JsonApiResponse();
|
656 | 663 | response.setEntity(task);
|
657 | 664 |
|
658 |
| - QuerySpec querySpec = new QuerySpec(SpecialTask.class); |
659 |
| - querySpec.includeField(PathSpec.of("end")); |
660 |
| - final QuerySpec superQuerySpec = new QuerySpec(SuperTask.class); |
661 |
| - superQuerySpec.includeField(PathSpec.of("name")); |
662 |
| - querySpec.setNestedSpecs(Collections.singletonList(superQuerySpec)); |
| 665 | + QuerySpec bottomQuerySpec = new QuerySpec(BottomTask.class); |
| 666 | + bottomQuerySpec.includeField(PathSpec.of("end")); |
| 667 | + QuerySpec middleQuerySpec = new QuerySpec(MiddleTask.class); |
| 668 | + middleQuerySpec.includeField(PathSpec.of("publicComment")); |
| 669 | + final QuerySpec topQuerySpec = new QuerySpec(TopTask.class); |
| 670 | + topQuerySpec.includeField(PathSpec.of("name")); |
663 | 671 |
|
664 |
| - Document document = mapper.toDocument(response, toAdapter(querySpec), mappingConfig).get(); |
| 672 | + bottomQuerySpec.setNestedSpecs(Arrays.asList(topQuerySpec, middleQuerySpec)); |
| 673 | + |
| 674 | + Document document = mapper.toDocument(response, toAdapter(bottomQuerySpec), mappingConfig).get(); |
665 | 675 | Resource resource = document.getSingleData().get();
|
666 | 676 | Assert.assertEquals("2", resource.getId());
|
667 |
| - Assert.assertEquals("specialTask", resource.getType()); |
| 677 | + Assert.assertEquals("bottomTask", resource.getType()); |
668 | 678 | Assert.assertNull(resource.getAttributes().get("category"));
|
669 | 679 | Assert.assertNull(resource.getAttributes().get("recurring"));
|
| 680 | + Assert.assertNull(resource.getAttributes().get("privateComment")); |
| 681 | + Assert.assertNotNull(resource.getAttributes().get("name")); |
| 682 | + Assert.assertNotNull(resource.getAttributes().get("end")); |
| 683 | + Assert.assertNotNull(resource.getAttributes().get("publicComment")); |
670 | 684 | Assert.assertEquals("sample task", resource.getAttributes().get("name").asText());
|
671 | 685 | Assert.assertEquals("next month", resource.getAttributes().get("end").asText());
|
| 686 | + Assert.assertEquals("public", resource.getAttributes().get("publicComment").asText()); |
672 | 687 | }
|
673 | 688 |
|
674 | 689 | @Test
|
@@ -713,8 +728,8 @@ private LazyTask createLazyTask(long id) {
|
713 | 728 | return task;
|
714 | 729 | }
|
715 | 730 |
|
716 |
| - private SpecialTask createSpecialTask(long id, String name) { |
717 |
| - SpecialTask task = new SpecialTask(); |
| 731 | + private BottomTask createTreeTask(long id, String name) { |
| 732 | + BottomTask task = new BottomTask(); |
718 | 733 | task.setId(id);
|
719 | 734 | task.setName(name);
|
720 | 735 | return task;
|
|
0 commit comments