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 java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
|
@ -86,6 +88,9 @@ public class CategoryManagerTest {
|
|||
@Inject
|
||||
private Subject subject;
|
||||
|
||||
@Inject
|
||||
private TestCategoryController controller;
|
||||
|
||||
@PersistenceContext(name = "LibreCCM")
|
||||
private EntityManager entityManager;
|
||||
|
||||
|
|
@ -582,7 +587,7 @@ public class CategoryManagerTest {
|
|||
categoryManager.addSubCategoryToCategory(test, categories);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@UsingDataSet(
|
||||
"datasets/org/libreccm/categorization/CategoryManagerTest/data.yml")
|
||||
|
|
@ -590,11 +595,11 @@ public class CategoryManagerTest {
|
|||
public void hasIndexObject() {
|
||||
final Category category1 = categoryRepo.findById(-2100L);
|
||||
final Category category2 = categoryRepo.findById(-2200L);
|
||||
|
||||
|
||||
assertThat(categoryManager.hasIndexObject(category1), is(false));
|
||||
assertThat(categoryManager.hasIndexObject(category2), is(true));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@UsingDataSet(
|
||||
"datasets/org/libreccm/categorization/CategoryManagerTest/data.yml")
|
||||
|
|
@ -602,14 +607,39 @@ public class CategoryManagerTest {
|
|||
public void getIndexObject() {
|
||||
final Category category1 = categoryRepo.findById(-2100L);
|
||||
final Category category2 = categoryRepo.findById(-2200L);
|
||||
|
||||
assertThat(categoryManager.getIndexObject(category1).isPresent(),
|
||||
|
||||
assertThat(categoryManager.getIndexObject(category1).isPresent(),
|
||||
is(false));
|
||||
|
||||
|
||||
final Optional<CcmObject> index2 = categoryManager.getIndexObject(
|
||||
category2);
|
||||
assertThat(index2.isPresent(), is(true));
|
||||
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