All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.iternine.jeppetto.dao.test.view.SummaryDAOTest Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2011-2017 Jeppetto and Jonathan Thompson
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.iternine.jeppetto.dao.test.view;


import org.iternine.jeppetto.dao.NoSuchItemException;
import org.iternine.jeppetto.dao.test.RelatedObject;
import org.iternine.jeppetto.dao.test.SimpleObject;
import org.iternine.jeppetto.dao.test.core.DynamicDAO;

import org.junit.After;
import org.junit.Test;

import java.util.HashSet;
import java.util.Set;

import static org.junit.Assert.assertEquals;


public abstract class SummaryDAOTest {

    //-------------------------------------------------------------
    // Methods - Abstract
    //-------------------------------------------------------------

    protected abstract DynamicDAO getDynamicDAO();
    protected abstract SummaryDAO getSummaryDAO();

    protected abstract void reset();


    //-------------------------------------------------------------
    // Methods - Test Lifecycle
    //-------------------------------------------------------------

    @After
    public void after() {
        reset();
    }


    //-------------------------------------------------------------
    // Methods - Test Cases
    //-------------------------------------------------------------

    @Test
    public void findById()
            throws NoSuchItemException {
        RelatedObject relatedObject;
        relatedObject = new RelatedObject();
        relatedObject.setRelatedIntValue(20);

        SimpleObject simpleObject = new SimpleObject();
        simpleObject.setRelatedObject(relatedObject);       // Add item to object
        simpleObject.addRelatedObject(relatedObject);       // ...and to List

        getDynamicDAO().save(simpleObject);

        SummarySimpleObject summarySimpleObject = getSummaryDAO().findById(simpleObject.getId());

        assertEquals(simpleObject.getId(), summarySimpleObject.getId());
        assertEquals(simpleObject.getRelatedObject().getRelatedIntValue(), summarySimpleObject.getRelatedObject().getRelatedIntValue());
        assertEquals(1, summarySimpleObject.getRelatedObjects().size());
    }


    @Test
    public void updateSummaryObject() {
        SimpleObject simpleObject = new SimpleObject();
        simpleObject.setIntValue(123);

        getDynamicDAO().save(simpleObject);

        SummarySimpleObject summarySimpleObject = getSummaryDAO().findById(simpleObject.getId());

        summarySimpleObject.setIntValue(999);

        getSummaryDAO().save(summarySimpleObject);

        SummarySimpleObject resultSummarySimpleObject = getSummaryDAO().findById(simpleObject.getId());

        assertEquals(999, resultSummarySimpleObject.getIntValue());

        SimpleObject resultSimpleObject = getDynamicDAO().findById(simpleObject.getId());

        assertEquals(999, resultSimpleObject.getIntValue());
    }


    @Test
    public void findMultiple() {
        Set intValues = new HashSet(10);

        for (int i = 0; i < 10; i++) {
            SimpleObject simpleObject = new SimpleObject();
            simpleObject.setIntValue(i);

            getDynamicDAO().save(simpleObject);

            intValues.add(i);
        }

        Iterable results = getSummaryDAO().findAll();

        for (SummarySimpleObject result : results) {
            intValues.remove(result.getIntValue());
        }

        assertEquals(0, intValues.size());
    }


    @Test
    public void findMultipleById() {
        Set ids = new HashSet(3);

        for (int i = 0; i < 3; i++) {
            SimpleObject simpleObject = new SimpleObject();
            simpleObject.setIntValue(i);

            getDynamicDAO().save(simpleObject);

            ids.add(simpleObject.getId());
        }

        Iterable results = getSummaryDAO().findByIds(ids.toArray(new String[3]));

        for (SummarySimpleObject result : results) {
            ids.remove(result.getId());
        }

        assertEquals(0, ids.size());
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy