/* * Copyright 2011-2014 Proofpoint, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.proofpoint.event.collector; import com.proofpoint.event.collector.EventCounters.Counter; import com.proofpoint.event.collector.EventCounters.CounterState; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import static org.testng.Assert.assertEquals; public class TestEventCounters { private Counter counter; private EventCounters<String> counters; @BeforeMethod public void setUp() throws Exception { counter = new Counter(); counters = new EventCounters<>(); } @Test public void testCounterInitiallyZero() throws Exception { assertCounterValues(counter.getState(), 0, 0); } @Test public void testTransferredCounter() throws Exception { counter.recordReceived(1); assertCounterValues(counter.getState(), 1, 0); counter.recordReceived(10); assertCounterValues(counter.getState(), 11, 0); } @Test public void testLostCounter() throws Exception { counter.recordLost(1); assertCounterValues(counter.getState(), 0, 1); counter.recordLost(10); assertCounterValues(counter.getState(), 0, 11); } private void assertCounterValues(CounterState counterState, long transferred, long lost) { assertEquals(counterState.getReceived(), transferred); assertEquals(counterState.getLost(), lost); } @Test public void testTransferredCount() throws Exception { counters.recordReceived("foo", 10); assertCounterValues(counters.getCounts().get("foo"), 10, 0); counters.recordReceived("foo", 0); assertCounterValues(counters.getCounts().get("foo"), 10, 0); counters.recordReceived("foo", 50); assertCounterValues(counters.getCounts().get("foo"), 60, 0); counters.recordReceived("bar", 1); assertCounterValues(counters.getCounts().get("foo"), 60, 0); assertCounterValues(counters.getCounts().get("bar"), 1, 0); } @Test public void testLostCount() throws Exception { counters.recordLost("foo", 10); assertCounterValues(counters.getCounts().get("foo"), 0, 10); counters.recordLost("foo", 0); assertCounterValues(counters.getCounts().get("foo"), 0, 10); counters.recordLost("foo", 50); assertCounterValues(counters.getCounts().get("foo"), 0, 60); counters.recordLost("bar", 1); assertCounterValues(counters.getCounts().get("foo"), 0, 60); assertCounterValues(counters.getCounts().get("bar"), 0, 1); } @Test public void testClearCounters() throws Exception { counters.recordReceived("foo", 1); counters.recordReceived("bar", 1); counters.recordLost("foo", 1); counters.recordLost("bar", 1); assertCounterValues(counters.getCounts().get("foo"), 1, 1); assertCounterValues(counters.getCounts().get("bar"), 1, 1); counters.resetCounts(); assertEquals(counters.getCounts().size(), 0); } }