package de.saring.exerciseviewer.parser;
import de.saring.exerciseviewer.core.EVException;
import de.saring.exerciseviewer.parser.impl.PolarSRawParser;
import de.saring.exerciseviewer.parser.impl.TimexPwxParser;
import de.saring.exerciseviewer.parser.impl.garminfit.GarminFitParser;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* This class contains all unit tests for the ExerciseParserFactory class.
*
* @author Stefan Saring
*/
public class ExerciseParserFactoryTest {
/**
* Tests of getParser() method.
*/
@Test
public void testGetParser() throws EVException {
// tests for SRD parser
ExerciseParser parser = ExerciseParserFactory.getParser("exercises/exercise1.srd");
assertTrue(parser instanceof PolarSRawParser);
parser = ExerciseParserFactory.getParser("C:\\Test 123\\Exercise2.SRD");
assertTrue(parser instanceof PolarSRawParser);
parser = ExerciseParserFactory.getParser("exercises/shouldtherebeafile.pwx");
assertTrue(parser instanceof TimexPwxParser);
parser = ExerciseParserFactory.getParser("C:\\Test 123\\Exercise3.fit");
assertTrue(parser instanceof GarminFitParser);
// tests for RS200SD parser (implemented in Groovy)
parser = ExerciseParserFactory.getParser("exercises/exercise1.xml");
assertEquals("de.saring.exerciseviewer.parser.impl.PolarRS200SDParser", parser.getClass().getName());
parser = ExerciseParserFactory.getParser("C:\\Test 123\\Exercise2.XML");
assertEquals("de.saring.exerciseviewer.parser.impl.PolarRS200SDParser", parser.getClass().getName());
parser = ExerciseParserFactory.getParser("exercise1.ped");
assertEquals("de.saring.exerciseviewer.parser.impl.PolarPedParser", parser.getClass().getName());
try {
// this parser is unknown, must fail
ExerciseParserFactory.getParser("exercises/exercise1.xyz");
fail("Parser for suffix xyz must not be found!");
} catch (EVException e) {
}
}
}