Package org.fao.geonet.repository

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

package org.fao.geonet.repository;

import org.fao.geonet.domain.HarvesterSetting;
import org.fao.geonet.domain.Setting_;
import org.jdom.Element;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;

import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;

import static org.fao.geonet.repository.HarvesterSettingRepository.ID_PREFIX;
import static org.fao.geonet.repository.HarvesterSettingRepository.SEPARATOR;
import static org.junit.Assert.*;

public class HarvesterSettingRepositoryTest extends AbstractSpringDataTest {

    @Autowired
    HarvesterSettingRepository _repo;

    private String[] _skipProps = new String[]{"getValueAsInt", "getValueAsBool"};

    @Test
    public void testFindByName() throws Exception {
        HarvesterSetting setting = _repo.save(newSetting());
        List<HarvesterSetting> found = _repo.findByName(setting.getName());
        assertEquals(1, found.size());
        assertSameContents(setting, found.get(0), _skipProps);
        assertEquals(0, _repo.findByName("some wrong name").size());
    }

    @Test
    public void testFindRoot() throws Exception {
        HarvesterSetting actualRoot = _repo.save(newSetting());
        List<HarvesterSetting> roots = _repo.findRoots();
        assertEquals(1, roots.size());

        HarvesterSetting root = roots.get(0);
        assertSameContents(actualRoot, root, _skipProps);
        assertNull(root.getParent());
    }

    @Test
    public void testFindChildren() throws Exception {
        HarvesterSetting parent = _repo.save(newSetting());
        HarvesterSetting child = newSetting().setParent(parent);
        _repo.save(child);

        assertEquals(2, _repo.count());

        List<HarvesterSetting> children = _repo.findAllChildren(parent.getId());
        assertEquals(1, children.size());
        assertSameContents(child, children.get(0), _skipProps);

    }

    @Test
    public void testFindChildIds() throws Exception {
        HarvesterSetting parent = _repo.save(newSetting());
        HarvesterSetting child = newSetting().setParent(parent);
        _repo.save(child);

        assertEquals(2, _repo.count());

        List<Integer> children = _repo.findAllChildIds(parent.getId());
        assertEquals(1, children.size());
        assertEquals(child.getId(), children.get(0).intValue());

    }

    @Test
    public void testFindChildByName() throws Exception {
        HarvesterSetting parent = _repo.save(newSetting());
        _repo.save(newSetting().setParent(parent));
        HarvesterSetting child3 = _repo.save(newSetting().setParent(parent));

        assertEquals(3, _repo.count());

        List<HarvesterSetting> children = _repo.findChildrenByName(parent.getId(), child3.getName());
        assertEquals(1, children.size());
        assertSameContents(child3, children.get(0), _skipProps);

    }

    @Test
    public void testFindByPathUsingId() throws Exception {

        HarvesterSetting parent = _repo.save(newSetting());
        HarvesterSetting child2 = _repo.save(newSetting().setParent(parent));
        _repo.save(newSetting().setParent(parent));

        List<HarvesterSetting> found = _repo.findAllByPath("id:" + child2.getId());
        assertEquals(1, found.size());
        assertSameContents(child2, found.get(0), _skipProps);

        found = _repo.findAllByPath("id:" + parent.getId());
        assertEquals(1, found.size());
        assertSameContents(parent, found.get(0), _skipProps);
    }

    @Test
    public void testFindByRootByPath() throws Exception {

        HarvesterSetting parent = _repo.save(newSetting());
        final HarvesterSetting parent2 = _repo.save(newSetting());
        _repo.save(newSetting().setParent(parent));

        List<HarvesterSetting> found = _repo.findAllByPath(parent.getName());
        assertEquals(1, found.size());
        assertSameContents(parent, found.get(0), _skipProps);

        found = _repo.findAllByPath(parent2.getName());
        assertEquals(1, found.size());
        assertSameContents(parent2, found.get(0), _skipProps);
    }

    @Test
    public void testFindByPathUsingTwoId() throws Exception {
        HarvesterSetting parent = _repo.save(newSetting());
        HarvesterSetting child2 = _repo.save(newSetting().setParent(parent));
        _repo.save(newSetting().setParent(parent));

        List<HarvesterSetting> found = _repo.findAllByPath("id:" + Integer.MAX_VALUE + "/id:" + child2.getId());
        assertEquals(1, found.size());
        assertSameContents(child2, found.get(0), _skipProps);
    }

    @Test
    public void testFindByPathUsingChildNamePath() throws Exception {
        HarvesterSetting parent = _repo.save(newSetting());
        HarvesterSetting child2 = _repo.save(newSetting().setParent(parent).setName("2"));
        HarvesterSetting child3 = _repo.save(newSetting().setParent(parent).setName("3"));
        HarvesterSetting child4 = _repo.save(newSetting().setParent(child3).setName("4"));

        String path = SEPARATOR + child3.getName() + SEPARATOR + child4.getName();
        List<HarvesterSetting> found = _repo.findAllByPath(path);
        assertEquals(1, found.size());
        assertSameContents(child4, found.get(0), _skipProps);

        String path2 = SEPARATOR + child2.getName() + SEPARATOR + child4.getName();
        List<HarvesterSetting> found2 = _repo.findAllByPath(path2);
        assertEquals(0, found2.size());
    }

    @Test
    public void testFindByPathFindingMany() throws Exception {
        HarvesterSetting parent = _repo.save(newSetting().setName("1"));
        _repo.save(newSetting().setParent(parent).setName("2"));
        HarvesterSetting child3 = _repo.save(newSetting().setParent(parent).setName("2"));

        String path = child3.getName();
        List<HarvesterSetting> found = _repo.findAllByPath(path);
        assertEquals(2, found.size());
    }

    @Test
    public void testFindByPathUsingIdAndChildNamePath() throws Exception {
        HarvesterSetting parent = _repo.save(newSetting().setName("2"));
        HarvesterSetting child2 = _repo.save(newSetting().setParent(parent).setName("2"));
        HarvesterSetting child3 = _repo.save(newSetting().setParent(parent).setName("3"));
        HarvesterSetting child4 = _repo.save(newSetting().setParent(child3).setName("4"));

        String path = ID_PREFIX + child3.getId() + SEPARATOR + child4.getName();
        List<HarvesterSetting> found = _repo.findAllByPath(path);
        assertEquals(1, found.size());
        assertSameContents(child4, found.get(0), _skipProps);

        String path2 = SEPARATOR + child2.getName() + SEPARATOR + child4.getName();
        List<HarvesterSetting> found2 = _repo.findAllByPath(path2);
        assertEquals(0, found2.size());
    }


    @Test
    public void testFindOneByPath() throws Exception {
        HarvesterSetting parent = _repo.save(newSetting().setName("2"));
        HarvesterSetting child2 = _repo.save(newSetting().setParent(parent).setName("2"));
        HarvesterSetting child3 = _repo.save(newSetting().setParent(parent).setName("2"));
        HarvesterSetting child4 = _repo.save(newSetting().setParent(child3).setName("4"));

        String path = child2.getName();
        HarvesterSetting found = _repo.findOneByPath(path);
        assertNotNull(found);
        assertSameContents(child4, found, _skipProps);
    }

    @Test
    public void testDeleteById() throws Exception {
        HarvesterSetting parent = _repo.save(newSetting().setName("2"));
        _repo.save(newSetting().setParent(parent).setName("2"));
        HarvesterSetting child3 = _repo.save(newSetting().setParent(parent).setName("2"));
        _repo.save(newSetting().setParent(child3).setName("4"));

        _repo.delete(parent.getId());

        assertEquals(0, _repo.count());
    }
    @Test
    public void testDeleteByEntity() throws Exception {
        HarvesterSetting parent = _repo.save(newSetting().setName("2"));
        _repo.save(newSetting().setParent(parent).setName("2"));
        HarvesterSetting child3 = _repo.save(newSetting().setParent(parent).setName("2"));
        _repo.save(newSetting().setParent(child3).setName("4"));

        _repo.delete(parent);

        assertEquals(0, _repo.count());
    }

    @Test
    public void testFindAllAndSort() throws Exception {
        _repo.save(newSetting().setName("4"));
        _repo.save(newSetting().setName("2"));
        _repo.save(newSetting().setName("3"));
        _repo.save(newSetting().setName("1"));

        List<HarvesterSetting> list = _repo.findAll(SortUtils.createSort(Setting_.name));
        assertEquals("1", list.get(0).getName());
        assertEquals("2", list.get(1).getName());
        assertEquals("3", list.get(2).getName());
        assertEquals("4", list.get(3).getName());

        List<HarvesterSetting> list2 = _repo.findAll(new Sort(Direction.DESC, SortUtils.createPath(Setting_.name)));
        assertEquals("4", list2.get(0).getName());
        assertEquals("3", list2.get(1).getName());
        assertEquals("2", list2.get(2).getName());
        assertEquals("1", list2.get(3).getName());
    }

    @Test
    public void testFindAllAsXml() throws Exception {
        _repo.save(newSetting().setName("4"));
        final Element allAsXml = _repo.findAllAsXml();
        //  No Exception... good
    }

    private HarvesterSetting newSetting() {
        return newSetting(_inc);
    }
    public static HarvesterSetting newSetting(AtomicInteger inc) {
        int id = inc.incrementAndGet();
        return new HarvesterSetting().setName("name " + id).setValue("value " + id);
    }

}
TOP

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

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.