package com.aliyun.openservices.log.producer.inner; import com.aliyun.openservices.log.common.LogItem; import com.aliyun.openservices.log.producer.ProducerConfig; import org.junit.Test; import static org.junit.Assert.*; import java.util.ArrayList; import java.util.List; public class PackageManagerTest { @Test public void testSplitLogItems_10_21() { ProducerConfig producerConfig = new ProducerConfig(); producerConfig.logsCountPerPackage = 10; PackageManager packageManager = new PackageManager(producerConfig, new ClientPool(producerConfig)); List<LogItem> srcLogItems = new ArrayList<LogItem>(); for (int i = 0; i < 21; ++i) { LogItem logItem = new LogItem(); srcLogItems.add(logItem); } List<List<LogItem>> sepLogItems = packageManager.splitLogItems(srcLogItems); assertEquals(3, sepLogItems.size()); assertEquals(producerConfig.logsCountPerPackage, sepLogItems.get(0).size()); assertEquals(producerConfig.logsCountPerPackage, sepLogItems.get(1).size()); assertEquals(1, sepLogItems.get(2).size()); } @Test public void testSplitLogItems_10_30() { ProducerConfig producerConfig = new ProducerConfig(); producerConfig.logsCountPerPackage = 10; PackageManager packageManager = new PackageManager(producerConfig, new ClientPool(producerConfig)); List<LogItem> srcLogItems = new ArrayList<LogItem>(); for (int i = 0; i < 30; ++i) { LogItem logItem = new LogItem(); srcLogItems.add(logItem); } List<List<LogItem>> sepLogItems = packageManager.splitLogItems(srcLogItems); assertEquals(3, sepLogItems.size()); assertEquals(producerConfig.logsCountPerPackage, sepLogItems.get(0).size()); assertEquals(producerConfig.logsCountPerPackage, sepLogItems.get(1).size()); assertEquals(producerConfig.logsCountPerPackage, sepLogItems.get(2).size()); } @Test public void testSplitLogItems_10_0() { ProducerConfig producerConfig = new ProducerConfig(); producerConfig.logsCountPerPackage = 10; PackageManager packageManager = new PackageManager(producerConfig, new ClientPool(producerConfig)); List<LogItem> srcLogItems = new ArrayList<LogItem>(); List<List<LogItem>> sepLogItems = packageManager.splitLogItems(srcLogItems); assertEquals(0, sepLogItems.size()); } @Test public void testSplitLogItems_default_4096() { ProducerConfig producerConfig = new ProducerConfig(); PackageManager packageManager = new PackageManager(producerConfig, new ClientPool(producerConfig)); List<LogItem> srcLogItems = new ArrayList<LogItem>(); for (int i = 0; i < 4096; ++i) { LogItem logItem = new LogItem(); srcLogItems.add(logItem); } List<List<LogItem>> sepLogItems = packageManager.splitLogItems(srcLogItems); assertEquals(1, sepLogItems.size()); assertEquals(producerConfig.logsCountPerPackage, sepLogItems.get(0).size()); } }