package gui;

import java.awt.event.ActionEvent;
import java.io.File;

import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.JToggleButton;

//import pbl2011.gui.FileController;
import pbl2011.gui.UMLCanvas;
import pbl2011.mvc.Model;

import jp.co.dgic.testing.framework.DJUnitTestCase;
import junitx.util.PrivateAccessor;

public class FileControllerTest extends DJUnitTestCase {

//	FileController _target;
//	Model m;
//	JToggleButton tb;
//	@Override
//	protected void setUp() throws Exception {
//		// TODO 自動生成されたメソッド・スタブ
//		super.setUp();
//
//		m = new Model();
//		UMLCanvas u = new UMLCanvas(10, 10, 10, m);
//		_target = new FileController(m);
//		tb =new JToggleButton();
//
//	}
//
//	@Override
//	protected void tearDown() throws Exception {
//		// TODO 自動生成されたメソッド・スタブ
//		super.tearDown();
//
//	}
//
//	public void testExecuteSave001() throws Throwable {
//
//		setReturnValueAtAllTimes(UMLCanvas.class, "getModel", m);
//		setReturnValueAtAllTimes(JFileChooser.class, "showSaveDialog",
//				JFileChooser.APPROVE_OPTION);
//		setReturnValueAtAllTimes(JFileChooser.class, "getSelectedFile",
//				new File("C:\test.txt"));
//		setReturnValueAtAllTimes(Model.class, "save", Boolean.TRUE);
//
//		/* テスト実行 */
//		PrivateAccessor.invoke(_target, "executeSave",
//				new Class[] { ActionEvent.class },
//				new Object[] { new ActionEvent(tb,
//						ActionEvent.ACTION_PERFORMED, "") });
//
//		assertTrue(isCalled(JFileChooser.class, "getSelectedFile"));
//		assertTrue(isCalled(Model.class, "save"));
//		assertFalse(isCalled(JOptionPane.class, "showConfirmDialog"));
//
//	}
//
//	public void testExecuteSave002() throws Throwable {
//
//		setReturnValueAtAllTimes(UMLCanvas.class, "getModel", m);
//		setReturnValueAtAllTimes(JFileChooser.class, "showSaveDialog",
//				JFileChooser.CANCEL_OPTION);
//		setReturnValueAtAllTimes(JFileChooser.class, "getSelectedFile",
//				new File("C:\test.txt"));
//		setReturnValueAtAllTimes(Model.class, "save", Boolean.TRUE);
//
//		/* テスト実行 */
//		PrivateAccessor.invoke(_target, "executeSave",
//				new Class[] { ActionEvent.class },
//				new Object[] { new ActionEvent(tb,
//						ActionEvent.ACTION_PERFORMED, "") });
//
//		assertFalse(isCalled(Model.class, "save"));
//		assertFalse(isCalled(JOptionPane.class, "showConfirmDialog"));
//
//	}
//
//
//	public void testExecuteSave003() throws Throwable {
//
//		setReturnValueAtAllTimes(UMLCanvas.class, "getModel", m);
//		setReturnValueAtAllTimes(JFileChooser.class, "showSaveDialog",
//				JFileChooser.APPROVE_OPTION);
//		setReturnValueAtAllTimes(JFileChooser.class, "getSelectedFile",
//				new File("C:\test.txt"));
//		setReturnValueAtAllTimes(Model.class, "save", Boolean.FALSE);
//		setReturnNullAtAllTimes(JOptionPane.class, "showConfirmDialog");
//
//		/* テスト実行 */
//		PrivateAccessor.invoke(_target, "executeSave",
//				new Class[] { ActionEvent.class },
//				new Object[] { new ActionEvent(tb,
//						ActionEvent.ACTION_PERFORMED, "") });
//
//		assertTrue(isCalled(Model.class, "save"));
//		assertTrue(isCalled(JOptionPane.class, "showConfirmDialog"));
//
//	}
//
//	public void testExecuteRead001() throws Throwable {
//
//		setReturnValueAtAllTimes(UMLCanvas.class, "getModel", m);
//		setReturnValueAtAllTimes(JFileChooser.class, "showOpenDialog",
//				JFileChooser.APPROVE_OPTION);
//		setReturnValueAtAllTimes(JFileChooser.class, "getSelectedFile",
//				new File("C:\test.txt"));
//		setReturnValueAtAllTimes(Model.class, "read", Boolean.TRUE);
//
//		/* テスト実行 */
//		PrivateAccessor.invoke(_target, "executeRead",
//				new Class[] { ActionEvent.class },
//				new Object[] { new ActionEvent(tb,
//						ActionEvent.ACTION_PERFORMED, "") });
//
//		assertTrue(isCalled(JFileChooser.class, "getSelectedFile"));
//		assertTrue(isCalled(Model.class, "read"));
//		assertFalse(isCalled(JOptionPane.class, "showConfirmDialog"));
//
//	}
//
//	public void testExecuteRead002() throws Throwable {
//
//		setReturnValueAtAllTimes(UMLCanvas.class, "getModel", m);
//		setReturnValueAtAllTimes(JFileChooser.class, "showOpenDialog",
//				JFileChooser.CANCEL_OPTION);
//		setReturnValueAtAllTimes(JFileChooser.class, "getSelectedFile",
//				new File("C:\test.txt"));
//		setReturnValueAtAllTimes(Model.class, "read", Boolean.TRUE);
//
//		/* テスト実行 */
//		PrivateAccessor.invoke(_target, "executeRead",
//				new Class[] { ActionEvent.class },
//				new Object[] { new ActionEvent(tb,
//						ActionEvent.ACTION_PERFORMED, "") });
//
//		assertFalse(isCalled(Model.class, "read"));
//		assertFalse(isCalled(JOptionPane.class, "showConfirmDialog"));
//
//	}
//
//	public void testExecuteRead003() throws Throwable {
//
//		setReturnValueAtAllTimes(UMLCanvas.class, "getModel", m);
//		setReturnValueAtAllTimes(JFileChooser.class, "showOpenDialog",
//				JFileChooser.APPROVE_OPTION);
//		setReturnValueAtAllTimes(JFileChooser.class, "getSelectedFile",
//				new File("C:\test.txt"));
//		setReturnValueAtAllTimes(Model.class, "read", Boolean.FALSE);
//		setReturnNullAtAllTimes(JOptionPane.class, "showConfirmDialog");
//
//		/* テスト実行 */
//		PrivateAccessor.invoke(_target, "executeRead",
//				new Class[] { ActionEvent.class },
//				new Object[] { new ActionEvent(tb,
//						ActionEvent.ACTION_PERFORMED, "") });
//
//		assertTrue(isCalled(Model.class, "read"));
//		assertTrue(isCalled(JOptionPane.class, "showConfirmDialog"));

//	}
}
