Package org.libreplan.business.test.qualityforms.entities

Source Code of org.libreplan.business.test.qualityforms.entities.QualityFormTest

/*
* This file is part of LibrePlan
*
* Copyright (C) 2009-2010 Fundación para o Fomento da Calidade Industrial e
*                         Desenvolvemento Tecnolóxico de Galicia
* Copyright (C) 2010-2011 Igalia, S.L.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program 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 Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

package org.libreplan.business.test.qualityforms.entities;

import static org.junit.Assert.fail;
import static org.libreplan.business.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_FILE;
import static org.libreplan.business.test.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_TEST_FILE;

import java.math.BigDecimal;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.libreplan.business.common.exceptions.ValidationException;
import org.libreplan.business.qualityforms.daos.IQualityFormDAO;
import org.libreplan.business.qualityforms.entities.QualityForm;
import org.libreplan.business.qualityforms.entities.QualityFormItem;
import org.libreplan.business.qualityforms.entities.QualityFormType;
import org.libreplan.business.test.qualityforms.daos.AbstractQualityFormTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;

/**
* @author Susana Montes Pedreira <smontes@wirelessgalicia.com>
*/

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { BUSINESS_SPRING_CONFIG_FILE,
        BUSINESS_SPRING_CONFIG_TEST_FILE })
public class QualityFormTest extends AbstractQualityFormTest {

    @Autowired
    IQualityFormDAO qualityFormDAO;

    @Test
    @Transactional
    public void checkInvalidNameQualityForm() throws ValidationException {
        QualityForm qualityForm = createValidQualityForm();
        qualityForm.setName("");
        try {
            qualityFormDAO.save(qualityForm);
            fail("It should throw an exception");
        } catch (ValidationException e) {
            // It should throw an exception
        }

        qualityForm.setName(null);
        try {
            qualityFormDAO.save(qualityForm);
            fail("It should throw an exception");
        } catch (ValidationException e) {
            // It should throw an exception
        }
    }

    @Test
    @Transactional
    public void checkInvalidQualityFormType() throws ValidationException {
        QualityForm qualityForm = createValidQualityForm();
        try {
            qualityForm.setQualityFormType(null);
            qualityFormDAO.save(qualityForm);
            fail("It should throw an exception");
        } catch (ValidationException e) {
            // It should throw an exception
        } catch (IllegalArgumentException e) {
            // It should throw an exception
        }
    }

    @Test
    @Transactional
    public void checkInvalidRepeatedQualityFormItemPosition()
            throws ValidationException {
        QualityForm qualityForm = createValidQualityForm();

        QualityFormItem qualityFormItem1 = createValidQualityFormItem();
        qualityForm.addQualityFormItemOnTop(qualityFormItem1);

        QualityFormItem qualityFormItem2 = createValidQualityFormItem();
        qualityForm.addQualityFormItemOnTop(qualityFormItem2);

        qualityFormItem1.setPosition(0);
        qualityFormItem2.setPosition(0);

        try {
            qualityFormDAO.save(qualityForm);
            fail("It should throw an exception");
        } catch (ValidationException e) {
            // It should throw an exception
        }

    }

    @Test
    @Transactional
    public void checkInvalidNotConsecutivesQualityFormItemPosition()
            throws ValidationException {
        QualityForm qualityForm = createValidQualityForm();

        QualityFormItem qualityFormItem1 = createValidQualityFormItem();
        qualityForm.addQualityFormItemOnTop(qualityFormItem1);

        QualityFormItem qualityFormItem2 = createValidQualityFormItem();
        qualityForm.addQualityFormItemOnTop(qualityFormItem2);

        qualityFormItem1.setPosition(0);
        qualityFormItem2.setPosition(2);

        try {
            qualityFormDAO.save(qualityForm);
            fail("It should throw an exception");
        } catch (ValidationException e) {
            // It should throw an exception
        }

    }

    @Test
    @Transactional
    public void checkInvalidOutOfRangeQualityFormItemPosition()
            throws ValidationException {
        QualityForm qualityForm = createValidQualityForm();

        QualityFormItem qualityFormItem1 = createValidQualityFormItem();
        qualityForm.addQualityFormItemOnTop(qualityFormItem1);

        QualityFormItem qualityFormItem2 = createValidQualityFormItem();
        qualityForm.addQualityFormItemOnTop(qualityFormItem2);

        qualityFormItem1.setPosition(1);
        qualityFormItem2.setPosition(2);


        try {
            qualityFormDAO.save(qualityForm);
            fail("It should throw an exception");
        } catch (ValidationException e) {
            // It should throw an exception
        }

    }

    @Test
    @Transactional
    public void checkInvalidPercentageQualityFormItemPosition()
            throws ValidationException {
        QualityForm qualityForm = createValidQualityForm();

        QualityFormItem qualityFormItem1 = createValidQualityFormItem();
        qualityForm.addQualityFormItemOnTop(qualityFormItem1);

        QualityFormItem qualityFormItem2 = createValidQualityFormItem();
        qualityForm.addQualityFormItemOnTop(qualityFormItem2);

        qualityFormItem1.setPosition(0);
        qualityFormItem1.setPercentage(new BigDecimal(1));
        qualityFormItem2.setPosition(1);
        qualityFormItem2.setPercentage(new BigDecimal(2));

        try {
            qualityFormDAO.save(qualityForm);
        } catch (ValidationException e) {
            fail("It shouldn't throw an exception");
        }

        qualityFormItem1.setPercentage(new BigDecimal(2));
        qualityFormItem2.setPercentage(new BigDecimal(1));

        try {
            qualityFormDAO.save(qualityForm);
            fail("It should throw an exception");
        } catch (ValidationException e) {
            // It should throw an exception
        }
    }

    @Test
    @Transactional
    public void checkInvalidQualityFormItemPositionByItems()
            throws ValidationException {
        QualityForm qualityForm = createValidQualityForm();
        qualityForm.setQualityFormType(QualityFormType.BY_ITEMS);

        QualityFormItem qualityFormItem1 = createValidQualityFormItem();
        qualityForm.addQualityFormItemOnTop(qualityFormItem1);

        QualityFormItem qualityFormItem2 = createValidQualityFormItem();
        qualityForm.addQualityFormItemOnTop(qualityFormItem2);

        try {
            qualityFormDAO.save(qualityForm);
        } catch (ValidationException e) {
            fail("It shouldn't throw an exception");
        }

        // Incorrect Position
        qualityFormItem1.setPosition(2);
        qualityFormItem2.setPosition(1);

        try {
            qualityFormDAO.save(qualityForm);
            fail("It shouldn't throw an exception");
        } catch (ValidationException e) {
            // It should throw an exception
        }

        // Incorrect Percentage
        qualityFormItem1.setPosition(0);
        qualityFormItem2.setPosition(1);
        qualityFormItem1.setPercentage(new BigDecimal(100));
        qualityFormItem2.setPercentage(new BigDecimal(1));

        try {
            qualityFormDAO.save(qualityForm);
            fail("It should throw an exception");
        } catch (ValidationException e) {
            // It should throw an exception
        }

        // Incorrect Percentage
        qualityFormItem1.setPosition(0);
        qualityFormItem2.setPosition(1);
        qualityFormItem1.setPercentage(new BigDecimal(10));
        qualityFormItem2.setPercentage(new BigDecimal(1));

        try {
            qualityFormDAO.save(qualityForm);
            fail("It should throw an exception");
        } catch (ValidationException e) {
            // It should throw an exception
        }
    }

     @Test
    @Transactional
    public void checkInvalidQualityFormItemName() throws ValidationException {
        QualityForm qualityForm = createValidQualityForm();
        QualityFormItem qualityFormItem = createValidQualityFormItem();
        qualityForm.addQualityFormItemOnTop(qualityFormItem);
        try {
            qualityFormDAO.save(qualityForm);
        } catch (ValidationException e) {
            fail("It should not throw an exception");
        }

        qualityFormItem.setName(null);
        try {
            qualityFormDAO.save(qualityForm);
            fail("It should throw an exception");
        } catch (ValidationException e) {
            // It should throw an exception
        }

        qualityFormItem.setName("");
        try {
            qualityFormDAO.save(qualityForm);
            fail("It should throw an exception");
        } catch (ValidationException e) {
            // It should throw an exception
        }
    }

    @Test
    @Transactional
    public void checkNotNullQualityFormItemPosition()
            throws ValidationException {
        QualityForm qualityForm = createValidQualityForm();
        QualityFormItem qualityFormItem = createValidQualityFormItem();
        qualityForm.addQualityFormItemOnTop(qualityFormItem);
        qualityFormItem.setPosition(null);
        try {
            qualityFormDAO.save(qualityForm);
            fail("It should throw an exception");
        } catch (ValidationException e) {
            // It should throw an exception
        }
    }

    @Test
    @Transactional
    public void checkNotNullQualityFormItemPercentage()
            throws ValidationException {
        QualityForm qualityForm = createValidQualityForm();
        QualityFormItem qualityFormItem = createValidQualityFormItem();
        qualityFormItem.setPercentage(null);
        qualityForm.addQualityFormItemOnTop(qualityFormItem);
        try {
            qualityFormDAO.save(qualityForm);
            fail("It should throw an exception");
        } catch (ValidationException e) {
            // It should throw an exception
        }
    }

    @Test
    @Transactional
    public void checkIncorrectQualityFormItemPercentage()
            throws ValidationException {
        QualityForm qualityForm = createValidQualityForm();
        QualityFormItem qualityFormItem = createValidQualityFormItem();
        qualityFormItem.setPercentage(new BigDecimal(100.1));
        qualityForm.addQualityFormItemOnTop(qualityFormItem);
        try {
            qualityFormDAO.save(qualityForm);
            fail("It should throw an exception");
        } catch (ValidationException e) {
            // It should throw an exception
        }
    }

}
TOP

Related Classes of org.libreplan.business.test.qualityforms.entities.QualityFormTest

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.