/** * Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT * All rights reserved. Use is subject to license terms. See LICENSE.TXT */ package org.diirt.datasource; import java.util.Arrays; import static org.hamcrest.Matchers.*; import static org.junit.Assert.*; import org.junit.Test; /** * Tests the CacheCollector. * * @author carcassi */ public class CacheCollectorTest { @Test public void inputOutput() { CacheCollector<Integer> collector = new CacheCollector<>(5); assertThat(collector.readValue().size(), equalTo(0)); collector.writeValue(0); assertThat(collector.readValue(), equalTo(Arrays.asList(0))); assertThat(collector.readValue(), equalTo(Arrays.asList(0))); collector.writeValue(1); collector.writeValue(2); collector.writeValue(3); assertThat(collector.readValue(), equalTo(Arrays.asList(0,1,2,3))); assertThat(collector.readValue(), equalTo(Arrays.asList(0,1,2,3))); collector.writeValue(4); collector.writeValue(5); collector.writeValue(6); assertThat(collector.readValue(), equalTo(Arrays.asList(2,3,4,5,6))); assertThat(collector.readValue(), equalTo(Arrays.asList(2,3,4,5,6))); } @Test public void setMaxSize() { CacheCollector<Integer> collector = new CacheCollector<>(5); assertThat(collector.readValue().size(), equalTo(0)); collector.writeValue(0); collector.writeValue(1); collector.writeValue(2); collector.writeValue(3); collector.writeValue(4); assertThat(collector.readValue(), equalTo(Arrays.asList(0,1,2,3,4))); assertThat(collector.readValue(), equalTo(Arrays.asList(0,1,2,3,4))); collector.setMaxSize(2); assertThat(collector.readValue(), equalTo(Arrays.asList(3,4))); assertThat(collector.readValue(), equalTo(Arrays.asList(3,4))); collector.writeValue(5); assertThat(collector.readValue(), equalTo(Arrays.asList(4,5))); assertThat(collector.readValue(), equalTo(Arrays.asList(4,5))); collector.setMaxSize(5); collector.writeValue(6); assertThat(collector.readValue(), equalTo(Arrays.asList(4,5,6))); assertThat(collector.readValue(), equalTo(Arrays.asList(4,5,6))); collector.writeValue(7); collector.writeValue(8); collector.writeValue(9); collector.writeValue(10); assertThat(collector.readValue(), equalTo(Arrays.asList(6,7,8,9,10))); assertThat(collector.readValue(), equalTo(Arrays.asList(6,7,8,9,10))); } }