es.upm.fiware.rss.dao.impl.test.DbeTransactionDaoImplTest.java Source code

Java tutorial

Introduction

Here is the source code for es.upm.fiware.rss.dao.impl.test.DbeTransactionDaoImplTest.java

Source

/**
 * Revenue Settlement and Sharing System GE
 * Copyright (C) 2011-2014, Javier Lucio - lucio@tid.es
 * Telefonica Investigacion y Desarrollo, S.A.
 *
 * Copyright (C) 2015, CoNWeT Lab., Universidad Politnica de Madrid
 * 
 * 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 es.upm.fiware.rss.dao.impl.test;

import java.util.List;

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.orm.hibernate4.HibernateTransactionManager;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.DefaultTransactionDefinition;

import es.upm.fiware.rss.common.test.DatabaseLoader;
import es.upm.fiware.rss.dao.impl.DbeTransactionDaoImpl;
import es.upm.fiware.rss.dao.impl.ObMopDaoImpl;
import es.upm.fiware.rss.model.BmMethodsOfPayment;
import es.upm.fiware.rss.model.BmObMop;
import es.upm.fiware.rss.model.BmObMopId;
import es.upm.fiware.rss.model.BmPaymentbroker;
import es.upm.fiware.rss.model.BmService;
import es.upm.fiware.rss.model.DbeTransaction;

@ContextConfiguration({ "classpath:database.xml" })
public class DbeTransactionDaoImplTest {

    /**
     * Variable to print the trace.
     */
    private static final Logger LOGGER = LoggerFactory.getLogger(DbeTransactionDaoImplTest.class);

    /**
     * DAO for DBETransaction
     */
    @Autowired
    private DbeTransactionDaoImpl dbeTransactionDAO;

    /**
     * DAO for OB-Country relation.
     */
    @Autowired
    private ObMopDaoImpl obMopDAO;

    @Autowired
    private DatabaseLoader databaseLoader;

    @Autowired
    @Qualifier("transactionManager")
    private HibernateTransactionManager transactionManager;

    /**
     * Method to insert data before test.
     * 
     * @throws Exception
     *             from db
     */
    @Before
    public void setUp() throws Exception {
        databaseLoader.cleanInsert("dbunit/CREATE_DATATEST_TRANSACTIONS.xml", true);
    }

    /**
     * @throws Exception
     */
    @After
    public void tearDown() throws Exception {
        databaseLoader.deleteAll("dbunit/CREATE_DATATEST_TRANSACTIONS.xml", true);
    }

    /*
     * @Test public void test50GetNumberOfTransactions() {
     * 
     * 
     * 
     * List<DbeTransaction> listDbeTr = dbeTransactionDAO.getNumberOfTransactions(0,100);
     * Assert.assertTrue("Transaction Id not equal", listDbeTr.get(0).getTxTransactionId().equals("1234"));
     * 
     * }
     */
    /**
     * test60GetTransactionByTxId searchs a inexistent SrvRfCode
     */

    @Transactional
    public void test60GetTransactionByTxId() {

        String txId = new String("987");
        try {
            DbeTransaction dbetrBD = dbeTransactionDAO.getTransactionByTxId(txId);

            boolean result;
            if (dbetrBD == null) {
                result = true;
                DbeTransactionDaoImplTest.LOGGER.debug("null object dbe_transaction obtained from database");

            } else {
                result = false;
            }
            Assert.assertTrue("Transaction id does not exist", result);
        } catch (Exception e) { // this is not possible
            String msg = "test60GetTransactionBySvrRfCde:Error in database there are several Transactions for "
                    + txId;
            DbeTransactionDaoImplTest.LOGGER.error(msg);
        }
    }

    /**
     * test65GetTransactionByTxId searchs a inexistent txId
     */
    @Transactional
    public void test65GetTransactionByTxId() {

        String txId = new String("111");
        try {
            DbeTransaction dbetr = dbeTransactionDAO.getTransactionByTxId(txId);
            if (dbetr == null) {
                DbeTransactionDaoImplTest.LOGGER.debug("Obtained nothing");
                Assert.assertTrue("Transaction Id not found", true);
            } else {
                DbeTransactionDaoImplTest.LOGGER.debug("Obtained value of transaction");
                Assert.assertTrue("Transaction Id found", false);
            }
        } catch (Exception e) { // this is not possible
            String msg = "test65GetTransactionBySvrRfCde:Error in database there are several Transactions for "
                    + txId;
            DbeTransactionDaoImplTest.LOGGER.error(msg);
            Assert.assertTrue("ERROR in Test ", false);
        }
    }

    // obtained the value of the datatest
    @Transactional
    public void testGetTransactionByTxPbCorrelationId() {

        int txTransactionId = 1;
        Integer pbcorrelationid = 0;

        List<DbeTransaction> listDbeTr = dbeTransactionDAO.getTransactionByTxPbCorrelationId(pbcorrelationid);

        if (listDbeTr.size() >= 0) {
            DbeTransactionDaoImplTest.LOGGER.debug("looking result list data....");
            if (listDbeTr.size() == 0) {
                DbeTransactionDaoImplTest.LOGGER.error("Obtained 0 data is not possible with datatest values");
                Assert.assertTrue("0 data obtained ", false);
            } else {
                DbeTransactionDaoImplTest.LOGGER.debug("Obtained:" + listDbeTr.get(0).getTxTransactionId());
                Assert.assertTrue("0 data obtained ", listDbeTr.get(0).getTxTransactionId() == txTransactionId);
            }
        } else {
            DbeTransactionDaoImplTest.LOGGER.error("Obtained nothing is not possible with datatest values");
            Assert.assertTrue("nothing obtained ", false);
        }
    }

    @Transactional
    public void testGetTransactionsByProviderId() {
        int txTransactionId = 1;
        String providerId = new String("provider");

        List<DbeTransaction> listDbeTr = dbeTransactionDAO.getTransactionsByProviderId(providerId);

        if (listDbeTr.size() >= 0) {
            DbeTransactionDaoImplTest.LOGGER.debug("looking result list data....");
            if (listDbeTr.size() == 0) {
                DbeTransactionDaoImplTest.LOGGER.error("Obtained 0 data is not possible with datatest values");
                Assert.assertTrue("0 data obtained ", false);
            } else {
                DbeTransactionDaoImplTest.LOGGER.debug("Obtained:" + listDbeTr.get(0).getTxTransactionId());
                Assert.assertTrue("0 data obtained ", listDbeTr.get(0).getTxTransactionId() == txTransactionId);
            }
        } else {
            DbeTransactionDaoImplTest.LOGGER.error("Obtained nothing is not possible with datatest values");
            Assert.assertTrue("nothing obtained ", false);
        }

    }

    @Transactional(propagation = Propagation.SUPPORTS)
    public void testDeleteTransactionsByProviderId() {
        int txTransactionId = 1;
        String providerId = new String("provider");
        DefaultTransactionDefinition def = new DefaultTransactionDefinition();
        def.setPropagationBehavior(Propagation.REQUIRES_NEW.value());
        TransactionStatus status = transactionManager.getTransaction(def);
        dbeTransactionDAO.deleteTransactionsByProviderId(providerId);
        transactionManager.commit(status);
        List<DbeTransaction> listDbeTr = dbeTransactionDAO.getTransactionsByProviderId(providerId);

        if (listDbeTr != null && listDbeTr.size() > 0) {
            DbeTransactionDaoImplTest.LOGGER.debug("looking result list data....");
            DbeTransactionDaoImplTest.LOGGER.error("Obtained:" + listDbeTr.get(0).getTxTransactionId());
            Assert.assertTrue("0 data obtained ", listDbeTr.get(0).getTxTransactionId() == txTransactionId);
        } else {
            DbeTransactionDaoImplTest.LOGGER.debug("Obtained 0 data is not possible with datatest values");
            Assert.assertTrue("0 data obtained ", true);
        }

    }

}