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

com.github.jlgrock.javascriptframework.closuretesting.resultparsing.parsers.TestTimingStatisticParser Maven / Gradle / Ivy

package com.github.jlgrock.javascriptframework.closuretesting.resultparsing.parsers;

import java.util.regex.Pattern;

import com.github.jlgrock.javascriptframework.closuretesting.resultparsing.testingcomponents.IParsedDivObject;
import com.github.jlgrock.javascriptframework.closuretesting.resultparsing.testingcomponents.TestCase;
import com.github.jlgrock.javascriptframework.closuretesting.resultparsing.testingcomponents.TestTimingStatistic;
import com.github.jlgrock.javascriptframework.mavenutils.parsing.ParseUtils;

/**
 * The parsing for the object representing the average time per test that it took to execute the test cases.
 * 
 * This would be something like the following:
 * 
 * 2 ms/test. 13 files loaded.
 *
 */
public class TestTimingStatisticParser implements IDivParser {
	/**
	 * The position of the time.
	 */
	private static final int TIME_POSITION = 1;

	/**
	 * The position of the measurement.
	 */
	private static final int MEASUREMENT_POSITION = 2;
	
	/**
	 * The position of the number of files.
	 */
	private static final int NUM_FILES_POSITION = 3;
	
	/**
	 * pattern matches "# passed, # failed".
	 */
	private static final String PASSED_FAILED_PATTERN = "\\s*([0-9]*)\\s*(\\w*)/test,\\s*([0-9]*)\\s*files loaded.\\s*";

	@Override
	public final boolean matches(final TestCase testCase, final String divText) {
		boolean returnVal = false;
		if (testCase != null && testCase.getTestCaseStart() == null
				&& testCase.getFailureStatistic() != null
				&& Pattern.matches(PASSED_FAILED_PATTERN, divText)) {
			returnVal = true;
		}
		return returnVal;
	}

	@Override
	public final IParsedDivObject parse(final String divText) {
		String[] parsedValues = ParseUtils.parseIntoGroups(
				PASSED_FAILED_PATTERN, divText);
		int parsedTime = Integer.valueOf(parsedValues[TIME_POSITION]);
		String parsedUnitOfMeasurement = parsedValues[MEASUREMENT_POSITION];
		int parsedNumFiles = Integer.valueOf(parsedValues[NUM_FILES_POSITION]);
		return new TestTimingStatistic(parsedTime, parsedUnitOfMeasurement,
				parsedNumFiles);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy