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.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.BaseDescriptor;
import org.openlca.core.model.descriptors.CategorizedDescriptor;
import org.openlca.core.model.descriptors.Descriptors;
import org.openlca.core.model.descriptors.ProductSystemDescriptor;
public class ProductSystemUseSearchTest {
private IDatabase database = Tests.getDb();
private IUseSearch<ProductSystemDescriptor> search;
private ProductSystem system;
@Before
public void setup() {
system = new ProductSystem();
system.setName("process");
system = database.createDao(ProductSystem.class).insert(system);
search = IUseSearch.FACTORY.createFor(ModelType.PRODUCT_SYSTEM,
database);
}
@After
public void tearDown() {
database.createDao(ProductSystem.class).delete(system);
}
@Test
public void testFindNoUsage() {
List<CategorizedDescriptor> models = search.findUses(Descriptors
.toDescriptor(system));
Assert.assertNotNull(models);
Assert.assertTrue(models.isEmpty());
}
@Test
public void testFindInProjects() {
Project project = createProject();
List<CategorizedDescriptor> results = search.findUses(Descriptors
.toDescriptor(system));
database.createDao(Project.class).delete(project);
BaseDescriptor expected = Descriptors.toDescriptor(project);
Assert.assertEquals(1, results.size());
Assert.assertEquals(expected, results.get(0));
}
private Project createProject() {
Project project = new Project();
project.setName("project");
ProjectVariant variant = new ProjectVariant();
variant.setProductSystem(system);
project.getVariants().add(variant);
return database.createDao(Project.class).insert(project);
}
}