CCM NG: An additional test.
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4244 8810af33-2d31-482b-a856-94f89814c4dfpull/2/head
parent
1dccc276d0
commit
0885701a9c
|
|
@ -47,6 +47,8 @@ import org.libreccm.security.Shiro;
|
||||||
import org.libreccm.tests.categories.IntegrationTest;
|
import org.libreccm.tests.categories.IntegrationTest;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
@ -86,6 +88,9 @@ public class CategoryManagerTest {
|
||||||
@Inject
|
@Inject
|
||||||
private Subject subject;
|
private Subject subject;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private TestCategoryController controller;
|
||||||
|
|
||||||
@PersistenceContext(name = "LibreCCM")
|
@PersistenceContext(name = "LibreCCM")
|
||||||
private EntityManager entityManager;
|
private EntityManager entityManager;
|
||||||
|
|
||||||
|
|
@ -582,7 +587,7 @@ public class CategoryManagerTest {
|
||||||
categoryManager.addSubCategoryToCategory(test, categories);
|
categoryManager.addSubCategoryToCategory(test, categories);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@UsingDataSet(
|
@UsingDataSet(
|
||||||
"datasets/org/libreccm/categorization/CategoryManagerTest/data.yml")
|
"datasets/org/libreccm/categorization/CategoryManagerTest/data.yml")
|
||||||
|
|
@ -590,11 +595,11 @@ public class CategoryManagerTest {
|
||||||
public void hasIndexObject() {
|
public void hasIndexObject() {
|
||||||
final Category category1 = categoryRepo.findById(-2100L);
|
final Category category1 = categoryRepo.findById(-2100L);
|
||||||
final Category category2 = categoryRepo.findById(-2200L);
|
final Category category2 = categoryRepo.findById(-2200L);
|
||||||
|
|
||||||
assertThat(categoryManager.hasIndexObject(category1), is(false));
|
assertThat(categoryManager.hasIndexObject(category1), is(false));
|
||||||
assertThat(categoryManager.hasIndexObject(category2), is(true));
|
assertThat(categoryManager.hasIndexObject(category2), is(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@UsingDataSet(
|
@UsingDataSet(
|
||||||
"datasets/org/libreccm/categorization/CategoryManagerTest/data.yml")
|
"datasets/org/libreccm/categorization/CategoryManagerTest/data.yml")
|
||||||
|
|
@ -602,14 +607,39 @@ public class CategoryManagerTest {
|
||||||
public void getIndexObject() {
|
public void getIndexObject() {
|
||||||
final Category category1 = categoryRepo.findById(-2100L);
|
final Category category1 = categoryRepo.findById(-2100L);
|
||||||
final Category category2 = categoryRepo.findById(-2200L);
|
final Category category2 = categoryRepo.findById(-2200L);
|
||||||
|
|
||||||
assertThat(categoryManager.getIndexObject(category1).isPresent(),
|
assertThat(categoryManager.getIndexObject(category1).isPresent(),
|
||||||
is(false));
|
is(false));
|
||||||
|
|
||||||
final Optional<CcmObject> index2 = categoryManager.getIndexObject(
|
final Optional<CcmObject> index2 = categoryManager.getIndexObject(
|
||||||
category2);
|
category2);
|
||||||
assertThat(index2.isPresent(), is(true));
|
assertThat(index2.isPresent(), is(true));
|
||||||
assertThat(index2.get().getDisplayName(), is(equalTo("object3")));
|
assertThat(index2.get().getDisplayName(), is(equalTo("object3")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is a test to check if accessing multiple lazy fetched collections in
|
||||||
|
* a single transaction (provided by
|
||||||
|
* {@link TestCategoryController#getData(long)}) works.
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
@UsingDataSet(
|
||||||
|
"datasets/org/libreccm/categorization/CategoryManagerTest/data.yml")
|
||||||
|
@InSequence(7000)
|
||||||
|
public void retrieveMultipleLazyCollections() {
|
||||||
|
assertThat(controller, is(not(nullValue())));
|
||||||
|
|
||||||
|
final Map<String, List<String>> data = controller.getData(-2100L);
|
||||||
|
|
||||||
|
final List<String> subCategories = data.get("subCategories");
|
||||||
|
final List<String> objects = data.get("objects");
|
||||||
|
|
||||||
|
assertThat(subCategories.size(), is(1));
|
||||||
|
assertThat(subCategories.get(0), is(equalTo("bar")));
|
||||||
|
assertThat(subCategories, hasItem("bar"));
|
||||||
|
|
||||||
|
assertThat(objects.size(), is(1));
|
||||||
|
assertThat(objects, hasItem("object1"));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2016 LibreCCM Foundation.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||||
|
* MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
package org.libreccm.categorization;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import javax.enterprise.context.RequestScoped;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.transaction.Transactional;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
@RequestScoped
|
||||||
|
public class TestCategoryController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private CategoryRepository categoryRepo;
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public Map<String, List<String>> getData(final long categoryId) {
|
||||||
|
|
||||||
|
final Category category = categoryRepo.findById(categoryId);
|
||||||
|
if (category == null) {
|
||||||
|
throw new IllegalArgumentException(String.format(
|
||||||
|
"No category for id %d.", categoryId));
|
||||||
|
}
|
||||||
|
|
||||||
|
final Map<String, List<String>> result = new HashMap<>();
|
||||||
|
final List<String> subCategories = new ArrayList<>();
|
||||||
|
final List<String> objects = new ArrayList<>();
|
||||||
|
result.put("subCategories", subCategories);
|
||||||
|
result.put("objects", objects);
|
||||||
|
|
||||||
|
category.getSubCategories().forEach(
|
||||||
|
subCategory -> subCategories.add(subCategory.getDisplayName()));
|
||||||
|
|
||||||
|
category.getObjects().forEach(
|
||||||
|
object -> objects
|
||||||
|
.add(object.getCategorizedObject().getDisplayName()));
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue