package jp.hrtdotnet.java.util;


import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;

import junit.framework.TestCase;

public class OperationTest extends TestCase {

    /* (非 Javadoc)
     * @see junit.framework.TestCase#setUp()
     */
    protected void setUp() throws Exception {
        super.setUp();
    }

    /* (非 Javadoc)
     * @see junit.framework.TestCase#tearDown()
     */
    protected void tearDown() throws Exception {
        super.tearDown();
    }    

    /**
     * {@link jp.hrtdotnet.java.util.Operation#newInstance(java.lang.String, java.lang.Class[], java.lang.Object[])} のためのテスト・メソッド。
     */
    public void testNewInstance() {
        fail("まだ実装されていません");
    }

    /**
     * {@link jp.hrtdotnet.java.util.Operation#newInstanceIgnoreError(java.lang.String, java.lang.Class[], java.lang.Object[])} のためのテスト・メソッド。
     */
    public void testNewInstanceIgnoreError() {
        fail("まだ実装されていません");
    }

    /**
     * {@link jp.hrtdotnet.java.util.Operation#invokeMethod(java.lang.String, java.lang.Class[], java.lang.Object, java.lang.Object[])} のためのテスト・メソッド。
     */
    public void testInvokeMethod() {
        fail("まだ実装されていません");
    }

    /**
     * {@link jp.hrtdotnet.java.util.Operation#invokeStaticMethod(java.lang.String, java.lang.String, java.lang.Class[], java.lang.Object[])} のためのテスト・メソッド。
     */
    public void testInvokeStaticMethodStringStringClassArrayObjectArray() {
        fail("まだ実装されていません");
    }

    /**
     * {@link jp.hrtdotnet.java.util.Operation#invokeStaticMethod(java.lang.Class, java.lang.String, java.lang.Class[], java.lang.Object[])} のためのテスト・メソッド。
     */
    public void testInvokeStaticMethodClassStringClassArrayObjectArray() {
        fail("まだ実装されていません");
    }

    /**
     * {@link jp.hrtdotnet.java.util.Operation#invokeMethodRun(java.lang.Class, java.lang.String)} のためのテスト・メソッド。
     */
    public void testInvokeMethodRun_ClassString() {
        try {
            Operation.invokeMethodRun(OperationStub.class, "hdn");
        } catch (Exception e) {
            fail();
        }
    }

    /**
     * {@link jp.hrtdotnet.java.util.Operation#invokeMethodRun(java.lang.Class, java.lang.String, java.lang.String, java.lang.String)} のためのテスト・メソッド。
     */
    public void testInvokeMethodRunClassStringStringString() {
        fail("まだ実装されていません");
    }

    /**
     * {@link jp.hrtdotnet.java.util.Operation#invokeMethodRun(java.lang.Class, java.lang.String, java.lang.String, java.lang.String, int)} のためのテスト・メソッド。
     */
    public void testInvokeMethodRunClassStringStringStringInt() {
        fail("まだ実装されていません");
    }

    /**
     * {@link jp.hrtdotnet.java.util.Operation#invokeMethodRun(java.lang.Object, java.lang.String)} のためのテスト・メソッド。
     */
    public void testInvokeMethodRunObjectString() {
        fail("まだ実装されていません");
    }

    /**
     * {@link jp.hrtdotnet.java.util.Operation#invokeMethodRun(java.lang.Object, java.lang.String, java.lang.String, java.lang.String)} のためのテスト・メソッド。
     */
    public void testInvokeMethodRunObjectStringStringString() {
        fail("まだ実装されていません");
    }

    /**
     * {@link jp.hrtdotnet.java.util.Operation#invokeMethodRun(java.lang.Object, java.lang.String, java.lang.String, java.lang.String, int)} のためのテスト・メソッド。
     */
    public void testInvokeMethodRunObjectStringStringStringInt() {
        fail("まだ実装されていません");
    }

    /**
     * {@link jp.hrtdotnet.java.util.Operation#invokeStaticMethodRun(java.lang.Class, java.lang.String)} のためのテスト・メソッド。
     */
    public void testInvokeStaticMethodRunClassString() {
        fail("まだ実装されていません");
    }

    /**
     * {@link jp.hrtdotnet.java.util.Operation#invokeStaticMethodRun(java.lang.Class, java.lang.String, java.lang.String, java.lang.String)} のためのテスト・メソッド。
     */
    public void testInvokeStaticMethodRunClassStringStringString() {
        fail("まだ実装されていません");
    }

    /**
     * {@link jp.hrtdotnet.java.util.Operation#invokeStaticMethodRun(java.lang.Class, java.lang.String, java.lang.String, java.lang.String, int)} のためのテスト・メソッド。
     */
    public void testInvokeStaticMethodRunClassStringStringStringInt() {
        fail("まだ実装されていません");
    }

    /**
     * {@link jp.hrtdotnet.java.util.Operation#variableTrace(java.io.PrintStream, java.lang.Object)} のためのテスト・メソッド。
     */
    public void testVariableTracePrintStreamObject() {
        Operation.variableTrace(System.out, new OperationStub());
    }

    /**
     * {@link jp.hrtdotnet.java.util.Operation#variableTrace(java.io.PrintWriter, java.lang.Object)} のためのテスト・メソッド。
     */
    public void testVariableTracePrintWriterObject() {
        try {
            File f = new File(System.getProperty("java.io.tmpdir") +
                    System.getProperty("file.separator") + "trace.txt");        
            if (f.exists()) {
                f.delete();            
            }
            f.createNewFile();
            FileOutputStream fw = new FileOutputStream(f);
            try {
                Operation.variableTrace(new PrintWriter(fw), new OperationStub());
            } finally  {
                if (fw != null) {
                    fw.close();
                }
            }
        } catch (Exception e) {
            fail();
        }
    }

    /**
     * {@link jp.hrtdotnet.java.util.Operation#isModifier(int, int)} のためのテスト・メソッド。
     */
    public void testIsModifier() {
        fail("まだ実装されていません");
    }    
    
}
