package com.microsoft.applicationinsights.internal.util; import org.junit.Test; import static org.junit.Assert.*; public final class LimitsEnforcerTest { private final static String MOCK_PROPERTY_NAME = "MockProperty"; @Test(expected = IllegalStateException.class) public void testCreateDefaultOnErrorMinBiggerThanMax() { LimitsEnforcer.createWithDefaultOnError(MOCK_PROPERTY_NAME, 10, 9, 10, 10); } @Test(expected = IllegalStateException.class) public void testCreateDefaultOnErrorDefaultNotBetweenMinAndMax() { LimitsEnforcer.createWithDefaultOnError(MOCK_PROPERTY_NAME, 10, 900, -10, 10); } @Test public void testCreateDefaultOnErrorCurrentValueLowerThanMin() { LimitsEnforcer enforcer = LimitsEnforcer.createWithDefaultOnError(MOCK_PROPERTY_NAME, 10, 900, 100, -10); assertEquals(100, enforcer.getCurrentValue()); } @Test public void testCreateDefaultOnErrorCurrentValueHigherThanMax() { LimitsEnforcer enforcer = LimitsEnforcer.createWithDefaultOnError(MOCK_PROPERTY_NAME, 10, 900, 100, 1000); assertEquals(100, enforcer.getCurrentValue()); } @Test public void testCreateDefaultOnErrorCurrentValueIsNull() { LimitsEnforcer enforcer = LimitsEnforcer.createWithDefaultOnError(MOCK_PROPERTY_NAME, 10, 900, 100, null); assertEquals(100, enforcer.getCurrentValue()); assertEquals(10, enforcer.getMinimum()); assertEquals(900, enforcer.getMaximum()); assertEquals(100, enforcer.getDefaultValue()); } @Test public void testCreateDefaultOnErrorCurrentValueWithinLimits() { LimitsEnforcer enforcer = LimitsEnforcer.createWithDefaultOnError(MOCK_PROPERTY_NAME, 10, 900, 100, 200); assertEquals(200, enforcer.getCurrentValue()); } @Test public void testCreateDefaultOnErrorNewCurrentValueHigherThanMax() { LimitsEnforcer enforcer = LimitsEnforcer.createWithDefaultOnError(MOCK_PROPERTY_NAME, 10, 900, 100, 200); enforcer.normalizeValue(1000); assertEquals(100, enforcer.getCurrentValue()); } @Test public void testCreateDefaultOnErrorNewCurrentValueLowerThanMin() { LimitsEnforcer enforcer = LimitsEnforcer.createWithDefaultOnError(MOCK_PROPERTY_NAME, 10, 900, 100, 200); enforcer.normalizeValue(-1000); assertEquals(100, enforcer.getCurrentValue()); } @Test public void testCreateDefaultOnErrorNewCurrentValueWithinLimits() { LimitsEnforcer enforcer = LimitsEnforcer.createWithDefaultOnError(MOCK_PROPERTY_NAME, 10, 900, 100, 200); enforcer.normalizeValue(700); assertEquals(700, enforcer.getCurrentValue()); } @Test public void testCreateDefaultOnErrorNewCurrentValueIsNull() { LimitsEnforcer enforcer = LimitsEnforcer.createWithDefaultOnError(MOCK_PROPERTY_NAME, 10, 900, 100, 200); enforcer.normalizeValue(null); assertEquals(100, enforcer.getCurrentValue()); } // @Test(expected = IllegalStateException.class) public void testCreateClosestOnErrorMinBiggerThanMax() { LimitsEnforcer.createWithClosestLimitOnError(MOCK_PROPERTY_NAME, 10, 9, 10, 10); } @Test(expected = IllegalStateException.class) public void testCreateClosestOnErrorDefaultNotBetweenMinAndMax() { LimitsEnforcer.createWithClosestLimitOnError(MOCK_PROPERTY_NAME, 10, 900, -10, 10); } @Test public void testCreateClosestOnErrorCurrentValueLowerThanMin() { LimitsEnforcer enforcer = LimitsEnforcer.createWithClosestLimitOnError(MOCK_PROPERTY_NAME, 10, 900, 100, -10); assertEquals(10, enforcer.getCurrentValue()); } @Test public void testCreateClosestOnErrorCurrentValueHigherThanMax() { LimitsEnforcer enforcer = LimitsEnforcer.createWithClosestLimitOnError(MOCK_PROPERTY_NAME, 10, 900, 100, 1000); assertEquals(900, enforcer.getCurrentValue()); } @Test public void testCreateClosestOnErrorCurrentValueIsNull() { LimitsEnforcer enforcer = LimitsEnforcer.createWithClosestLimitOnError(MOCK_PROPERTY_NAME, 10, 900, 100, null); assertEquals(100, enforcer.getCurrentValue()); } @Test public void testCreateClosestOnErrorCurrentValueWithinLimits() { LimitsEnforcer enforcer = LimitsEnforcer.createWithClosestLimitOnError(MOCK_PROPERTY_NAME, 10, 900, 100, 200); assertEquals(200, enforcer.getCurrentValue()); } @Test public void testCreateClosestOnErrorNewCurrentValueHigherThanMax() { LimitsEnforcer enforcer = LimitsEnforcer.createWithClosestLimitOnError(MOCK_PROPERTY_NAME, 10, 900, 100, 200); enforcer.normalizeValue(1000); assertEquals(900, enforcer.getCurrentValue()); } @Test public void testCreateClosestOnErrorNewCurrentValueLowerThanMin() { LimitsEnforcer enforcer = LimitsEnforcer.createWithClosestLimitOnError(MOCK_PROPERTY_NAME, 10, 900, 100, 200); enforcer.normalizeValue(-1000); assertEquals(10, enforcer.getCurrentValue()); } @Test public void testCreateClosestOnErrorNewCurrentValueWithinLimits() { LimitsEnforcer enforcer = LimitsEnforcer.createWithClosestLimitOnError(MOCK_PROPERTY_NAME, 10, 900, 100, 200); enforcer.normalizeValue(700); assertEquals(700, enforcer.getCurrentValue()); } @Test public void testCreateClosestOnErrorNewCurrentValueIsNull() { LimitsEnforcer enforcer = LimitsEnforcer.createWithClosestLimitOnError(MOCK_PROPERTY_NAME, 10, 900, 100, 200); enforcer.normalizeValue(null); assertEquals(100, enforcer.getCurrentValue()); } @Test public void testCreateClosestOnErrorNewStringCurrentValueIsNull() { LimitsEnforcer enforcer = LimitsEnforcer.createWithClosestLimitOnError(MOCK_PROPERTY_NAME, 10, 900, 100, 200); enforcer.normalizeStringValue(null); assertEquals(100, enforcer.getCurrentValue()); } @Test public void testCreateClosestOnErrorNewStringCurrentValueWithinLimits() { LimitsEnforcer enforcer = LimitsEnforcer.createWithClosestLimitOnError(MOCK_PROPERTY_NAME, 10, 900, 100, 200); enforcer.normalizeStringValue("700"); assertEquals(700, enforcer.getCurrentValue()); } }