package kdk.android.simplydo.test;

import java.io.File;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

import com.robotium.solo.Solo;

import android.os.Bundle;
import android.os.Environment;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import kdk.android.simplydo.CachingDataViewer;
import kdk.android.simplydo.ItemDesc;
import kdk.android.simplydo.L;
import kdk.android.simplydo.ListDesc;
import kdk.android.simplydo.ListListSorter;
import kdk.android.simplydo.RestoreActivity;
import kdk.android.simplydo.SettingsActivity;
import kdk.android.simplydo.SimplyDoActivity;

public class SimplyDoWBTest extends ActivityInstrumentationTestCase2<SimplyDoActivity> {
	private Solo solo;

	public SimplyDoWBTest() {
		super(SimplyDoActivity.class);
	}

	@Override
	protected void setUp() throws Exception {
		super.setUp();
		solo = new Solo(getInstrumentation());
	}

	protected void tearDown() throws Exception {
		solo.finishOpenedActivities();
		super.tearDown();

	}

	public void testRun1() {
		getActivity();
		Method method;
		ListDesc ld = new ListDesc();
		List<ListDesc> list = new ArrayList<ListDesc>();
		list.add(ld);

		ListListSorter lls = new ListListSorter();
		lls.sort(list);
		lls.setSortingMode("ciao");
		
		CachingDataViewer cdv = new CachingDataViewer(null);
cdv.fetchList(1);
cdv.createItem("prova");
cdv.deleteInactive();
try {
	method = cdv.getClass().getDeclaredMethod("itemIdBarrier", ItemDesc.class);
	method.setAccessible(true);
	method.invoke(cdv, -1);
	method = cdv.getClass().getDeclaredMethod("PlushTasksNoLock", ItemDesc.class);
	method.setAccessible(true);
	method.invoke(cdv, -1);
} catch (SecurityException e1) {
	// TODO Auto-generated catch block
	e1.printStackTrace();
} catch (NoSuchMethodException e1) {
	// TODO Auto-generated catch block
	e1.printStackTrace();
} catch (IllegalArgumentException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
} catch (IllegalAccessException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
} catch (InvocationTargetException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}

		try {
			method = lls.getClass().getDeclaredMethod("sort", List.class);
			method.invoke(lls.getClass(), "null");
		} catch (NoSuchMethodException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//SimplyDoActivity myActivity = getActivity();
		//getInstrumentation().callActivityOnRestart(myActivity);
	}

	public void testRun2() {
		L l = new L();
		ListDesc ld = new ListDesc();
		Method method;
		
		try {
			method = ld.getClass().getDeclaredMethod("setId", int.class);
			method.setAccessible(true);
			method.invoke(ld, 1);
		} catch (SecurityException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (NoSuchMethodException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (IllegalArgumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		try {
			RestoreActivity c = new RestoreActivity();
			method = c.getClass().getDeclaredMethod("doRestore");
			method.setAccessible(true);
			//c.doRestore();
			method.invoke(c);
		} catch (NoSuchMethodException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

	
}