/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package junitExam;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import junit.framework.TestCase;
/**
*
* @author
*/
public class FileReaderTester extends TestCase{
/**
* A constructor is required here!
* @param name
*/
public FileReaderTester(String name){
super(name);
}
private FileReader _input;
private FileReader _empty;
int [] a;
/**
* Create objects.
*/
@Override
protected void setUp(){
try{
_input = new FileReader("E:/data.txt");
_empty = newEmptyFile();
//Collections.unmodifiableSet(s);
} catch (FileNotFoundException e){
throw new RuntimeException("unable to open test file");
} catch (IOException ex) {
Logger.getLogger(FileReaderTester.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
* Remove objects.
*/
@Override
protected void tearDown(){
try{
_input.close();
} catch (IOException e){
throw new RuntimeException("error on closing test file");
}
}
public void testRead() throws IOException {
char ch = '&';
//_input.close();
for(int i = 0;i < 4;i++){
ch = (char) _input.read();
//System.out.println(ch);
assert('d' == ch);//鍙鏈夊氨瀵广€? //assertEquals('B',ch);//match fist 4 characters.
}
}
public void testReadAtEnd() throws IOException{
int ch = -1234;
for(int i = 1;i < 140;i++) {
ch = _input.read();
System.out.println("testReadAtEnd");
System.out.println(ch);
assertEquals("read at end",-1,_input.read());
}
}
public void testReadBoundaries() throws IOException{
assertEquals("read first char",'B',_input.read());
int ch ;
for(int i = 1;i < 140;i++) {
ch = _input.read();
System.out.println("testReadBoundaries");
System.out.println(ch);
assertEquals("read last char",'6',_input.read());
assertEquals("read at end",-1,_input.read());
assertEquals("read past end",-1,_input.read());
}
}
public void testReadAfterClose() throws IOException {
_input.close();
try {
_input.read();
//IOException涔嬪鐨勪换浣曞紓甯搁兘灏嗕互涓€鑸柟寮忓舰鎴愪竴涓敊璇€? fail ("no exception for read past end");
} catch (IOException io) {}
}
private FileReader newEmptyFile() throws FileNotFoundException, IOException {
File empty = new File ("empty.txt");
FileOutputStream out = new FileOutputStream(empty);
out.close();
return new FileReader(empty);
}
public void tesEmptyRead() throws IOException{
assertEquals(-1,_input.read());
}
//convert array to list
List _skill = new ArrayList();
String [] getSkills(){
return (String[]) _skill.toArray(new String[0]);
}
void setSkill(int index,String newSkill){
_skill.set(index, newSkill);
}
}