package org.springframework.data.simpledb.util;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
public class MapUtilsTest {
private final static int SAMPLE_MAP_SIZE = 256;
@Test
public void splitToChunksOfSize_should_split_entries_exceeding_size() throws Exception {
Map<String, List<String>> attributes = new LinkedHashMap<String, List<String>>();
for(int i = 0; i < SAMPLE_MAP_SIZE + 100; i++) {
List<String> list = new ArrayList<String>();
list.add("Value: " + i);
attributes.put("Key: " + i, list);
}
List<Map<String, List<String>>> chunks = MapUtils.splitToChunksOfSize(attributes, SAMPLE_MAP_SIZE);
assertEquals(2, chunks.size());
Map<String, List<String>> firstChunk = chunks.get(0);
assertEquals(SAMPLE_MAP_SIZE, firstChunk.size());
Map<String, List<String>> secondChunk = chunks.get(1);
assertEquals(100, secondChunk.size());
assertTrue(secondChunk.containsKey("Key: " + 256));
assertTrue(secondChunk.containsKey("Key: " + 355));
}
}