package org.openlca.core.database.usage; import java.util.List; import org.junit.After; 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.database.ProductSystemDao; import org.openlca.core.database.ProjectDao; import org.openlca.core.model.ModelType; import org.openlca.core.model.ProductSystem; import org.openlca.core.model.Project; import org.openlca.core.model.ProjectVariant; import org.openlca.core.model.descriptors.CategorizedDescriptor; import org.openlca.core.model.descriptors.Descriptors; import org.openlca.core.model.descriptors.ProductSystemDescriptor; public class SystemUseSearchTest { private IDatabase db = Tests.getDb(); private IUseSearch<ProductSystemDescriptor> search; private ProjectDao projectDao; private Project project; private ProductSystemDao systemDao; private ProductSystem system; @Before public void setUp() { search = IUseSearch.FACTORY.createFor(ModelType.PRODUCT_SYSTEM, db); projectDao = new ProjectDao(db); project = new Project(); project.setName("test project"); project = projectDao.insert(project); systemDao = new ProductSystemDao(db); system = new ProductSystem(); system.setName("test system"); system = systemDao.insert(system); } @After public void tearDown() { projectDao.delete(project); systemDao.delete(system); } @Test public void testNoUsage() { ProductSystemDescriptor d = Descriptors.toDescriptor(system); List<CategorizedDescriptor> descriptors = search.findUses(d); Assert.assertNotNull(descriptors); Assert.assertTrue(descriptors.isEmpty()); } @Test public void testFindInProject() { ProjectVariant variant = new ProjectVariant(); variant.setProductSystem(system); project.getVariants().add(variant); project = projectDao.update(project); ProductSystemDescriptor d = Descriptors.toDescriptor(system); List<CategorizedDescriptor> descriptors = search.findUses(d); Assert.assertEquals(1, descriptors.size()); Assert.assertEquals(Descriptors.toDescriptor(project), descriptors.get(0)); } }