Code Search for Developers
 
 
  

Test1.cs from MASE: Agile Software Engineering at Krugle


Show Test1.cs syntax highlighted

using System;
using System.Threading;
using System.Collections;
using Whiteboard;
using Whiteboard.MaseWS;
using Whiteboard.Business_Interfaces;
using TableWhiteboard_HCI_Intergration.HCI_Objs;
using TableWhiteboard_HCI_Intergration;
using New_Study_Project;
using NUnit.Framework;

namespace TableWhiteboard_HCI_Intergration.Test
{
	public class Metric
	{ 
		public int num_of_poc_in_bcklog = 0;
		public int num_of_SelectedItr = 0;
		public int num_of_UnSelectedItr = 0;
		public ArrayList index_of_selected_Itr = new ArrayList();
		public ArrayList num_of_proc_in_index_of_selected_Itr = new ArrayList();
		public ArrayList index_of_unSelected_Itr = new ArrayList();
		public ArrayList num_of_proc_in_index_of_unSelected_Itr = new ArrayList();
		static webServicesService ws;

		public Metric(Dashboard dashboard, webServicesService ws)
		{
			Metric.ws = ws;

			num_of_poc_in_bcklog = dashboard.myBacklogList.Length;
			for(int i=0; i<dashboard.myIterationList.Length; i++)
			{
				bool thisIterationSelected = false;
				for(int j=0; j<dashboard.selectedIterations.Length; j++)
				{
					if(dashboard.myIterationList[i].iterationID == dashboard.selectedIterations[j].iterationID)
						thisIterationSelected = thisIterationSelected|true;
				}
				if(thisIterationSelected == true)
				{
					num_of_SelectedItr++;
					index_of_selected_Itr.Add(i);
					num_of_proc_in_index_of_selected_Itr.Add(dashboard.myProcessList[i].Length);
				}
				else
				{
					num_of_UnSelectedItr++;
					index_of_unSelected_Itr.Add(i);
					TabletVO[] proc_in_this_Itr = ws.getAllStoriesByIterId(dashboard.myIterationList[i].iterationID, false);
					num_of_proc_in_index_of_unSelected_Itr.Add(proc_in_this_Itr.Length);
				}
			}			
		}
	}

	[TestFixture]
	public class Test
	{
		Dashboard dashboard = new Dashboard();
		Workspace workingspace;
		static webServicesService ws;
		TabletVO newStoryVO_1;
		TabletVO updateStoryVO_1;
		InterfaceObject doubleclickedStory;
		Metric metric;
		const string productBacklogFromTo = "productBacklog";
		const string selectedIterationsFromTo = "selectedIterations";
		const string unSelectedIterationsFromTo = "unSelectedIterations";

		#region Utils
		public void setUp()
		{
			Console.WriteLine("Setup");
			SingleWS.Username = "ypliu@cpsc.ucalgary.ca";
			SingleWS.Password = "lawrence";
			ws = SingleWS.getInstance(ApplicationProperties.serverWebServiceLocation);
			long projId = 4;
			int num_of_iteration = 3;
			ProjectVO[] allProj = ws.getAllProjects();
			dashboard.selectedProject = allProj[3]; 
			Console.WriteLine("Selected project id:"+dashboard.selectedProject.id+" name:"+dashboard.selectedProject.name);
			dashboard.initalizeIteration_lstbox();
			for(int i=0; i<num_of_iteration; i++)
				dashboard.iteration_lstbox.SetSelected(i, true);
			dashboard.tabletop_rb.Checked = true;
			dashboard.ok_bt_clicked();
			this.metric = new Metric(this.dashboard, ws);
			workingspace = dashboard.workingSpace;
			MaseListen.testing = true;
		}

		public void chkConsistencyDashboardLstWithInterfacemain()
		{
			int number_of_objs = 0;
			Console.WriteLine("Metric Summery: ====== Start ======");
			for(int i=0; i<dashboard.selectedIterations.Length; i++)
			{
				number_of_objs = number_of_objs + dashboard.myProcessList[i].Length;
				Console.WriteLine("Selected iteration id:"+dashboard.selectedIterations[i].iterationID+" contains "+dashboard.myProcessList[i].Length+" objects");
			}
			Console.WriteLine("Productbacklog iteration id:"+dashboard.productBacklog.iterationID+" contains "+dashboard.myBacklogList.Length+" objects");
			number_of_objs = number_of_objs + dashboard.myBacklogList.Length;
			
			Assert.AreEqual(workingspace.interfaceMain.getAllGridObjects().Count, number_of_objs);
			Console.WriteLine("interfaceMain contains "+workingspace.interfaceMain.getAllGridObjects().Count+" objects.");
			Console.WriteLine("Compared count is "+number_of_objs);
			Assert.AreEqual(workingspace.interfaceMain.getAllGridMoveSplines().Count, dashboard.selectedIterations.Length);
			Assert.AreEqual(workingspace.currIterations.Length, dashboard.selectedIterations.Length);
			MoveAbleSpline[] movSplines = workingspace.currIterations;
			for(int i=0; i< dashboard.selectedIterations.Length; i++)
			{
				Assert.AreEqual(movSplines[i].splineID, dashboard.selectedIterations[i].iterationID);
				Assert.AreEqual(movSplines[i].splineName, dashboard.selectedIterations[i].iterationName);
			}
			
			ArrayList indexOfAllGridObjs = new ArrayList();
			for(int i=0; i<dashboard.myBacklogList.Length; i++)
			{
				for(int j=0; j<dashboard.myBacklogList.Length; j++)
				{
					if(dashboard.myBacklogList[i].tabletProcess.id == dashboard.myBacklogList[j].tabletProcess.id)
					{
						if(i!=j)
							Assert.Fail("dashboard.myBacklogList contains duplicates");
						//Console.WriteLine(i+" "+j);
					}
				}
			}
			for(int k=0; k<dashboard.myProcessList.Length; k++)
			{
				TabletVO[] chkAry = dashboard.myProcessList[k];
				for(int i=0; i<chkAry.Length; i++)
				{
					for(int j=0; j<chkAry.Length; j++)
					{
						if(chkAry[i].tabletProcess.id == chkAry[j].tabletProcess.id)
						{
							if(i!=j)
								Assert.Fail("dashboard.myProcessList["+k+"] contains duplicates");
							//Console.WriteLine(i+" "+j);
						}
					}
				}
			}
			for(int i=0; i< dashboard.selectedIterations.Length; i++)
			{   
				ArrayList itObjAryLst = movSplines[i].dumpAllInterfaceObjs();
				int theSelectedIndex = Convert.ToInt32(this.metric.index_of_selected_Itr[i].ToString());
				Console.WriteLine("Spline id:"+movSplines[i].splineID+" contains "+itObjAryLst.Count+" interfaceObjects");
				Console.WriteLine("Iteration id:"+dashboard.selectedIterations[i].iterationID+" contains "+dashboard.myProcessList[theSelectedIndex].Length+" TabletVOs");
				if(dashboard.myProcessList[theSelectedIndex].Length > 0)
				{
					Console.WriteLine("Selected Iteration id:"+dashboard.selectedIterations[i].iterationID+" should = Iteration Id:"+dashboard.myProcessList[theSelectedIndex][0].iterationID);
				}
				for(int j=0; j<dashboard.myProcessList[theSelectedIndex].Length; j++) 
				{
					bool foundTheCorrepondingTableVO = false;
					for(int k=0; k<itObjAryLst.Count; k++)
					{
						InterfaceObject interObj = (InterfaceObject)itObjAryLst[k];
						if(interObj.displayObj.getTabletVO().tabletProcess.id == dashboard.myProcessList[theSelectedIndex][j].tabletProcess.id)
						{	
							foundTheCorrepondingTableVO = foundTheCorrepondingTableVO|true;
							TabletContentandUtil tabUtil = new TabletContentandUtil(interObj.displayObj.getTabletVO());
							Assertion.AssertEquals(tabUtil.Equals(dashboard.myProcessList[theSelectedIndex][j]), true);
							Assert.AreEqual(workingspace.interfaceMain.getAllGridObjects().Contains(interObj), true);
							indexOfAllGridObjs.Add(workingspace.interfaceMain.getAllGridObjects().IndexOf(interObj));
							//Console.WriteLine("add " + workingspace.interfaceMain.getAllGridObjects().IndexOf(interObj) + " from "+dashboard.myProcessList[theSelectedIndex][j].iterationID+".");
						}
					}
					Assert.AreEqual(foundTheCorrepondingTableVO, true);
				}
			}
			Console.WriteLine("Finish checking selected iterations.");
			Console.WriteLine("Productbacklog contains "+dashboard.myBacklogList.Length+ " TabletVOs.");
			for(int i=0; i<dashboard.myBacklogList.Length; i++)
			{
				bool foundTheCorrepondingTableVO = false;
				for(int j=0; j<workingspace.interfaceMain.getAllGridObjects().Count; j++)
				{
					InterfaceObject interObj = (InterfaceObject)(workingspace.interfaceMain.getAllGridObjects()[j]);
					//Console.WriteLine(interObj.displayObj.getTabletVO().tabletProcess.id);
					//Console.WriteLine(dashboard.myBacklogList[i].tabletProcess.id);
					if(dashboard.myBacklogList[i].tabletProcess.id == interObj.displayObj.getTabletVO().tabletProcess.id)
					{
						foundTheCorrepondingTableVO = foundTheCorrepondingTableVO|true;
						TabletContentandUtil tabUtil = new TabletContentandUtil(interObj.displayObj.getTabletVO());
						Assertion.AssertEquals(tabUtil.Equals(dashboard.myBacklogList[i]), true);
						indexOfAllGridObjs.Add(workingspace.interfaceMain.getAllGridObjects().IndexOf(interObj));
						//Console.WriteLine("add " + workingspace.interfaceMain.getAllGridObjects().IndexOf(interObj) + " from productBacklog.");
					}
				}
				Assert.AreEqual(foundTheCorrepondingTableVO, true);
			}
			
			indexOfAllGridObjs.Sort();
			Assertion.AssertEquals(indexOfAllGridObjs.Count, workingspace.interfaceMain.getAllGridObjects().Count);
			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				Assert.AreEqual(i+"", indexOfAllGridObjs[i].ToString());
			}
			for(int i=0; i<dashboard.unselectedIterations.Length; i++)
			{
				Console.WriteLine("Unselected iteration id: "+dashboard.unselectedIterations[i].iterationID+" contains "+dashboard.unselectedProcesList[i].Length+" objects");
			}
			Console.WriteLine("Metric Summery: ====== End ======");
		}
		public void mocStoryVO(TabletVO storyVO, TabletVO itr)
		{
			storyVO.iterationID = itr.iterationID;
			storyVO.iterationName = itr.iterationName;
			storyVO.pairProgrammerID = -1;
			storyVO.pairProgrammerName = "";
			storyVO.projectID = dashboard.selectedProject.id;
			storyVO.projectName = dashboard.selectedProject.name;
			storyVO.agentResponsibleID = -1;
			storyVO.agentResponsibleName = "";
			storyVO.tabletProcess.id = -1;
			storyVO.tabletProcess.name = "story 1";
			storyVO.tabletProcess.processType = EStory.EStoryForm.USERSTORY;
			storyVO.tabletProcess.complete = false;
			storyVO.tabletProcess.initialEffort = 3;
			storyVO.tabletProcess.activityType = EStory.EStoryForm.ENHANCEMENT;
			storyVO.tabletProcess.description = "";
			storyVO.parentID = itr.iterationID;
		}
		
		public void tearDown()
		{
			Console.WriteLine("tearDown");
			this.workingspace.Dispose();
			ws.deregisterCallBack(MaseListen.tabletClientId);
		}

		#endregion
		
		#region Card creations on local requests
		[Test]
		public void Local_CreateSingleCard_The_ProductBacklog()
		{
			long newId1 = 0;
			long newId2 = 0;
			long newId3 = 0; 

			setUp();
			//Console.WriteLine("test");
			chkConsistencyDashboardLstWithInterfacemain();
			newStoryVO_1 = workingspace.newStoryTabletVO;
			mocStoryVO(newStoryVO_1, dashboard.productBacklog);
			int num_of_bcklog_obj = dashboard.myBacklogList.Length;
			
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId1 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId2 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj); 
			chkConsistencyDashboardLstWithInterfacemain();			

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId3 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj); 
			chkConsistencyDashboardLstWithInterfacemain();
			
			newStoryVO_1.tabletProcess.id = newId1;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId2;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId3;
			ws.removeProcess(newStoryVO_1);
		
			tearDown();
		}
		[Test]
		public void Local_CreateSingleCard_Single_SelectedIteration()
		{
			long newId1 = 0;
			long newId2 = 0;
			long newId3 = 0;
			setUp();
			//Console.WriteLine("test");
			chkConsistencyDashboardLstWithInterfacemain();
			newStoryVO_1 = workingspace.newStoryTabletVO;
			int itrIndex = 0;
			mocStoryVO(newStoryVO_1, dashboard.selectedIterations[itrIndex]);
			int num_of_bcklog_obj = dashboard.myProcessList[itrIndex].Length;
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId1 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Metric newMetric = new Metric(this.dashboard, ws);
			Assert.AreEqual(dashboard.myProcessList[itrIndex].Length, ++num_of_bcklog_obj); 
			chkConsistencyDashboardLstWithInterfacemain();
			
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId2 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myProcessList[itrIndex].Length, ++num_of_bcklog_obj); 
			chkConsistencyDashboardLstWithInterfacemain();
			

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId3 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myProcessList[itrIndex].Length, ++num_of_bcklog_obj); 
			chkConsistencyDashboardLstWithInterfacemain();
			
			newStoryVO_1.tabletProcess.id = newId1;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId2;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId3;
			ws.removeProcess(newStoryVO_1);

			tearDown();
		}
		[Test]
		public void Local_CreateSingleCard_UnSelectedIteration()
		{
			setUp();
			//Console.WriteLine("test");
			chkConsistencyDashboardLstWithInterfacemain();
			newStoryVO_1 = workingspace.newStoryTabletVO;
			int itrIndex = metric.num_of_UnSelectedItr;
			long newId1 = 0;
			long newId2 = 0;
			long newId3 = 0;
			

			if(itrIndex != 0)
			{
				mocStoryVO(newStoryVO_1, dashboard.myIterationList[Convert.ToInt32(metric.index_of_unSelected_Itr[0])]);
				newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
				newId1 = newStoryVO_1.tabletProcess.id;
				Console.WriteLine(newId1);
				workingspace.newCardCreatedHandling(false, true);
			}
			Metric newMetric = new Metric(this.dashboard, ws);
			Assertion.AssertEquals(Convert.ToInt32(this.metric.num_of_proc_in_index_of_unSelected_Itr[0].ToString())+1, Convert.ToInt32(newMetric.num_of_proc_in_index_of_unSelected_Itr[0].ToString()));
			chkConsistencyDashboardLstWithInterfacemain();
			
			if(itrIndex != 0)
			{
				mocStoryVO(newStoryVO_1, dashboard.myIterationList[Convert.ToInt32(metric.index_of_unSelected_Itr[0])]);
				newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
				newId2 = newStoryVO_1.tabletProcess.id;
				Console.WriteLine(newId2);
				workingspace.newCardCreatedHandling(false, true);
			}
			newMetric = new Metric(this.dashboard, ws);
			Assertion.AssertEquals(Convert.ToInt32(this.metric.num_of_proc_in_index_of_unSelected_Itr[0].ToString())+2, Convert.ToInt32(newMetric.num_of_proc_in_index_of_unSelected_Itr[0].ToString()));
			chkConsistencyDashboardLstWithInterfacemain();

			if(itrIndex != 0)
			{
				mocStoryVO(newStoryVO_1, dashboard.myIterationList[Convert.ToInt32(metric.index_of_unSelected_Itr[0])]);
				newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
				newId3 = newStoryVO_1.tabletProcess.id;
				Console.WriteLine(newId3);
				workingspace.newCardCreatedHandling(false, true);
			}
			newMetric = new Metric(this.dashboard, ws);
			Assertion.AssertEquals(Convert.ToInt32(this.metric.num_of_proc_in_index_of_unSelected_Itr[0].ToString())+3, Convert.ToInt32(newMetric.num_of_proc_in_index_of_unSelected_Itr[0].ToString()));
			chkConsistencyDashboardLstWithInterfacemain();
			newStoryVO_1.tabletProcess.id = newId1;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId2;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId3;
			ws.removeProcess(newStoryVO_1);

			tearDown();
		}

		#endregion 

		#region Card edition on local requests
		[Test]
		public void Local_EditCard_Baklog_Baklog_SlecItr()
		{
			long newId1 = 0;
			long newId2 = 0;
			long newId3 = 0;
			setUp();
			newStoryVO_1 = workingspace.newStoryTabletVO;
			mocStoryVO(newStoryVO_1, dashboard.productBacklog);
			int num_of_bcklog_obj = dashboard.myBacklogList.Length;
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId1 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj);
			
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId2 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj); 
			//chkConsistencyDashboardLstWithInterfacemain();

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId3 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId1)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			Workspace.pulibWorkspaceOrNot  = true;
			workingspace.Double_Cliecked(true);
			workingspace.updateEventHandling(false);
			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId1)
				{
					this.doubleclickedStory = interObj;
				}
			}
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			Assert.AreEqual(dashboard.myBacklogList.Length, num_of_bcklog_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId1)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			int selec_itr_index = Convert.ToInt32(this.metric.index_of_selected_Itr[0]);
			int num_of_proc_obj = dashboard.myProcessList[selec_itr_index].Length;
			workingspace.Double_Cliecked(true);
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID = dashboard.myIterationList[selec_itr_index].iterationID;
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationName = dashboard.myIterationList[selec_itr_index].iterationName;
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length , ++num_of_proc_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId3)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			//int selec_itr_index = Convert.ToInt32(this.metric.index_of_selected_Itr[0]);
			//int num_of_proc_obj = dashboard.myProcessList[selec_itr_index].Length;
			workingspace.Double_Cliecked(true);
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID = dashboard.myIterationList[selec_itr_index].iterationID;
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationName = dashboard.myIterationList[selec_itr_index].iterationName;
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length , ++num_of_proc_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId2)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			//int selec_itr_index = Convert.ToInt32(this.metric.index_of_selected_Itr[0]);
			//int num_of_proc_obj = dashboard.myProcessList[selec_itr_index].Length;
			workingspace.Double_Cliecked(true);
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID = dashboard.myIterationList[selec_itr_index].iterationID;
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationName = dashboard.myIterationList[selec_itr_index].iterationName;
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length , ++num_of_proc_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			newStoryVO_1.tabletProcess.id = newId1;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId2;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId3;
			ws.removeProcess(newStoryVO_1);
			tearDown();
		}
		[Test]
		public void Local_EditCard_Baklog_Baklog_UnSlecItr()
		{
			long newId1 = 0;
			long newId2 = 0;
			long newId3 = 0;
			setUp();
			newStoryVO_1 = workingspace.newStoryTabletVO;
			mocStoryVO(newStoryVO_1, dashboard.productBacklog);
			int num_of_bcklog_obj = dashboard.myBacklogList.Length;
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId1 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj);
			
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId2 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj); 
			//chkConsistencyDashboardLstWithInterfacemain();

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId3 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId1)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			Workspace.pulibWorkspaceOrNot  = true;
			workingspace.Double_Cliecked(true);
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			Assert.AreEqual(dashboard.myBacklogList.Length, num_of_bcklog_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId1)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			int selec_itr_index = Convert.ToInt32(this.metric.index_of_unSelected_Itr[0]);
			int num_of_proc_obj = Convert.ToInt32(this.metric.num_of_proc_in_index_of_unSelected_Itr[0]);
			workingspace.Double_Cliecked(true);
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID = dashboard.myIterationList[selec_itr_index].iterationID;
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationName = dashboard.myIterationList[selec_itr_index].iterationName;
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			//Metric newMetric = new Metric(this.dashboard, ws);
			//Assert.AreEqual(newMetric.num_of_proc_in_index_of_unSelected_Itr[0] , num_of_proc_obj+1);
			Assert.AreEqual(dashboard.myBacklogList.Length, --num_of_bcklog_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId2)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			//int selec_itr_index = Convert.ToInt32(this.metric.index_of_unSelected_Itr[0]);
			//int num_of_proc_obj = Convert.ToInt32(this.metric.num_of_proc_in_index_of_unSelected_Itr[0]);
			workingspace.Double_Cliecked(true);
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID = dashboard.myIterationList[selec_itr_index].iterationID;
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationName = dashboard.myIterationList[selec_itr_index].iterationName;
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			//Metric newMetric = new Metric(this.dashboard, ws);
			//Assert.AreEqual(newMetric.num_of_proc_in_index_of_unSelected_Itr[0] , num_of_proc_obj+1);
			Assert.AreEqual(dashboard.myBacklogList.Length, --num_of_bcklog_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId3)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			//int selec_itr_index = Convert.ToInt32(this.metric.index_of_unSelected_Itr[0]);
			//int num_of_proc_obj = Convert.ToInt32(this.metric.num_of_proc_in_index_of_unSelected_Itr[0]);
			workingspace.Double_Cliecked(true);
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID = dashboard.myIterationList[selec_itr_index].iterationID;
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationName = dashboard.myIterationList[selec_itr_index].iterationName;
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			//Metric newMetric = new Metric(this.dashboard, ws);
			//Assert.AreEqual(newMetric.num_of_proc_in_index_of_unSelected_Itr[0] , num_of_proc_obj+1);
			Assert.AreEqual(dashboard.myBacklogList.Length, --num_of_bcklog_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			newStoryVO_1.tabletProcess.id = newId1;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId2;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId3;
			ws.removeProcess(newStoryVO_1);
			tearDown();
		}
		[Test]
		public void Local_EditCard_SlecItr_SameSlecItr_Baklog()
		{
			long newId1 = 0;
			long newId2 = 0;
			long newId3 = 0;
			setUp();
			newStoryVO_1 = workingspace.newStoryTabletVO;
			int selec_itr_index = Convert.ToInt32(this.metric.index_of_selected_Itr[0]);
			mocStoryVO(newStoryVO_1, dashboard.myIterationList[selec_itr_index]);
			int num_of_proc_obj = dashboard.myProcessList[selec_itr_index].Length;
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId1 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length, ++num_of_proc_obj);

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId2 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length, ++num_of_proc_obj); 
			//chkConsistencyDashboardLstWithInterfacemain();

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId3 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length, ++num_of_proc_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			//chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId1)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			Workspace.pulibWorkspaceOrNot  = true;
			workingspace.Double_Cliecked(true);
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length, num_of_proc_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId2)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			Workspace.pulibWorkspaceOrNot  = true;
			workingspace.Double_Cliecked(true);
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length, num_of_proc_obj);
			chkConsistencyDashboardLstWithInterfacemain();
			
			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId3)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			Workspace.pulibWorkspaceOrNot  = true;
			workingspace.Double_Cliecked(true);
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length, num_of_proc_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId1)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			
			int num_of_baklog_obj = dashboard.myBacklogList.Length;
			workingspace.Double_Cliecked(true);
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID = dashboard.productBacklog.iterationID;
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationName = dashboard.productBacklog.iterationName;
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			Assert.AreEqual(dashboard.myBacklogList.Length , num_of_baklog_obj+1);
			chkConsistencyDashboardLstWithInterfacemain();

			newStoryVO_1.tabletProcess.id = newId1;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId2;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId3;
			ws.removeProcess(newStoryVO_1);
			tearDown();
		}

		[Test]
		public void Local_EditCard_SlecItr_OtherSlecItr_Baklog()
		{
			long newId1 = 0;
			long newId2 = 0;
			long newId3 = 0;
			setUp();
			newStoryVO_1 = workingspace.newStoryTabletVO;
			int selec_itr_index = Convert.ToInt32(this.metric.index_of_selected_Itr[0]);
			mocStoryVO(newStoryVO_1, dashboard.myIterationList[selec_itr_index]);
			int num_of_proc_obj = dashboard.myProcessList[0].Length;
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId1 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length, ++num_of_proc_obj);

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId2 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length, ++num_of_proc_obj); 
			//chkConsistencyDashboardLstWithInterfacemain();

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId3 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length, ++num_of_proc_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId1)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			Workspace.pulibWorkspaceOrNot  = true;
			workingspace.Double_Cliecked(true);
			workingspace.updateEventHandling(false);
			
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			Assert.AreEqual(dashboard.myProcessList[0].Length, num_of_proc_obj);
			chkConsistencyDashboardLstWithInterfacemain();
			
			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId1)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			
			int num_of_sec_slec_itr_obj = dashboard.myProcessList[1].Length;
			workingspace.Double_Cliecked(true);
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID = dashboard.selectedIterations[1].iterationID;
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationName = dashboard.selectedIterations[1].iterationName;
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			Assert.AreEqual(dashboard.myProcessList[1].Length , ++num_of_sec_slec_itr_obj);
			Assert.AreEqual(dashboard.myProcessList[0].Length , --num_of_proc_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId2)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			workingspace.Double_Cliecked(true);
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID = dashboard.selectedIterations[1].iterationID;
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationName = dashboard.selectedIterations[1].iterationName;
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			Assert.AreEqual(dashboard.myProcessList[1].Length , ++num_of_sec_slec_itr_obj);
			Assert.AreEqual(dashboard.myProcessList[0].Length , --num_of_proc_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId3)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			workingspace.Double_Cliecked(true);
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID = dashboard.selectedIterations[1].iterationID;
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationName = dashboard.selectedIterations[1].iterationName;
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			Assert.AreEqual(dashboard.myProcessList[1].Length , ++num_of_sec_slec_itr_obj);
			Assert.AreEqual(dashboard.myProcessList[0].Length , --num_of_proc_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId1)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			
			int num_of_baklog_obj = dashboard.myBacklogList.Length;
			workingspace.Double_Cliecked(true);
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID = dashboard.productBacklog.iterationID;
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationName = dashboard.productBacklog.iterationName;
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			Assert.AreEqual(dashboard.myBacklogList.Length , ++num_of_baklog_obj);
			Assert.AreEqual(dashboard.myProcessList[1].Length , --num_of_sec_slec_itr_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId2)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			
			//int num_of_baklog_obj = dashboard.myBacklogList.Length;
			workingspace.Double_Cliecked(true);
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID = dashboard.productBacklog.iterationID;
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationName = dashboard.productBacklog.iterationName;
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			Assert.AreEqual(dashboard.myBacklogList.Length , ++num_of_baklog_obj);
			Assert.AreEqual(dashboard.myProcessList[1].Length , --num_of_sec_slec_itr_obj);
			chkConsistencyDashboardLstWithInterfacemain();
			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId3)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			
			//int num_of_baklog_obj = dashboard.myBacklogList.Length;
			workingspace.Double_Cliecked(true);
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID = dashboard.productBacklog.iterationID;
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationName = dashboard.productBacklog.iterationName;
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			Assert.AreEqual(dashboard.myBacklogList.Length , ++num_of_baklog_obj);
			Assert.AreEqual(dashboard.myProcessList[1].Length , --num_of_sec_slec_itr_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			newStoryVO_1.tabletProcess.id = newId1;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId2;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId3;
			ws.removeProcess(newStoryVO_1);
			tearDown();
		}

		[Test]
		public void Local_EditCard_SlecItr_UnSlecItr()
		{
			long newId1 = 0;
			long newId2 = 0;
			long newId3 = 0;
			setUp();
			newStoryVO_1 = workingspace.newStoryTabletVO;
			int selec_itr_index = Convert.ToInt32(this.metric.index_of_selected_Itr[0]);
			mocStoryVO(newStoryVO_1, dashboard.myIterationList[selec_itr_index]);

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId1 = newStoryVO_1.tabletProcess.id;
			int num_of_proc_obj = dashboard.myProcessList[selec_itr_index].Length;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length, ++num_of_proc_obj);

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId2 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length, ++num_of_proc_obj); 
			//chkConsistencyDashboardLstWithInterfacemain();

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId3 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length, ++num_of_proc_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId1)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			
			int num_of_proc_obj_in_unslec_itr = Convert.ToInt32(this.metric.num_of_proc_in_index_of_unSelected_Itr[0]);
			int index_to_unslec_itr = Convert.ToInt32(this.metric.index_of_unSelected_Itr[0]);
			workingspace.Double_Cliecked(true);
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID = dashboard.myIterationList[index_to_unslec_itr].iterationID;
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationName = dashboard.myIterationList[index_to_unslec_itr].iterationName;
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			//Metric newMetric = new Metric(this.dashboard, ws);
			//Assert.AreEqual(Convert.ToInt32(newMetric.num_of_proc_in_index_of_unSelected_Itr[0]) , num_of_proc_obj_in_unslec_itr+1);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length, --num_of_proc_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId3)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			
			//int num_of_proc_obj_in_unslec_itr = Convert.ToInt32(this.metric.num_of_proc_in_index_of_unSelected_Itr[0]);
			//int index_to_unslec_itr = Convert.ToInt32(this.metric.index_of_unSelected_Itr[0]);
			workingspace.Double_Cliecked(true);
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID = dashboard.myIterationList[index_to_unslec_itr].iterationID;
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationName = dashboard.myIterationList[index_to_unslec_itr].iterationName;
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			//Metric newMetric = new Metric(this.dashboard, ws);
			//Assert.AreEqual(Convert.ToInt32(newMetric.num_of_proc_in_index_of_unSelected_Itr[0]) , num_of_proc_obj_in_unslec_itr+1);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length, --num_of_proc_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			for(int i=0; i<workingspace.interfaceMain.getAllGridObjects().Count; i++)
			{
				InterfaceObject interObj = (InterfaceObject)workingspace.interfaceMain.getAllGridObjects()[i];
				if(interObj.displayObj.getTabletVO().tabletProcess.id == newId2)
				{
					workingspace.doubleClickedStory = interObj;
				}
			}
			
			//int num_of_proc_obj_in_unslec_itr = Convert.ToInt32(this.metric.num_of_proc_in_index_of_unSelected_Itr[0]);
			//int index_to_unslec_itr = Convert.ToInt32(this.metric.index_of_unSelected_Itr[0]);
			workingspace.Double_Cliecked(true);
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID = dashboard.myIterationList[index_to_unslec_itr].iterationID;
			workingspace.doubleClickedStory.displayObj.getTabletVO().iterationName = dashboard.myIterationList[index_to_unslec_itr].iterationName;
			workingspace.updateEventHandling(false);
			Assert.AreEqual(null, workingspace.doubleClickedStory);
			//Metric newMetric = new Metric(this.dashboard, ws);
			//Assert.AreEqual(Convert.ToInt32(newMetric.num_of_proc_in_index_of_unSelected_Itr[0]) , num_of_proc_obj_in_unslec_itr+1);
			Assert.AreEqual(dashboard.myProcessList[selec_itr_index].Length, --num_of_proc_obj);
			chkConsistencyDashboardLstWithInterfacemain();

			newStoryVO_1.tabletProcess.id = newId1;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId2;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId3;
			ws.removeProcess(newStoryVO_1);
			tearDown();
		}

		#endregion

		#region Crad edition on foreign requests
		[Test]
		public void Remote_EditCard_Baklog_SlecItr()
		{
			long newId1 = 0;
			long newId2 = 0;
			long newId3 = 0;
			setUp();
			//chkConsistencyDashboardLstWithInterfacemain();

			newStoryVO_1 = workingspace.newStoryTabletVO;
			mocStoryVO(newStoryVO_1, dashboard.productBacklog);
			int num_of_bcklog_obj = dashboard.myBacklogList.Length;
			
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId1 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj);
			//chkConsistencyDashboardLstWithInterfacemain();

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId2 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj);
 
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId3 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj); 
			chkConsistencyDashboardLstWithInterfacemain();		

			updateForeignCard(productBacklogFromTo, -1, 0, selectedIterationsFromTo, 0);
			updateForeignCard(productBacklogFromTo, -1, 0, selectedIterationsFromTo, 1);
			updateForeignCard(productBacklogFromTo, -1, 0, selectedIterationsFromTo, 2);

			updateForeignCard(selectedIterationsFromTo, 0, 0, productBacklogFromTo, -1);
			updateForeignCard(selectedIterationsFromTo, 1, 0, productBacklogFromTo, -1);
			updateForeignCard(selectedIterationsFromTo, 2, 0, productBacklogFromTo, -1);

			updateForeignCard(productBacklogFromTo, -1, 0, selectedIterationsFromTo, 0);
			updateForeignCard(productBacklogFromTo, -1, 0, selectedIterationsFromTo, 0);
			updateForeignCard(productBacklogFromTo, -1, 0, selectedIterationsFromTo, 0);
			
			updateForeignCard(selectedIterationsFromTo, 0, 0, productBacklogFromTo, -1);
			updateForeignCard(selectedIterationsFromTo, 0, 0, productBacklogFromTo, -1);
			updateForeignCard(selectedIterationsFromTo, 0, 0, productBacklogFromTo, -1);

			updateForeignCard(productBacklogFromTo, -1, 0, selectedIterationsFromTo, 1);
			updateForeignCard(productBacklogFromTo, -1, 0, selectedIterationsFromTo, 1);
			updateForeignCard(productBacklogFromTo, -1, 0, selectedIterationsFromTo, 1);

			updateForeignCard(selectedIterationsFromTo, 1, 0, productBacklogFromTo, -1);
			updateForeignCard(selectedIterationsFromTo, 1, 0, productBacklogFromTo, -1);
			updateForeignCard(selectedIterationsFromTo, 1, 0, productBacklogFromTo, -1);

			updateForeignCard(productBacklogFromTo, -1, 0, selectedIterationsFromTo, 2);
			updateForeignCard(productBacklogFromTo, -1, 0, selectedIterationsFromTo, 2);
			updateForeignCard(productBacklogFromTo, -1, 0, selectedIterationsFromTo, 2);

			updateForeignCard(selectedIterationsFromTo, 2, 0, productBacklogFromTo, -1);
			updateForeignCard(selectedIterationsFromTo, 2, 0, productBacklogFromTo, -1);
			updateForeignCard(selectedIterationsFromTo, 2, 0, productBacklogFromTo, -1);

			newStoryVO_1.tabletProcess.id = newId1;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId2;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId3;
			ws.removeProcess(newStoryVO_1);
			tearDown();
		}
		[Test]
		public void Remote_EditCard_SlecItr_Baklog()
		{
			long newId1 = 0;
			long newId2 = 0;
			long newId3 = 0;
			setUp();
			
			newStoryVO_1 = workingspace.newStoryTabletVO;
			int itrIndex = 0;
			mocStoryVO(newStoryVO_1, dashboard.selectedIterations[itrIndex]);
			int num_of_bcklog_obj = dashboard.myProcessList[itrIndex].Length;
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId1 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Metric newMetric = new Metric(this.dashboard, ws);
			Assert.AreEqual(dashboard.myProcessList[itrIndex].Length, ++num_of_bcklog_obj); 
			//chkConsistencyDashboardLstWithInterfacemain();
			
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId2 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myProcessList[itrIndex].Length, ++num_of_bcklog_obj); 
			//chkConsistencyDashboardLstWithInterfacemain();
			

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId3 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myProcessList[itrIndex].Length, ++num_of_bcklog_obj); 
			chkConsistencyDashboardLstWithInterfacemain();

			updateForeignCard(selectedIterationsFromTo, 0, 0, productBacklogFromTo, -1);
			updateForeignCard(selectedIterationsFromTo, 0, 0, productBacklogFromTo, -1);
			updateForeignCard(selectedIterationsFromTo, 0, 0, productBacklogFromTo, -1);

			newStoryVO_1.tabletProcess.id = newId1;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId2;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId3;
			ws.removeProcess(newStoryVO_1);
			tearDown();
		}
		[Test]
		public void Remote_EditCard_SlecItr_SlecItr_Plus_The_Same()
		{
			long newId1 = 0;
			long newId2 = 0;
			long newId3 = 0;
			setUp();
			
			newStoryVO_1 = workingspace.newStoryTabletVO;
			int itrIndex = 0;
			mocStoryVO(newStoryVO_1, dashboard.selectedIterations[itrIndex]);
			int num_of_bcklog_obj = dashboard.myProcessList[itrIndex].Length;
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId1 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Metric newMetric = new Metric(this.dashboard, ws);
			Assert.AreEqual(dashboard.myProcessList[itrIndex].Length, ++num_of_bcklog_obj); 
			//chkConsistencyDashboardLstWithInterfacemain();
			
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId2 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myProcessList[itrIndex].Length, ++num_of_bcklog_obj); 
			//chkConsistencyDashboardLstWithInterfacemain();
			

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId3 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myProcessList[itrIndex].Length, ++num_of_bcklog_obj); 
			chkConsistencyDashboardLstWithInterfacemain();

			updateForeignCard(selectedIterationsFromTo, 0, 0, selectedIterationsFromTo, 1);
			updateForeignCard(selectedIterationsFromTo, 0, 0, selectedIterationsFromTo, 1);
			updateForeignCard(selectedIterationsFromTo, 0, 0, selectedIterationsFromTo, 1);

			updateForeignCard(selectedIterationsFromTo, 1, 0, selectedIterationsFromTo, 1);
			updateForeignCard(selectedIterationsFromTo, 1, 0, selectedIterationsFromTo, 1);
			updateForeignCard(selectedIterationsFromTo, 1, 0, selectedIterationsFromTo, 1);

			newStoryVO_1.tabletProcess.id = newId1;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId2;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId3;
			ws.removeProcess(newStoryVO_1);
			tearDown();
		}
		[Test]
		public void Remote_EditCard_UnSlecItr_UnSlecItr_Plus_The_Same()
		{
			long newId1 = 0;
			long newId2 = 0;
			long newId3 = 0;
			setUp();
			
			newStoryVO_1 = workingspace.newStoryTabletVO;
			int itrIndex = 0;
			mocStoryVO(newStoryVO_1, dashboard.unselectedIterations[itrIndex]);
			int num_of_bcklog_obj = dashboard.unselectedProcesList[itrIndex].Length;
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId1 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Metric newMetric = new Metric(this.dashboard, ws);
			//Assert.AreEqual(dashboard.unselectedProcesList[itrIndex].Length, ++num_of_bcklog_obj); 
			chkConsistencyDashboardLstWithInterfacemain();
			
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId2 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			//Assert.AreEqual(dashboard.unselectedProcesList[itrIndex].Length, ++num_of_bcklog_obj); 
			//chkConsistencyDashboardLstWithInterfacemain();

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId3 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			//Assert.AreEqual(dashboard.unselectedProcesList[itrIndex].Length, ++num_of_bcklog_obj); 
			chkConsistencyDashboardLstWithInterfacemain();

			updateForeignCard(unSelectedIterationsFromTo, 0, 0, unSelectedIterationsFromTo, 0);
			updateForeignCard(unSelectedIterationsFromTo, 0, 0, unSelectedIterationsFromTo, 0);
			updateForeignCard(unSelectedIterationsFromTo, 0, 0, unSelectedIterationsFromTo, 0);

			updateForeignCard(unSelectedIterationsFromTo, 0, 0, unSelectedIterationsFromTo, 0);
			updateForeignCard(unSelectedIterationsFromTo, 0, 0, unSelectedIterationsFromTo, 0);
			updateForeignCard(unSelectedIterationsFromTo, 0, 0, unSelectedIterationsFromTo, 0);

			newStoryVO_1.tabletProcess.id = newId1;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId2;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId3;
			ws.removeProcess(newStoryVO_1);
			tearDown();
		}
		[Test]
		public void Remote_EditCard_UnSlecItr_SlecItr_Plus_UnSlecItr_Baklog()
		{
			long newId1 = 0;
			long newId2 = 0;
			long newId3 = 0;
			setUp();
			
			newStoryVO_1 = workingspace.newStoryTabletVO;
			int itrIndex = 0;
			mocStoryVO(newStoryVO_1, dashboard.unselectedIterations[itrIndex]);
			int num_of_bcklog_obj = dashboard.unselectedProcesList[itrIndex].Length;
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId1 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Metric newMetric = new Metric(this.dashboard, ws);
			//Assert.AreEqual(dashboard.unselectedProcesList[itrIndex].Length, ++num_of_bcklog_obj); 
			chkConsistencyDashboardLstWithInterfacemain();
			
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId2 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			//Assert.AreEqual(dashboard.unselectedProcesList[itrIndex].Length, ++num_of_bcklog_obj); 
			//chkConsistencyDashboardLstWithInterfacemain();

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId3 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			//Assert.AreEqual(dashboard.unselectedProcesList[itrIndex].Length, ++num_of_bcklog_obj); 
			chkConsistencyDashboardLstWithInterfacemain();

			updateForeignCard(unSelectedIterationsFromTo, 0, 0, selectedIterationsFromTo, 1);
			updateForeignCard(unSelectedIterationsFromTo, 0, 0, selectedIterationsFromTo, 1);
			updateForeignCard(unSelectedIterationsFromTo, 0, 0, selectedIterationsFromTo, 1);

			updateForeignCard(selectedIterationsFromTo, 1, 0, unSelectedIterationsFromTo, 0);
			updateForeignCard(selectedIterationsFromTo, 1, 0, unSelectedIterationsFromTo, 0);
			updateForeignCard(selectedIterationsFromTo, 1, 0, unSelectedIterationsFromTo, 0);

			updateForeignCard(unSelectedIterationsFromTo, 0, 0, productBacklogFromTo, 0);
			updateForeignCard(unSelectedIterationsFromTo, 0, 0, productBacklogFromTo, 0);
			updateForeignCard(unSelectedIterationsFromTo, 0, 0, productBacklogFromTo, 0);

			newStoryVO_1.tabletProcess.id = newId1;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId2;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId3;
			ws.removeProcess(newStoryVO_1);
			tearDown();
		}
		[Test]
		public void Remote_EditCard_SlecItr_UnSlecItr()
		{
			long newId1 = 0;
			long newId2 = 0;
			long newId3 = 0;
			setUp();
			
			newStoryVO_1 = workingspace.newStoryTabletVO;
			int itrIndex = 0;
			mocStoryVO(newStoryVO_1, dashboard.selectedIterations[itrIndex]);
			int num_of_bcklog_obj = dashboard.myProcessList[itrIndex].Length;
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId1 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Metric newMetric = new Metric(this.dashboard, ws);
			Assert.AreEqual(dashboard.myProcessList[itrIndex].Length, ++num_of_bcklog_obj); 
			//chkConsistencyDashboardLstWithInterfacemain();
			
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId2 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myProcessList[itrIndex].Length, ++num_of_bcklog_obj); 
			//chkConsistencyDashboardLstWithInterfacemain();
			

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId3 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myProcessList[itrIndex].Length, ++num_of_bcklog_obj); 
			chkConsistencyDashboardLstWithInterfacemain();

			updateForeignCard(selectedIterationsFromTo, 0, 0, unSelectedIterationsFromTo, 0);
			updateForeignCard(selectedIterationsFromTo, 0, 0, unSelectedIterationsFromTo, 0);
			updateForeignCard(selectedIterationsFromTo, 0, 0, unSelectedIterationsFromTo, 0);

			newStoryVO_1.tabletProcess.id = newId1;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId2;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId3;
			ws.removeProcess(newStoryVO_1);
			tearDown();
		}
		[Test]
		public void Remote_EditCard_Baklog_UnSlecItr()
		{
			long newId1 = 0;
			long newId2 = 0;
			long newId3 = 0;
			setUp();
			
			newStoryVO_1 = workingspace.newStoryTabletVO;
			mocStoryVO(newStoryVO_1, dashboard.productBacklog);
			int num_of_bcklog_obj = dashboard.myBacklogList.Length;
			
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId1 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj);
			//chkConsistencyDashboardLstWithInterfacemain();

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId2 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj);
 
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId3 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj); 
			chkConsistencyDashboardLstWithInterfacemain();

			updateForeignCard(productBacklogFromTo, 0, 0, unSelectedIterationsFromTo, 0);
			updateForeignCard(productBacklogFromTo, 0, 0, unSelectedIterationsFromTo, 0);
			updateForeignCard(productBacklogFromTo, 0, 0, unSelectedIterationsFromTo, 0);


			newStoryVO_1.tabletProcess.id = newId1;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId2;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId3;
			ws.removeProcess(newStoryVO_1);
			tearDown();
		}
		[Test]
		public void Remote_EditCard_Baklog_Baklog()
		{
			long newId1 = 0;
			long newId2 = 0;
			long newId3 = 0;
			setUp();
			
			newStoryVO_1 = workingspace.newStoryTabletVO;
			mocStoryVO(newStoryVO_1, dashboard.productBacklog);
			int num_of_bcklog_obj = dashboard.myBacklogList.Length;
			
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId1 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj);
			//chkConsistencyDashboardLstWithInterfacemain();

			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId2 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj);
 
			newStoryVO_1.tabletProcess.id = ws.createStory(newStoryVO_1);
			newId3 = newStoryVO_1.tabletProcess.id;
			workingspace.newCardCreatedHandling(false, true);
			Assert.AreEqual(dashboard.myBacklogList.Length, ++num_of_bcklog_obj); 
			chkConsistencyDashboardLstWithInterfacemain();

			updateForeignCard(productBacklogFromTo, 0, 0, productBacklogFromTo, 0);
			updateForeignCard(productBacklogFromTo, 0, 0, productBacklogFromTo, 0);
			updateForeignCard(productBacklogFromTo, 0, 0, productBacklogFromTo, 0);

			newStoryVO_1.tabletProcess.id = newId1;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId2;
			ws.removeProcess(newStoryVO_1);
			newStoryVO_1.tabletProcess.id = newId3;
			ws.removeProcess(newStoryVO_1);
			tearDown();
		}
		#endregion

		public void updateForeignCard(string from, int fromItrIndex, int fromStoryIndex, string to, int toItrIndex)
		{
			TabletVO[] fromItrLst;
			TabletVO[] toItrLst;
			TabletVO fromItr = new TabletVO();
			TabletVO toItr = new TabletVO();

			if(from.Equals(productBacklogFromTo))
				fromItrLst = dashboard.myBacklogList;
			else if(from.Equals(selectedIterationsFromTo))
			{
				fromItrLst = dashboard.myProcessList[fromItrIndex];
				fromItr = dashboard.selectedIterations[fromItrIndex];
			}
			else
			{
				fromItrLst = dashboard.unselectedProcesList[fromItrIndex];
				fromItr = dashboard.unselectedIterations[fromItrIndex];
			}
			if(to.Equals(productBacklogFromTo))
			{
				toItrLst = dashboard.myBacklogList;
				toItr = dashboard.productBacklog;
			}
			else if(to.Equals(selectedIterationsFromTo))
			{
				toItrLst = dashboard.myProcessList[toItrIndex];
				toItr = dashboard.selectedIterations[toItrIndex];
			}
			else
			{
				toItrLst = dashboard.unselectedProcesList[toItrIndex];
				toItr = dashboard.unselectedIterations[toItrIndex];
			}
			TabletVO updatedStory = fromItrLst[fromStoryIndex];
			MaseListenResult updatedResult = new MaseListenResult(RegisterObj.UpdateStoryContent, Convert.ToInt32(updatedStory.tabletProcess.id));
			updatedResult.updatedTabletVOContent.iterationID = toItr.iterationID;
			updatedResult.updatedTabletVOContent.iterationName = toItr.iterationName;
			Console.WriteLine(toItr.iterationID + " : "+toItr.iterationName);
			int ori_length_fromItr = fromItrLst.Length;
			int ori_length_toItr = toItrLst.Length;
			TabletContentandUtil updateTabUtil = new TabletContentandUtil(workingspace.updatedStoryVO);
			updateTabUtil.updateReference(updatedResult.updatedTabletVOContent);
			//this.updatedStoryVO = maseListenResult.updatedTabletVOContent;
			long updatedID = workingspace.updatedStoryVO.tabletProcess.id;
			ArrayList allGridObjects = workingspace.interfaceMain.getAllGridObjects();
			workingspace.doubleClickedStoryIterationIDBeforeUpdate = -2;
			if(workingspace.updatedStoryVO.tabletProcess.id != workingspace.updatedStoryVO.iterationID)
			{
				foreach(InterfaceObject obj in allGridObjects)
				{
					if(obj.displayObj.getTabletVO().tabletProcess.id == updatedID)
					{
						workingspace.doubleClickedStory = obj;
						workingspace.doubleClickedStoryIterationIDBeforeUpdate = workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID;
						Console.WriteLine("object found: "+workingspace.doubleClickedStory.displayObj.getTabletVO().iterationID);
					}
				}
			}
			
			workingspace.updateEventHandling(true);
			int aft_length_fromItr = 0;
			int aft_length_toItr = 0;
			Metric newMetric = new Metric(dashboard, ws);
			if(from.Equals(productBacklogFromTo))
				aft_length_fromItr = newMetric.num_of_poc_in_bcklog;
			else if(from.Equals(selectedIterationsFromTo))
			{
				aft_length_fromItr = Convert.ToInt32(newMetric.num_of_proc_in_index_of_selected_Itr[fromItrIndex]);
			}
			else
			{
				aft_length_fromItr = Convert.ToInt32(newMetric.num_of_proc_in_index_of_unSelected_Itr[fromItrIndex]);
			}
			if(to.Equals(productBacklogFromTo))
				aft_length_toItr = newMetric.num_of_poc_in_bcklog;
			else if(to.Equals(selectedIterationsFromTo))
			{
				aft_length_toItr = Convert.ToInt32(newMetric.num_of_proc_in_index_of_selected_Itr[toItrIndex]);
			}
			else
			{
				aft_length_toItr = Convert.ToInt32(newMetric.num_of_proc_in_index_of_unSelected_Itr[toItrIndex]);
			}
			//Console.WriteLine("fromLst before:"+ori_length_fromItr+" after:"+aft_length_fromItr);
			//Console.WriteLine("ToLst before:"+ori_length_toItr+" after:"+aft_length_toItr);
			if(from==unSelectedIterationsFromTo||(from==to&&fromItrIndex==toItrIndex))
			{
				if(from==to&&fromItrIndex==toItrIndex&&from!=unSelectedIterationsFromTo)
					Assertion.AssertEquals(ori_length_fromItr, aft_length_fromItr);
			}
			else
				Assertion.AssertEquals(ori_length_fromItr-1, aft_length_fromItr);

			if(to==unSelectedIterationsFromTo||(from==to&&fromItrIndex==toItrIndex))
			{
				if(from==to&&fromItrIndex==toItrIndex&&to!=unSelectedIterationsFromTo)
					Assertion.AssertEquals(ori_length_toItr, aft_length_toItr);
			}
			else
				Assertion.AssertEquals(ori_length_toItr+1, aft_length_toItr);
			chkConsistencyDashboardLstWithInterfacemain();
		}
	}
}




See more files for this project here

MASE: Agile Software Engineering

The MASE project investigates methods to support the coordination and executable acceptance testing of software projects. Keywords: Agile methods, distributed teams, Extreme Programming. See http://ebe.cpsc.ucalgary.ca/ebe for more information.

Project homepage: http://sourceforge.net/projects/mase
Programming language(s): Java,XML
License: other

  Test1.cs