Package org.fao.geonet.repository

Source Code of org.fao.geonet.repository.MetadataCategoryRepositoryTest

package org.fao.geonet.repository;


import org.fao.geonet.domain.Metadata;
import org.fao.geonet.domain.MetadataCategory;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;

import static org.junit.Assert.assertEquals;

public class MetadataCategoryRepositoryTest extends AbstractSpringDataTest {

    @Autowired
    MetadataCategoryRepository _repo;

    @Autowired
    MetadataRepository _metadataRepo;

    @PersistenceContext
    EntityManager _entityManager;

    @Test
    public void testFindOne() {
        MetadataCategory category1 = newMetadataCategory();
        category1 = _repo.save(category1);

        MetadataCategory category2 = newMetadataCategory();
        category2 = _repo.save(category2);

        assertEquals(category2, _repo.findOne(category2.getId()));
        assertEquals(category1, _repo.findOne(category1.getId()));
    }

    @Test
    public void testFindOneByNameIgnoreCase() {
        MetadataCategory category1 = newMetadataCategory();
        category1 = _repo.save(category1);

        MetadataCategory category2 = newMetadataCategory();
        _repo.save(category2);

        assertEquals(category1, _repo.findOneByNameIgnoreCase(category1.getName().toLowerCase()));
        assertEquals(category1, _repo.findOneByNameIgnoreCase(category1.getName().toUpperCase()));
    }

    @Test
    public void testFindOneByName() {
        MetadataCategory category1 = newMetadataCategory();
        category1 = _repo.save(category1);

        MetadataCategory category2 = newMetadataCategory();
        category2 = _repo.save(category2);

        MetadataCategory metadataCategory = _repo.findOneByName(category1.getName());
        assertEquals(category1.getName(), metadataCategory.getName());

        metadataCategory = _repo.findOneByName(category2.getName());
        assertEquals(category2.getName(), metadataCategory.getName());
    }


    @Test
    public void testDeleteDeletesFromMetadata() throws Exception {

        MetadataCategory cat1 = _repo.save(newMetadataCategory(_inc));
        MetadataCategory cat2 = _repo.save(newMetadataCategory(_inc));

        Metadata metadata1 = MetadataRepositoryTest.newMetadata(_inc);
        metadata1.getCategories().add(cat1);
        metadata1.getCategories().add(cat2);
        metadata1 = _metadataRepo.save(metadata1);

        Metadata metadata2 = MetadataRepositoryTest.newMetadata(_inc);
        metadata2.getCategories().add(cat1);
        metadata2 = _metadataRepo.save(metadata2);

        _repo.deleteCategoryAndMetadataReferences(cat1.getId());

        _entityManager.flush();
        _entityManager.clear();

        // org.fao.geonet.services.category.Remove assumes that this test passes.  If this test can't pass
        // then there needs to be a way to fix Remove as well.
        final Set<MetadataCategory> foundCategories = _metadataRepo.findOne(metadata1.getId()).getCategories();
        assertEquals(1, foundCategories.size());
        assertEquals(cat2.getId(), foundCategories.iterator().next().getId());

        assertEquals(0, _metadataRepo.findOne(metadata2.getId()).getCategories().size());
    }

    private MetadataCategory newMetadataCategory() {
        return newMetadataCategory(_inc);
    }

    public static MetadataCategory newMetadataCategory(AtomicInteger inc) {
        int val = inc.incrementAndGet();
        MetadataCategory metadataCategory = new MetadataCategory();
        metadataCategory.setName("name" + val);
        metadataCategory.getLabelTranslations().put("eng", "engLab" + val);
        metadataCategory.getLabelTranslations().put("fre", "fraLab" + val);
        metadataCategory.getLabelTranslations().put("ger", "gerLab" + val);

        return metadataCategory;
    }

}
TOP

Related Classes of org.fao.geonet.repository.MetadataCategoryRepositoryTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.