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.Actor; import org.openlca.core.model.ModelType; import org.openlca.core.model.Process; import org.openlca.core.model.ProcessDocumentation; import org.openlca.core.model.Project; import org.openlca.core.model.descriptors.ActorDescriptor; import org.openlca.core.model.descriptors.BaseDescriptor; import org.openlca.core.model.descriptors.CategorizedDescriptor; import org.openlca.core.model.descriptors.Descriptors; public class ActorUseSearchTest { private IDatabase database = Tests.getDb(); private IUseSearch<ActorDescriptor> search; @Before public void setup() { search = IUseSearch.FACTORY.createFor(ModelType.ACTOR, database); } @Test public void testFindNoUsage() { Actor actor = createActor(); List<CategorizedDescriptor> models = search.findUses(Descriptors .toDescriptor(actor)); Assert.assertNotNull(models); Assert.assertTrue(models.isEmpty()); database.createDao(Actor.class).delete(actor); } @Test public void testFindInProjects() { Actor actor = createActor(); Project project = new Project(); project.setName("project"); project.setAuthor(actor); database.createDao(Project.class).insert(project); List<CategorizedDescriptor> results = search.findUses(Descriptors .toDescriptor(actor)); database.createDao(Project.class).delete(project); database.createDao(Actor.class).delete(actor); BaseDescriptor expected = Descriptors.toDescriptor(project); Assert.assertEquals(1, results.size()); Assert.assertEquals(expected, results.get(0)); } private Actor createActor() { Actor actor = new Actor(); actor.setName("actor"); database.createDao(Actor.class).insert(actor); return actor; } @Test public void testFindInProcesses() { Actor actor = createActor(); Process process = createProcess(actor); List<CategorizedDescriptor> results = search.findUses(Descriptors .toDescriptor(actor)); database.createDao(Process.class).delete(process); database.createDao(Actor.class).delete(actor); BaseDescriptor expected = Descriptors.toDescriptor(process); Assert.assertEquals(1, results.size()); Assert.assertEquals(expected, results.get(0)); } private Process createProcess(Actor actor) { ProcessDocumentation documentation = new ProcessDocumentation(); Process process = new Process(); process.setName("process"); process.setDocumentation(documentation); process.getDocumentation().setReviewer(actor); process.getDocumentation().setDataSetOwner(actor); process.getDocumentation().setDataGenerator(actor); process.getDocumentation().setDataDocumentor(actor); database.createDao(Process.class).insert(process); return process; } }