/* * Copyright (c) 2017 OBiBa. All rights reserved. * * This program and the accompanying materials * are made available under the terms of the GNU Public License v3.0. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.obiba.magma.support; import java.util.Set; import org.junit.Before; import org.junit.Test; import org.obiba.magma.ValueSet; import org.obiba.magma.ValueTable; import com.google.common.collect.Sets; import static org.fest.assertions.api.Assertions.assertThat; public class BatchDatasourceTest { private Set<String> originalEntities; @Before public void setup() { originalEntities = Sets.newLinkedHashSet(); for(int i = 1; i <= 100; i++) { originalEntities.add("" + i); } } @Test public void testBatchValueTable() { StaticDatasource originalDs = new StaticDatasource("original"); originalDs.addValueTable(new StaticValueTable(originalDs, "table", originalEntities)); BatchDatasource batchDs = new BatchDatasource(originalDs, 50); Initialisables.initialise(originalDs, batchDs); assertThat(batchDs.getValueTables()).hasSize(1); ValueTable batchedTable = batchDs.getValueTables().iterator().next(); assertThat(batchedTable.getName()).isEqualTo("table"); assertThat(batchedTable.getEntityType()).isEqualTo("Participant"); Iterable<ValueSet> batchedValueSets = batchedTable.getValueSets(); assertThat(batchedValueSets).hasSize(50); assertThat(batchedTable.hasValueSet(new VariableEntityBean("Participant", "1"))).isTrue(); assertThat(batchedTable.hasValueSet(new VariableEntityBean("Participant", "50"))).isTrue(); assertThat(batchedTable.hasValueSet(new VariableEntityBean("Participant", "51"))).isFalse(); assertThat(batchedTable.hasValueSet(new VariableEntityBean("Participant", "100"))).isFalse(); } @Test public void testHasEntities() { StaticDatasource originalDs = new StaticDatasource("original"); originalDs.addValueTable(new StaticValueTable(originalDs, "table", originalEntities)); BatchDatasource batchDs = new BatchDatasource(originalDs, 50); Initialisables.initialise(originalDs, batchDs); assertThat(originalDs.hasEntities(new EntitiesPredicate.NonViewEntitiesPredicate())).isTrue(); } @Test public void testHasNoEntities() { StaticDatasource originalDs = new StaticDatasource("original"); BatchDatasource batchDs = new BatchDatasource(originalDs, 50); Initialisables.initialise(originalDs, batchDs); assertThat(originalDs.hasEntities(new EntitiesPredicate.NonViewEntitiesPredicate())).isFalse(); } }