package org.openlca.core.database.usage; import java.util.List; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.openlca.core.Tests; import org.openlca.core.database.IDatabase; import org.openlca.core.model.DQSystem; import org.openlca.core.model.ModelType; import org.openlca.core.model.Process; import org.openlca.core.model.descriptors.BaseDescriptor; import org.openlca.core.model.descriptors.CategorizedDescriptor; import org.openlca.core.model.descriptors.DQSystemDescriptor; import org.openlca.core.model.descriptors.Descriptors; public class DQSystemUseSearchTest { private IDatabase database = Tests.getDb(); private IUseSearch<DQSystemDescriptor> search; @Before public void setup() { search = IUseSearch.FACTORY.createFor(ModelType.DQ_SYSTEM, database); } @Test public void testFindNoUsage() { DQSystem system = createDqSystem(); List<CategorizedDescriptor> models = search.findUses(Descriptors .toDescriptor(system)); Assert.assertNotNull(models); Assert.assertTrue(models.isEmpty()); database.createDao(DQSystem.class).delete(system); } private DQSystem createDqSystem() { DQSystem system = new DQSystem(); system.setName("system"); system = database.createDao(DQSystem.class).insert(system); return system; } @Test public void testFindInProcessDirect() { DQSystem system = createDqSystem(); Process process = new Process(); process.dqSystem = system; database.createDao(Process.class).insert(process); List<CategorizedDescriptor> results = search.findUses(Descriptors .toDescriptor(system)); database.createDao(Process.class).delete(process); database.createDao(DQSystem.class).delete(system); BaseDescriptor expected = Descriptors.toDescriptor(process); Assert.assertEquals(1, results.size()); Assert.assertEquals(expected, results.get(0)); } @Test public void testFindInProcessExchange() { DQSystem system = createDqSystem(); Process process = new Process(); process.exchangeDqSystem = system; database.createDao(Process.class).insert(process); List<CategorizedDescriptor> results = search.findUses(Descriptors .toDescriptor(system)); database.createDao(Process.class).delete(process); database.createDao(DQSystem.class).delete(system); BaseDescriptor expected = Descriptors.toDescriptor(process); Assert.assertEquals(1, results.size()); Assert.assertEquals(expected, results.get(0)); } @Test public void testFindInProcessSocial() { DQSystem system = createDqSystem(); Process process = new Process(); process.socialDqSystem = system; database.createDao(Process.class).insert(process); List<CategorizedDescriptor> results = search.findUses(Descriptors .toDescriptor(system)); database.createDao(Process.class).delete(process); database.createDao(DQSystem.class).delete(system); BaseDescriptor expected = Descriptors.toDescriptor(process); Assert.assertEquals(1, results.size()); Assert.assertEquals(expected, results.get(0)); } }