001 package org.hackystat.sensor.xmldata.option; 002 003 import java.io.File; 004 import java.util.ArrayList; 005 import java.util.List; 006 007 import org.hackystat.sensor.xmldata.XmlDataController; 008 import org.junit.Assert; 009 import org.junit.Test; 010 011 /** 012 * Tests if the FileOption operates as intended. 013 * @author aito 014 * 015 */ 016 public class TestFileOption { 017 /** Tests if isValid returns false when no arguments are specified. */ 018 @Test 019 public void testNoFileArguments() { 020 XmlDataController controller = new XmlDataController(); 021 Option fileOption = OptionFactory.getInstance(controller, FileOption.OPTION_NAME, 022 new ArrayList<String>()); 023 Assert.assertFalse("A file option should have at least 1 file argument.", fileOption 024 .isValid()); 025 } 026 027 /** Tests if isValid returns true if one file is specified. */ 028 @Test 029 public void testOneFileArgument() { 030 XmlDataController controller = new XmlDataController(); 031 List<String> parameters = new ArrayList<String>(); 032 String testPackage = "src/org/hackystat/sensor/xmldata/testdataset/"; 033 File testFile = new File(System.getProperty("user.dir"), testPackage + "testdata.xml"); 034 parameters.add(testFile.toString()); 035 Option fileOption = OptionFactory.getInstance(controller, FileOption.OPTION_NAME, 036 parameters); 037 Assert.assertTrue("A file option with one file should be valid.", fileOption.isValid()); 038 } 039 040 /** Tests if isValid returns true if more than one file is specified. */ 041 @Test 042 public void testMultipleFileArguments() { 043 XmlDataController controller = new XmlDataController(); 044 List<String> parameters = new ArrayList<String>(); 045 String testPackage = "src/org/hackystat/sensor/xmldata/testdataset/"; 046 File testFile1 = new File(System.getProperty("user.dir"), testPackage + "testdata.xml"); 047 File testFile2 = new File(System.getProperty("user.dir"), testPackage + "testdata2.xml"); 048 parameters.add(testFile1.toString()); 049 parameters.add(testFile2.toString()); 050 Option fileOption = OptionFactory.getInstance(controller, FileOption.OPTION_NAME, 051 parameters); 052 Assert.assertTrue("A file option with more than one file should be valid.", fileOption 053 .isValid()); 054 } 055 056 /** Tests if isValid returns false if a non-existant file is specified. */ 057 @Test 058 public void testNonExistantFile() { 059 XmlDataController controller = new XmlDataController(); 060 List<String> parameters = new ArrayList<String>(); 061 parameters.add("Test.xml"); 062 Option fileOption = OptionFactory.getInstance(controller, FileOption.OPTION_NAME, 063 parameters); 064 Assert.assertFalse("A non-existant file should invalidate this option.", fileOption 065 .isValid()); 066 } 067 }