package photoSpreadUtilities;
import java.io.File;
import java.util.ArrayList;
import junit.framework.TestCase;
import photoSpreadObjects.PhotoSpreadDoubleObject;
import photoSpreadObjects.PhotoSpreadImage;
import photoSpreadObjects.PhotoSpreadObject;
import photoSpreadObjects.PhotoSpreadStringObject;
import photoSpreadObjects.PhotoSpreadTextFile;
import photoSpreadTable.PhotoSpreadCell;
import photoSpreadTable.PhotoSpreadTable;
import photoSpreadTable.PhotoSpreadTableModel;
public class TreeSetRandomSubsetIterableTest extends TestCase {
TreeSetRandomSubsetIterable<PhotoSpreadObject> _tree;
PhotoSpreadObjIndexerFinder _index;
PhotoSpreadTableModel _model;
PhotoSpreadCell _cell;
PhotoSpreadStringObject _str1Obj;
PhotoSpreadStringObject _str2Obj;
PhotoSpreadDoubleObject _double9Obj;
PhotoSpreadDoubleObject _double11Obj;
String _unixFileName = "/usr/local/bin/foo.txt";
String _winFileName = "C:\\Program Files\\FooApp\\bin\\happyHour.exe";
String _imgFileName = "dc00000002.jpg";
PhotoSpreadTextFile _unixTextFilePSObj;
PhotoSpreadTextFile _winTextFilePSObj;
PhotoSpreadImage _imgFilePSObj;
File _unixJavaIOFileObj;
File _winJavaIOFileObj;
File _imgJavaIOFileObj;
PhotoSpreadTable _table1;
protected void setUp() throws Exception {
super.setUp();
//_model = new PhotoSpreadTableModel();
_model = null;
_cell = new PhotoSpreadCell(_model, 0, 1);
_tree = new TreeSetRandomSubsetIterable<PhotoSpreadObject>();
_index = new PhotoSpreadObjIndexerFinder();
_tree.setIndexer(_index);
_str1Obj = new PhotoSpreadStringObject(_cell, "Str1Obj");
_str2Obj = new PhotoSpreadStringObject(_cell, "Str2Obj");
_double9Obj = new PhotoSpreadDoubleObject(_cell, 9.0);
_double11Obj = new PhotoSpreadDoubleObject(_cell, 11.0);
_unixJavaIOFileObj = new File(_unixFileName);
_winJavaIOFileObj = new File(_winFileName);
_imgJavaIOFileObj = new File(_imgFileName);
_unixTextFilePSObj = new PhotoSpreadTextFile(_cell, _unixFileName);
_winTextFilePSObj = new PhotoSpreadTextFile(_cell, _winFileName);
_imgFilePSObj = new PhotoSpreadImage(_cell, _imgFileName);
//_table1 = new PhotoSpreadTable (_model, new JFrame());
_table1 = null;
}
public void testAddE() {
assertTrue("Add string obj.", _tree.add(_str1Obj));
assertEquals("Index retrieves string obj1.", _str1Obj, _index.find(_str1Obj.valueOf()));
assertEquals("Tree retrieves string obj1.", _str1Obj, _tree.find(_str1Obj.valueOf()));
assertNull("Different string properly retrieves null", _tree.find(_str2Obj.valueOf()));
assertTrue("Add second string obj.", _tree.add(_str2Obj));
assertEquals("Index retrieves second string obj.", _str2Obj, _index.find(_str2Obj.valueOf()));
assertEquals("Tree retrieves second string obj.", _str2Obj, _tree.find(_str2Obj.valueOf()));
assertEquals("Tree still retrieves first string obj.", _str1Obj, _tree.find(_str1Obj.valueOf()));
assertTrue("Add Double obj.", _tree.add(_double9Obj));
assertEquals("Index retrieves Double obj 9.", _double9Obj, _index.find(_double9Obj.valueOf()));
assertEquals("Tree retrieves Double obj 9.", _double9Obj, _tree.find(_double9Obj.valueOf()));
assertNull("Different Double properly retrieves null", _tree.find(_double11Obj.valueOf()));
}
public void testClear() {
_tree.clear();
assertTrue("Indexer should be empty", _index.isEmpty());
assertEquals("Size should be 0.", 0, _index.size());
assertNull("Retrieving anything should be null", _tree.find(10.0));
}
public void testAddAllCollection() {
ArrayList<PhotoSpreadObject> coll = new ArrayList<PhotoSpreadObject>();
coll.add(_str1Obj);
coll.add(_str2Obj);
coll.add(_double9Obj);
coll.add(_double11Obj);
assertTrue("addAll an ArrayList.", _tree.addAll(coll));
assertEquals("After addAll: Tree retrieves string obj1.", _str1Obj, _tree.find(_str1Obj.valueOf()));
assertEquals("After addAll: Tree retrieves string obj2.", _str2Obj, _tree.find(_str2Obj.valueOf()));
assertEquals("After addAll: Tree retrieves Double obj 9.", _double9Obj, _tree.find(_double9Obj.valueOf()));
assertEquals("After addAll: Tree retrieves Double obj 11.", _double11Obj, _tree.find(_double11Obj.valueOf()));
}
public void testRemoveObject() {
// Set the indexer up to contain all objects:
fillIndexer ();
assertTrue("Remove first string obj.", _tree.remove(_str1Obj));
assertNull("After remove first obj: strObj1 no longer there.", _tree.find(_str1Obj.valueOf()));
assertEquals("After remove first obj: strObj2 still there.", _str2Obj, _tree.find(_str2Obj.valueOf()));
}
public void testFindFile() {
_tree.add(_unixTextFilePSObj);
_tree.add(_winTextFilePSObj);
_tree.add(_imgFilePSObj);
assertEquals("Unix file object retrieval.", _unixTextFilePSObj, _tree.find(_unixJavaIOFileObj));
assertEquals("Windows file object retrieval.", _winTextFilePSObj, _tree.find(_winJavaIOFileObj));
assertEquals("Image file object retrieval.", _imgFilePSObj, _tree.find(_imgJavaIOFileObj));
}
/* public void testFindPhotoSpreadTable() {
fail("Not yet implemented");
}
*/
private void fillIndexer () {
ArrayList<PhotoSpreadObject> coll = new ArrayList<PhotoSpreadObject>();
coll.add(_str1Obj);
coll.add(_str2Obj);
coll.add(_double9Obj);
coll.add(_double11Obj);
_tree.addAll(coll);
}
}