Package metrics4Asterisk.parse

Source Code of metrics4Asterisk.parse.WeekdayLogParserTest

package metrics4Asterisk.parse;

import metrics4Asterisk.metrics.CallMetric;
import metrics4Asterisk.util.DateMaker;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Calendar;
import java.util.HashSet;
import java.util.Set;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import com.csvreader.CsvReader;
import junit.framework.TestCase;
import metrics4Asterisk.display.WeekDistribution;
import metrics4Asterisk.util.Constants;

/**
*
* @author lances
*/
public class WeekdayLogParserTest extends TestCase {

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }


    /**
     * Test of init method, of class QueueLogParser.
     * possible wierd scenerios
     * 1192932250|1192932239.35419|4357482436|NONE|ENTERQUEUE||9122857742
     * call come in for a non existing number it cause
     * can get ird of it by eliminating calls that aren't for call center numbers from entering the queue
     *   02 / 18 / 08
     *  05 / 23 / 08
     */
    @Test
    public void testLog() throws Exception {

        InputStream fstream = null;
        BufferedReader in = null;
        CsvReader reader = null;

        try {

            fstream = this.getClass().getClassLoader().getResourceAsStream("megacalllog.txt");
            in = new BufferedReader(new InputStreamReader(fstream));
            reader = new CsvReader(in, Constants.ASTERISK_LOG_SPERATOR);

            Set<String> queuenames = new HashSet<String>();
            queuenames.add("superqueue");
            queuenames.add("internetTechSupport");
            CallMapper mapperc = new CallMapper(queuenames);

            LogParser<LogMapper<CallMetric>> queueLogParser = new LogParser<LogMapper<CallMetric>>();
            queueLogParser.setLogMapper(mapperc);

            Calendar cFromDate = DateMaker.makeFromString("02/21/2008");
            Calendar cToDate = DateMaker.makeFromString("02/28/2008");

            queueLogParser.parse(cFromDate, cToDate, reader);

            WeekDistribution weeksD = new WeekDistribution();
            weeksD.init(cFromDate, cToDate);
            weeksD.setQueueNames(queuenames);
            weeksD.makeSummary(queueLogParser.getLogMapper().getMap());
            System.out.println(weeksD);
            //TODO test each day!!!!

        } catch (Exception e) {
            fail("no exception should occur");
        } finally {
            closeResources(fstream, in, reader);
        }
    }

    @Test
    public void testInvalidDateRange() throws Exception {

        InputStream fstream = null;
        BufferedReader in = null;
        CsvReader reader = null;

        try {

            fstream = this.getClass().getClassLoader().getResourceAsStream("megacalllog.txt");
            in = new BufferedReader(new InputStreamReader(fstream));
            reader = new CsvReader(in, Constants.ASTERISK_LOG_SPERATOR);

            Set<String> queuenames = new HashSet<String>();
            queuenames.add("superqueue");
            queuenames.add("internetTechSupport");
            CallMapper mapperc = new CallMapper(queuenames);

            LogParser<LogMapper<CallMetric>> queueLogParser = new LogParser<LogMapper<CallMetric>>();
            queueLogParser.setLogMapper(mapperc);

            Calendar cFromDate = DateMaker.makeFromString("02/17/2008");
            Calendar cToDate = DateMaker.makeFromString("02/10/2008");

            queueLogParser.parse(cFromDate, cToDate, reader);

            WeekDistribution weeksD = new WeekDistribution();
            weeksD.init(cFromDate, cToDate);
            fail("exception should occur");
        } catch (Exception e) {
        } finally {
            closeResources(fstream, in, reader);
        }
    }

    @Test
    public void testInvalidDateWeeks() throws Exception {

        InputStream fstream = null;
        BufferedReader in = null;
        CsvReader reader = null;

        try {

            fstream = this.getClass().getClassLoader().getResourceAsStream("megacalllog.txt");
            in = new BufferedReader(new InputStreamReader(fstream));
            reader = new CsvReader(in, Constants.ASTERISK_LOG_SPERATOR);

            Set<String> queuenames = new HashSet<String>();
            queuenames.add("superqueue");
            queuenames.add("internetTechSupport");
            CallMapper mapperc = new CallMapper(queuenames);

            LogParser<LogMapper<CallMetric>> queueLogParser = new LogParser<LogMapper<CallMetric>>();
            queueLogParser.setLogMapper(mapperc);

            Calendar cFromDate = DateMaker.makeFromString("02/17/2008");
            Calendar cToDate = DateMaker.makeFromString("02/21/2008");

            queueLogParser.parse(cFromDate, cToDate, reader);

            WeekDistribution weeksD = new WeekDistribution();
            weeksD.init(cFromDate, cToDate);
            fail("exception should occur");
        } catch (Exception e) {
        } finally {
            closeResources(fstream, in, reader);
        }
    }

    @Test
    public void testInvalidDateWeek2() throws Exception {

        InputStream fstream = null;
        BufferedReader in = null;
        CsvReader reader = null;

        try {

            fstream = this.getClass().getClassLoader().getResourceAsStream("megacalllog.txt");
            in = new BufferedReader(new InputStreamReader(fstream));
            reader = new CsvReader(in, Constants.ASTERISK_LOG_SPERATOR);

            Set<String> queuenames = new HashSet<String>();
            queuenames.add("superqueue");
            queuenames.add("internetTechSupport");
            CallMapper mapperc = new CallMapper(queuenames);

            LogParser<LogMapper<CallMetric>> queueLogParser = new LogParser<LogMapper<CallMetric>>();
            queueLogParser.setLogMapper(mapperc);

            Calendar cFromDate = DateMaker.makeFromString("02/17/2008");
            Calendar cToDate = DateMaker.makeFromString("02/24/2008");
            cToDate.add(Calendar.SECOND, -1); //end date can't be exclusive

            queueLogParser.parse(cFromDate, cToDate, reader);

            WeekDistribution weeksD = new WeekDistribution();
            weeksD.init(cFromDate, cToDate);
            fail("exception should occur");
        } catch (Exception e) {
        } finally {
            closeResources(fstream, in, reader);
        }
    }

    private void closeResources(InputStream fstream, BufferedReader in, CsvReader reader) {
        try {
                reader.close();
            } catch (Exception e) {
            }
            try {
                in.close();
            } catch (Exception e) {
            }
            try {
                fstream.close();
            } catch (Exception e) {
            }
    }
}
TOP

Related Classes of metrics4Asterisk.parse.WeekdayLogParserTest

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.