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.ImpactMethodDao; import org.openlca.core.database.ProjectDao; import org.openlca.core.model.ImpactMethod; import org.openlca.core.model.ModelType; import org.openlca.core.model.Project; import org.openlca.core.model.descriptors.CategorizedDescriptor; import org.openlca.core.model.descriptors.Descriptors; import org.openlca.core.model.descriptors.ImpactMethodDescriptor; public class ImpactMethodUseSearchTest { private IDatabase db = Tests.getDb(); private IUseSearch<ImpactMethodDescriptor> search; private ProjectDao projectDao; private Project project; private ImpactMethodDao impactDao; private ImpactMethod method; @Before public void setUp() { search = IUseSearch.FACTORY.createFor(ModelType.IMPACT_METHOD, db); projectDao = new ProjectDao(db); project = new Project(); project.setName("test project"); project = projectDao.insert(project); impactDao = new ImpactMethodDao(db); method = new ImpactMethod(); method.setName("test method"); method = impactDao.insert(method); } @After public void tearDown() { projectDao.delete(project); impactDao.delete(method); } @Test public void testNoUsage() { ImpactMethodDescriptor d = Descriptors.toDescriptor(method); List<CategorizedDescriptor> descriptors = search.findUses(d); Assert.assertNotNull(descriptors); Assert.assertTrue(descriptors.isEmpty()); } @Test public void testFindInProject() { project.setImpactMethodId(method.getId()); project = projectDao.update(project); ImpactMethodDescriptor d = Descriptors.toDescriptor(method); List<CategorizedDescriptor> descriptors = search.findUses(d); Assert.assertEquals(1, descriptors.size()); Assert.assertEquals(Descriptors.toDescriptor(project), descriptors.get(0)); } }