package org.teiid.translator.document; import static org.junit.Assert.*; import java.util.Arrays; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.junit.Test; public class TestResponseDocument { private Map<String, Object> map(String... items){ Map<String, Object> map = new LinkedHashMap<String, Object>(); for (int i = 0; i < items.length; i+=2) { map.put(items[i], items[i+1]); } return map; } @SuppressWarnings("unchecked") @Test public void testFlatten() { Document doc = new Document(); doc.addProperty("A", "AA"); doc.addProperty("B", "BB"); Document c1 = new Document("c1", false, doc); c1.addProperty("1", "11"); Document c2 = new Document("c1", false, doc); c2.addProperty("2", "22"); doc.addChildDocuments("c1", Arrays.asList(c1, c2)); Document c4 = new Document("c2", false, doc); c4.addProperty("4", "44"); Document c5 = new Document("c2", false, doc); c5.addProperty("5", "55"); doc.addChildDocuments("c2", Arrays.asList(c4, c5)); List<Map<String, Object>> result = doc.flatten(); //System.out.println(result); List<Map<String, Object>> expected = Arrays.asList( map("A", "AA", "B", "BB", "c1/1", "11", "c2/4","44"), map("A", "AA", "B", "BB", "c1/2", "22", "c2/4", "44"), map("A", "AA", "B", "BB", "c1/1","11", "c2/5", "55"), map("A", "AA", "B", "BB", "c1/2", "22", "c2/5", "55")); assertArrayEquals(expected.toArray(), result.toArray()); } }