package org.ovirt.engine.core.bll.network.macpool;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import org.junit.Test;
public class ObjectCounterTest {
@Test
public void testIncreaseNoDuplicates() throws Exception {
final ObjectCounter<Integer> objectCounter = new ObjectCounter<>(false);
assertThat(objectCounter.increase(1), is(true));
assertThat(objectCounter.increase(1), is(false));
assertThat(objectCounter.increase(2), is(true));
assertThat(objectCounter.increase(-3), is(true));
assertThat(objectCounter.contains(0), is(false));
assertThat(objectCounter.contains(1), is(true));
assertThat(objectCounter.contains(2), is(true));
assertThat(objectCounter.contains(-3), is(true));
}
@Test
public void testIncreaseWithDuplicates() throws Exception {
final ObjectCounter<Integer> objectCounter = new ObjectCounter<>(true);
assertThat(objectCounter.increase(1), is(true));
assertThat(objectCounter.increase(1), is(true));
assertThat(objectCounter.increase(2), is(true));
assertThat(objectCounter.increase(-3), is(true));
assertThat(objectCounter.contains(0), is(false));
assertThat(objectCounter.contains(1), is(true));
assertThat(objectCounter.contains(2), is(true));
assertThat(objectCounter.contains(-3), is(true));
}
@Test
public void testDecreaseNoDuplicates() throws Exception {
final ObjectCounter<Integer> objectCounter = new ObjectCounter<>(false);
objectCounter.increase(1);
objectCounter.increase(2);
assertThat(objectCounter.contains(0), is(false));
objectCounter.decrease(0);
assertThat(objectCounter.contains(0), is(false));
assertThat(objectCounter.contains(1), is(true));
objectCounter.decrease(1);
assertThat(objectCounter.contains(1), is(false));
}
@Test
public void testDecreaseWithDuplicates() throws Exception {
final ObjectCounter<Integer> objectCounter = new ObjectCounter<>(true);
objectCounter.increase(1);
objectCounter.increase(1);
objectCounter.increase(2);
assertThat(objectCounter.contains(0), is(false));
objectCounter.decrease(0);
assertThat(objectCounter.contains(0), is(false));
assertThat(objectCounter.contains(1), is(true));
objectCounter.decrease(1);
assertThat(objectCounter.contains(1), is(true));
objectCounter.decrease(1);
assertThat(objectCounter.contains(1), is(false));
assertThat(objectCounter.contains(2), is(true));
objectCounter.decrease(2);
assertThat(objectCounter.contains(2), is(false));
}
}