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.Category; import org.openlca.core.model.ModelType; import org.openlca.core.model.Project; import org.openlca.core.model.descriptors.BaseDescriptor; import org.openlca.core.model.descriptors.CategorizedDescriptor; import org.openlca.core.model.descriptors.CategoryDescriptor; import org.openlca.core.model.descriptors.Descriptors; public class CategoryUseSearchTest { private IDatabase database = Tests.getDb(); private IUseSearch<CategoryDescriptor> search; @Before public void setup() { search = IUseSearch.FACTORY.createFor(ModelType.CATEGORY, database); } @Test public void testFindNoUsage() { Category category = createCategory(); List<CategorizedDescriptor> models = search.findUses(Descriptors .toDescriptor(category)); Assert.assertNotNull(models); Assert.assertTrue(models.isEmpty()); database.createDao(Category.class).delete(category); } @Test public void testFindInModel() { Category category = createCategory(); Project project = new Project(); project.setName("project"); project.setCategory(category); database.createDao(Project.class).insert(project); List<CategorizedDescriptor> results = search.findUses(Descriptors .toDescriptor(category)); database.createDao(Project.class).delete(project); database.createDao(Category.class).delete(category); BaseDescriptor expected = Descriptors.toDescriptor(project); Assert.assertEquals(1, results.size()); Assert.assertEquals(expected, results.get(0)); } private Category createCategory() { Category category = new Category(); category.setName("category"); return database.createDao(Category.class).insert(category); } @Test public void testFindInCategory() { Category category = createCategory(); Category parent = createCategory(); parent.setCategory(category); database.createDao(Category.class).update(parent); List<CategorizedDescriptor> results = search.findUses(Descriptors .toDescriptor(category)); database.createDao(Category.class).delete(category); database.createDao(Category.class).delete(parent); BaseDescriptor expected = Descriptors.toDescriptor(parent); Assert.assertEquals(1, results.size()); Assert.assertEquals(expected, results.get(0)); } }