Package metrics4Asterisk.parse

Source Code of metrics4Asterisk.parse.AgentLogParserTest

package metrics4Asterisk.parse;

import metrics4Asterisk.metrics.AgentMetric;
import metrics4Asterisk.util.DateMaker;
import com.csvreader.CsvReader;
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 junit.framework.TestCase;
import metrics4Asterisk.util.Constants;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

/**
*
* @author lstine
*/
public class AgentLogParserTest extends TestCase {
   
    Set<String> agentNames;
    Set<String> queueNames;

    @Before
    @Override
    public void setUp() {
        agentNames = new HashSet<String>(2);
        agentNames.add("Local/6005@internal/n");
        queueNames = new HashSet<String>(2);
        queueNames.add("superqueue");
        queueNames.add("NONE");
    }

    @After
    @Override
    public void tearDown() {
        agentNames = null;
        queueNames = null;
    }

    /**
     * Test one login with all events inside of the date range
     */
    @Test
    public void test6005Basic() throws Exception {
        System.out.println("test6005Basic");

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

        try {

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

            Calendar cFromDate = DateMaker.makeFromString("06/15/2008");
            Calendar cToDate = DateMaker.makeFromLong(1213786805000L);

            LogParser<LogMapper<AgentMetric>> agentLogParser = new LogParser<LogMapper<AgentMetric>>();
            AgentMapper mapper = new AgentMapper(agentNames, queueNames);
            agentLogParser.setLogMapper(mapper);
            agentLogParser.parse(cFromDate, cToDate, reader);

            LogMapper<AgentMetric> agentLoginMap = agentLogParser.getLogMapper();
            AgentMetric agentMetric = agentLoginMap.getMap().get("Local/6005@internal/n");
            System.out.println("A agent is " + agentMetric);
            assertEquals(9414000, agentMetric.getTimeInQueue());
            assertEquals(425000, agentMetric.getTimeInPause());
            assertEquals("4.5", agentMetric.getPercentPaused());
            //there should be no warnings
            assertEquals(0, mapper.getWarnings().size());

        } catch (Exception e) {
            fail("no exceptions are expected");
        } finally {
            try {reader.close();} catch (Exception e) {}
            try {in.close();} catch (Exception e) {}
            try {fstream.close();} catch (Exception e) {}
        }
    }

    /**
     * A test with an agent's login to queue and pause events prior to the date range
     * @throws Exception
     */
    @Test
    public void testQueueEdgeCaseFront() throws Exception {
        System.out.println("testQueueEdgeCaseFront");

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

        try {

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

            Calendar cFromDate = DateMaker.makeFromLong(1213782808000L);
            Calendar cToDate = DateMaker.makeFromLong(1213786810000L);

            LogParser<LogMapper<AgentMetric>> agentLogParser = new LogParser<LogMapper<AgentMetric>>();
            AgentMapper mapper = new AgentMapper(agentNames, queueNames);
            agentLogParser.setLogMapper(mapper);
            agentLogParser.parse(cFromDate, cToDate, reader);

            LogMapper<AgentMetric> agentLoginMap = agentLogParser.getLogMapper();
            AgentMetric agentMetric = agentLoginMap.getMap().get("Local/6005@internal/n");
            System.out.println("A agent is " + agentMetric);
            assertEquals(0, agentMetric.getTimeInQueue());
            assertEquals(0, agentMetric.getTimeInPause());
            assertEquals("0", agentMetric.getPercentPaused());

        } catch (Exception e) {
            fail("no exceptions are expected");
        } finally {
            try {reader.close();} catch (Exception e) {}
            try {in.close();} catch (Exception e) {}
            try {fstream.close();} catch (Exception e) {}
        }
    }

     /**
     * A test with an agent's login to queue events after to the date range
     * @throws Exception
     */
    @Test
    public void testQueueEdgeCaseEnd() throws Exception {
        System.out.println("testQueueEdgeCaseEnd");

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

        try {

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

            Calendar cFromDate = DateMaker.makeFromString("06/15/2008");
            Calendar cToDate = DateMaker.makeFromLong(1213785879000L);

            LogParser<LogMapper<AgentMetric>> agentLogParser = new LogParser<LogMapper<AgentMetric>>();
            AgentMapper mapper = new AgentMapper(agentNames, queueNames);
            agentLogParser.setLogMapper(mapper);
            agentLogParser.parse(cFromDate, cToDate, reader);

            LogMapper<AgentMetric> agentLoginMap = agentLogParser.getLogMapper();
            AgentMetric agentMetric = agentLoginMap.getMap().get("Local/6005@internal/n");
            System.out.println("A agent is " + agentMetric);
            assertEquals(0, agentMetric.getTimeInQueue());
            assertEquals(425000, agentMetric.getTimeInPause());
            assertEquals("0", agentMetric.getPercentPaused());

        } catch (Exception e) {
            fail("no exceptions are expected");
        } finally {
            try {reader.close();} catch (Exception e) {}
            try {in.close();} catch (Exception e) {}
            try {fstream.close();} catch (Exception e) {}
        }
    }

    /**
     * A test with an agent's log out of queue while paused
     * @throws Exception
     */
    @Test
    public void testQueueEdgeCaseNoUnPause() throws Exception {
        System.out.println("testQueueEdgeCaseNoUnPause");

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

        try {

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

            Calendar cFromDate = DateMaker.makeFromLong(1213785879000L);
            Calendar cToDate = DateMaker.makeFromLong(1213787000000L);

            LogParser<LogMapper<AgentMetric>> agentLogParser = new LogParser<LogMapper<AgentMetric>>();
            AgentMapper mapper = new AgentMapper(agentNames, queueNames);
            agentLogParser.setLogMapper(mapper);
            agentLogParser.parse(cFromDate, cToDate, reader);

            LogMapper<AgentMetric> agentLoginMap = agentLogParser.getLogMapper();
            AgentMetric agentMetric = agentLoginMap.getMap().get("Local/6005@internal/n");
            System.out.println("A agent is " + agentMetric);
            assertEquals(80000, agentMetric.getTimeInQueue());
            assertEquals(60000, agentMetric.getTimeInPause());
            assertEquals("75", agentMetric.getPercentPaused());

        } catch (Exception e) {
            fail("no exceptions are expected");
        } finally {
            try {reader.close();} catch (Exception e) {}
            try {in.close();} catch (Exception e) {}
            try {fstream.close();} catch (Exception e) {}
        }
    }
}
TOP

Related Classes of metrics4Asterisk.parse.AgentLogParserTest

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.