package com.taobao.tddl.rule.utils; import org.junit.Assert; import org.junit.Test; import com.taobao.tddl.rule.model.AdvancedParameter; import com.taobao.tddl.rule.model.AdvancedParameter.AtomIncreaseType; import com.taobao.tddl.rule.model.AdvancedParameter.Range; public class AdvancedParameterParserTest { @Test public void test_正常() { String param = "id,1_number,1024"; AdvancedParameter result = AdvancedParameterParser.getAdvancedParamByParamTokenNew(param, false); testResult(result, AtomIncreaseType.NUMBER, 1, 1024); param = "id,1024"; result = AdvancedParameterParser.getAdvancedParamByParamTokenNew(param, false); testResult(result, AtomIncreaseType.NUMBER, 1, 1024); } @Test public void test_范围() { String param = "id,1_number,0_1024|1m_1g"; AdvancedParameter result = AdvancedParameterParser.getAdvancedParamByParamTokenNew(param, false); testResult(result, AtomIncreaseType.NUMBER, new AdvancedParameter.Range[] { getRange(0, 1024), getRange(1 * 1000000, 1 * 1000000000) }, 1); param = "id,0_1024|1m_1g"; result = AdvancedParameterParser.getAdvancedParamByParamTokenNew(param, false); testResult(result, AtomIncreaseType.NUMBER, new AdvancedParameter.Range[] { getRange(0, 1024), getRange(1 * 1000000, 1 * 1000000000) }, 1); } private void testResult(AdvancedParameter result, AtomIncreaseType type, Comparable atomicIncreateValue, Integer cumulativeTimes) { Assert.assertEquals(result.atomicIncreateType, type); Assert.assertEquals(result.atomicIncreateValue, atomicIncreateValue); Assert.assertEquals(result.cumulativeTimes, cumulativeTimes); } private void testResult(AdvancedParameter result, AtomIncreaseType type, Range[] rangeValue, Integer atomicIncreateValue) { Assert.assertEquals(result.atomicIncreateType, type); Assert.assertEquals(result.atomicIncreateValue, atomicIncreateValue); int i = 0; for (Range range : result.rangeArray) { Assert.assertEquals(range.start, rangeValue[i].start); Assert.assertEquals(range.end, rangeValue[i].end); i++; } } private AdvancedParameter.Range getRange(int start, int end) { return new AdvancedParameter.Range(start, end); } }