using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using NUnit.Framework;
using Framework.baInterfaces;
using App.WinForm.BaseFrm;
namespace Test
{
#region GeoTest
public class A_GeoTest
{
protected LookupForm gf;
private int rootID = -1;
private Random rnd = new Random(9999);
#region RootID
protected int RootID
{
get
{
if (rootID <= 0)
{
gf.BindingManager.MoveFirst();
rootID = Convert.ToInt32(gf.BindingManager["ID"]);
return rootID;
}
else
return rootID;
}
set
{
rootID = value;
}
}
#endregion
#region LastNodeID
protected int LastNodeID
{
get
{
gf.BindingManager.MoveLast();
return Convert.ToInt32(gf.BindingManager["ID"]);
}
}
#endregion
#region PreviousNodeID
protected int PreviousNodeID
{
get
{
gf.BindingManager.MovePrevious();
return Convert.ToInt32(gf.BindingManager["ID"]);
}
}
#endregion
#region AddChildren(int ParentID, int HowMany)
protected void AddChildren(int ParentID, int HowMany)
{
// Add 50 Items to the root
for (int i = 1; i <= HowMany; i++)
{
gf.BindingManager.Find(ParentID);
gf.BindingManager.TransactionState = TransactionStateKind.Add;
gf.BindingManager["Name"] = i.ToString();
object AddedID = gf.BindingManager["ID"];
gf.BindingManager.TransactionState = TransactionStateKind.Confirm;
gf.Refresh();
gf.BindingManager.Find(AddedID);
}
}
#endregion
#region EditChildren(int ParentID)
protected void EditChildren(int ParentID)
{
DataTable tbl = (DataTable)gf.BindingManager.DataSource;
DataRow[] rwArray = tbl.Select("ParentID=" + ParentID);
foreach (DataRow rw in rwArray)
{
gf.BindingManager.Find(rw["ID"]);
gf.BindingManager.TransactionState = TransactionStateKind.Edit;
gf.BindingManager["Name"] = gf.BindingManager["Name"] + " :Edited";
gf.BindingManager.TransactionState = TransactionStateKind.Confirm;
gf.Refresh();
}
}
#endregion
#region HasChildren(DataTable tbl)
protected bool HasChildren(int ID, DataTable tbl)
{
DataRow[] hasChildren = tbl.Select("ParentID=" + ID);
if (hasChildren.Length > 0)
return true;
else
return false;
}
#endregion
#region GetParent(int ID)
protected object GetParent(int ID)
{
gf.BindingManager.Find(ID);
return gf.BindingManager["ParentID"];
}
#endregion
#region DeleteChildren(int ParentID)
protected void DeleteChildren(int ParentID)
{
DataTable tbl = (DataTable)gf.BindingManager.DataSource;
DataRow[] rwArray = tbl.Select("ParentID=" + ParentID);
foreach (DataRow rw in rwArray)
{
if (!HasChildren(Convert.ToInt32(rw["ID"]), tbl))
{
gf.BindingManager.Find(rw["ID"]);
gf.BindingManager.TransactionState = TransactionStateKind.Delete;
gf.BindingManager.TransactionState = TransactionStateKind.Confirm;
gf.Refresh();
}
}
}
#endregion
#region AddANode(int ParentID, string NodeText)
protected int AddANode(int ParentID, string NodeText)
{
gf.BindingManager.TransactionState = TransactionStateKind.Add;
gf.BindingManager["Name"] = NodeText;
gf.BindingManager.TransactionState = TransactionStateKind.Confirm;
return int.Parse(gf.BindingManager["ID"].ToString());
}
#endregion
#region DeleteANode(int NodeID)
protected void DeleteANode(int NodeID)
{
DataTable tbl = (DataTable)gf.BindingManager.DataSource;
if (!HasChildren(NodeID, tbl))
{
gf.BindingManager.Find(NodeID);
gf.BindingManager.TransactionState = TransactionStateKind.Delete;
gf.BindingManager.TransactionState = TransactionStateKind.Confirm;
gf.Refresh();
}
}
#endregion
protected string RandomNo
{
get
{
return (rnd).Next().ToString();
}
}
}
#endregion
#region Suit1_TestCRUMD : AGeoTest
[TestFixture]
public class Suit1_TestCRUMD_Master : A_GeoTest
{
#region void Init()
[TestFixtureSetUp]
public void Init()
{
gf = new LookupForm();
gf.MdiParent = null;
gf.Show(null);
}
#endregion
#region void Dispose()
[TestFixtureTearDown]
public void Dispose()
{
}
#endregion
#region void A_Add_Root_Children()
/// <summary>
/// Add a record to database using Windows Form
/// </summary>
[Test]
public void A_Add_Root_Children()
{
if (RootID <= 0)
{
// Add Root
AddANode(-1, "Root");
gf.Refresh();
// Add 15 Items to the root
AddChildren(RootID, 5);
}
else
Assert.Ignore("Root already have items");
}
#endregion
#region void B_Edit_Root_Children()
[Test]
public void B_Edit_Root_Children()
{
if (RootID > 0)
{
// Edit Items added in the root
EditChildren(RootID);
}
else
Assert.Ignore("Root is empty");
}
#endregion
#region void C_Add_Last_Node_Children()
[Test]
public void C_Add_Last_Node_Children()
{
if (LastNodeID> 0)
{
// Add 10 Items to the root
AddChildren(LastNodeID, 10);
}
else
Assert.Ignore("There is no item in the tree");
}
#endregion
#region void D_Add_Last_Node_Children()
[Test]
public void D_Add_Last_Node_Children()
{
if (LastNodeID > 0)
{
// Add 5 Items to the root
AddChildren(LastNodeID, 15);
}
else
Assert.Ignore("There is no item in the tree");
}
#endregion
#region void E_Add_Last_Node_Children()
[Test]
public void E_Add_Last_Node_Children()
{
if (LastNodeID > 0)
{
// Add 2 Items to the root
AddChildren(LastNodeID, 20);
}
else
Assert.Ignore("There is no item in the tree");
}
#endregion
#region void F_Add_Previous_Last_Node_Children()
[Test]
public void F_Add_Previous_Last_Node_Children()
{
int ln = LastNodeID; // Move to the last node
int pn = PreviousNodeID; // Move to a Node before last
if (ln>0 && pn> 0)
{
// Add 2 Items to the root
AddChildren(pn, 6);
// Delete Children in the root
DeleteChildren(Convert.ToInt32(pn));
}
else
Assert.Ignore("There is no item in the tree");
}
#endregion
#region void G_Edit_Last_Node_Children()
[Test]
public void G_Edit_Last_Node_Children()
{
if (LastNodeID > 0)
{
// Edit Items added in the root
EditChildren(Convert.ToInt32(GetParent(LastNodeID)));
}
else
Assert.Ignore("Tree is empty");
}
#endregion
#region void H_Delete_Last_Node_Children()
[Test]
public void H_Delete_Last_Node_Children()
{
if (LastNodeID > 0)
{
// Delete Children in the root
DeleteChildren(Convert.ToInt32(GetParent(LastNodeID)));
}
else
Assert.Ignore("There is no item in the tree");
}
#endregion
#region void I_Edit_Last_Node_Children()
[Test]
public void I_Edit_Last_Node_Children()
{
if (LastNodeID > 0)
{
// Edit Items added in the root
EditChildren(Convert.ToInt32(GetParent(LastNodeID)));
}
else
Assert.Ignore("Tree is empty");
}
#endregion
#region void J_Delete_Last_Node_Children()
[Test]
public void J_Delete_Last_Node_Children()
{
if (LastNodeID > 0)
{
// Delete Children in the root
DeleteChildren(Convert.ToInt32(GetParent(LastNodeID)));
}
else
Assert.Ignore("There is no item in the tree");
}
#endregion
#region void K_Edit_Last_Node_Children()
[Test]
public void K_Edit_Last_Node_Children()
{
if (LastNodeID > 0)
{
// Edit Items added in the root
EditChildren(Convert.ToInt32(GetParent(LastNodeID)));
}
else
Assert.Ignore("Tree is empty");
}
#endregion
#region void L_Delete_Last_Node_Children()
[Test]
public void L_Delete_Last_Node_Children()
{
if (LastNodeID > 0)
{
// Delete Children in the root
DeleteChildren(Convert.ToInt32(GetParent(LastNodeID)));
}
else
Assert.Ignore("There is no item in the tree");
}
#endregion
#region void M_Delete_Root_Children()
[Test]
public void M_Delete_Root_Children()
{
if (RootID > 0)
{
// Delete Children in the root
DeleteChildren(RootID);
// Delete the root
DeleteANode(RootID);
}
else
Assert.Ignore("Root is empty");
}
#endregion
}
#endregion
#region Suit2_TestMovement : AGeoTest
[TestFixture]
public class Suit2_TestMovement_Master : A_GeoTest
{
#region void Init()
[TestFixtureSetUp]
public void Init()
{
gf = new LookupForm();
gf.MdiParent = null;
gf.Show(null);
}
#endregion
#region void A_Add_Root_Children()
/// <summary>
/// Add a record to database using Windows Form
/// </summary>
[Test]
public void A_Add_Root_Children()
{
if (RootID <= 0)
{
// Add Root
AddANode(-1, "Root");
gf.Refresh();
// Add 15 Items to the root
AddChildren(RootID, 25);
// Add 10 Items to the LastNodeID
AddChildren(LastNodeID, 10);
// Add 10 Items to the LastNodeID
AddChildren(LastNodeID, 11);
// Add 10 Items to the LastNodeID
AddChildren(LastNodeID, 4);
}
else
Assert.Ignore("Root already have items");
}
#endregion
#region void B_Move_On_Children()
[Test]
public void B_Move_On_Children()
{
int ln = LastNodeID;
if (ln > 0)
{
do
{
gf.BindingManager.Find(ln);
gf.BindingManager.TransactionState = TransactionStateKind.Add;
gf.BindingManager.TransactionState = TransactionStateKind.Initial;
gf.Refresh();
gf.BindingManager.TransactionState = TransactionStateKind.Edit;
gf.BindingManager.TransactionState = TransactionStateKind.Initial;
gf.Refresh();
gf.BindingManager.TransactionState = TransactionStateKind.Delete;
gf.BindingManager.TransactionState = TransactionStateKind.Initial;
gf.Refresh();
ln = PreviousNodeID;
} while (ln > RootID);
}
else
Assert.Ignore("Root is empty");
}
#endregion
#region void M_Delete_Root_Children()
[Test]
public void M_Delete_Root_Children()
{
if (RootID > 0)
{
// Delete Children in the root
DeleteChildren(Convert.ToInt32(GetParent(LastNodeID)));
// Delete Children in the root
DeleteChildren(Convert.ToInt32(GetParent(LastNodeID)));
// Delete Children in the root
DeleteChildren(Convert.ToInt32(GetParent(LastNodeID)));
// Delete Children in the root
DeleteChildren(RootID);
// Delete the root
DeleteANode(RootID);
}
else
Assert.Ignore("Root is empty");
}
#endregion
}
#endregion
#region Suit3_TestMasterRelation: A_GeoTest
[TestFixture]
public class Suit3_TestMasterRelation : A_GeoTest
{
#region void Init()
[TestFixtureSetUp]
public void Init()
{
try
{
gf = new LookupForm();
gf.BindingRelation.Relation = RelationKind.MasterDetail;
gf.BindingRelation.Bind();
gf.MdiParent = null;
gf.Show(null);
}
catch(Exception ex)
{
Console.Write(ex);
}
}
#endregion
#region void A1_Add_Root_Children()
/// <summary>
/// Add a record to database using Windows Form
/// </summary>
[Test]
public void A1_Add_Root_Children()
{
if (RootID <= 0)
{
Assert.AreEqual( gf.BindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
gf.BindingManager.TransactionState = TransactionStateKind.Add;
gf.Refresh();
Assert.AreEqual( gf.DetailBindingManager.TransactionState, TransactionStateKind.Null );
gf.BindingManager["Name"] = "Root";
gf.BindingManager.TransactionState = TransactionStateKind.Confirm;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Confirm);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
}
else
Assert.Ignore("Root already have items");
}
#endregion
#region void A2_Edit_Root_Children()
/// <summary>
/// Edit a record to database using Windows Form
/// </summary>
[Test]
public void A2_Edit_Root_Children()
{
if (RootID > 0)
{
gf.BindingManager.TransactionState = TransactionStateKind.Edit;
gf.Refresh();
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Null);
gf.BindingManager["Name"] = gf.BindingManager["Name"]+" Edit";
gf.BindingManager.TransactionState = TransactionStateKind.Confirm;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Confirm);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
}
else
Assert.Ignore("Root is empty");
}
#endregion
#region void A3_Delete_Root_Children()
/// <summary>
/// Delete a record to database using Windows Form
/// </summary>
[Test]
public void A3_Delete_Root_Children()
{
if (RootID > 0)
{
gf.BindingManager.TransactionState = TransactionStateKind.Delete;
gf.Refresh();
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Null);
gf.BindingManager.TransactionState = TransactionStateKind.Confirm;
Assert.AreEqual(gf.BindingManager.Count, 0);
RootID = -1;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Null);
}
else
Assert.Ignore("Root is empty");
}
#endregion
#region void A4_Cancel_An_Add()
/// <summary>
/// Cancel an Add
/// </summary>
[Test]
public void A4_Cancel_An_Add()
{
if (RootID <= 0)
{
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
gf.BindingManager.TransactionState = TransactionStateKind.Add;
gf.Refresh();
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Null);
gf.BindingManager["Name"] = "Root";
gf.BindingManager.TransactionState = TransactionStateKind.Initial;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Null);
}
else
Assert.Ignore("Root already have items");
}
#endregion
#region void A5_Repeat_A1()
/// <summary>
/// Add a record to database using Windows Form
/// </summary>
[Test]
public void A5_Repeat_A1()
{
A1_Add_Root_Children();
}
#endregion
#region void A6_Cancel_An_Edit()
/// <summary>
/// Cancel an Edit
/// </summary>
[Test]
public void A6_Cancel_An_Edit()
{
if (RootID > 0)
{
gf.BindingManager.TransactionState = TransactionStateKind.Edit;
gf.Refresh();
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Null);
gf.BindingManager["Name"] = "Root";
gf.BindingManager.TransactionState = TransactionStateKind.Initial;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Initial);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
}
else
Assert.Ignore("Root is empty");
}
#endregion
#region void A7_Cancel_A_Delete()
/// <summary>
/// Cancel a Delete
/// </summary>
[Test]
public void A7_Cancel_A_Delete()
{
if (RootID > 0)
{
gf.BindingManager.TransactionState = TransactionStateKind.Delete;
gf.Refresh();
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Null);
gf.BindingManager["Name"] = "Root";
gf.BindingManager.TransactionState = TransactionStateKind.Initial;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Initial);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
}
else
Assert.Ignore("Root is empty");
}
#endregion
#region void A8_Repeat_A2()
[Test]
public void A8_Repeat_A2()
{
A2_Edit_Root_Children();
}
#endregion
#region void A9_Repeat_A3()
[Test]
public void A9_Repeat_A3()
{
A3_Delete_Root_Children();
}
#endregion
}
#endregion
#region Suit4_TestDetailRelation: A_GeoTest
[TestFixture]
public class Suit4_TestDetailRelation : A_GeoTest
{
#region void Init()
[TestFixtureSetUp]
public void Init()
{
try
{
gf = new LookupForm();
gf.BindingRelation.Relation = RelationKind.MasterDetail;
gf.BindingRelation.Bind();
gf.MdiParent = null;
gf.Show(null);
}
catch (Exception ex)
{
Console.Write(ex);
}
}
#endregion
#region void A1_Add_Root()
/// <summary>
/// Add a record to database using Windows Form
/// </summary>
[Test]
public void A1_Add_Root()
{
if (RootID <= 0)
{
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
gf.BindingManager.TransactionState = TransactionStateKind.Add;
gf.Refresh();
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Null);
gf.BindingManager["ParentID"] = -1;
gf.BindingManager["Name"] = "Root";
gf.BindingManager.TransactionState = TransactionStateKind.Confirm;
Assert.AreEqual(gf.GeoTblTreeView.Count, 1);
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Confirm);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
}
else
Assert.Ignore("Root already have items");
}
#endregion
#region void A2_Edit_Root()
/// <summary>
/// Edit a record to database using Windows Form
/// </summary>
[Test]
public void A2_Edit_Root()
{
if (RootID > 0)
{
gf.BindingManager.TransactionState = TransactionStateKind.Edit;
gf.Refresh();
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Null);
gf.BindingManager["Name"] = gf.BindingManager["Name"] + " Edit";
gf.BindingManager.TransactionState = TransactionStateKind.Confirm;
Assert.AreEqual(gf.GeoTblTreeView.Count, 1);
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Confirm);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
}
else
Assert.Ignore("Root is empty");
}
#endregion
#region void A3_Add_Detail()
[Test]
public void A3_Add_Detail()
{
if (RootID > 0)
{
Assert.IsTrue(gf.BindingManager.TransactionState == TransactionStateKind.Confirm ||
gf.BindingManager.TransactionState == TransactionStateKind.Initial ||
gf.BindingManager.TransactionState == TransactionStateKind.AddEditOnly);
//Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
gf.DetailBindingManager.TransactionState = TransactionStateKind.Add;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Null);
gf.DetailBindingManager["GeoTableFK"] = this.RootID;
gf.DetailBindingManager["Name"] = "F"+RandomNo;
gf.DetailBindingManager.TransactionState = TransactionStateKind.Confirm;
Assert.IsTrue(gf.GeoTblTreeView.Count == 1 || gf.GeoTblTreeView.Count==3);
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.AddEditOnly);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Confirm);
}
else
Assert.Ignore("Root is empty");
}
#endregion
#region void A4_Edit_Detail()
[Test]
public void A4_Edit_Detail()
{
if (RootID > 0)
{
gf.DetailBindingManager.TransactionState = TransactionStateKind.Edit;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Null);
gf.DetailBindingManager["Name"] = gf.DetailBindingManager["Name"] + " E-" + this.RandomNo;
gf.DetailBindingManager.TransactionState = TransactionStateKind.Confirm;
gf.Refresh();
Assert.IsTrue(gf.GeoTblTreeView.Count == 1 || gf.GeoTblTreeView.Count == 3);
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.AddEditOnly);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Confirm);
}
else
Assert.Ignore("Root is empty");
}
#endregion
#region void A5_Delete_Detail()
[Test]
public void A5_Delete_Detail()
{
if (RootID > 0)
{
gf.DetailBindingManager.TransactionState = TransactionStateKind.Delete;
gf.Refresh();
int totalBeforeDelete = gf.DetailBindingManager.Count;
gf.DetailBindingManager.TransactionState = TransactionStateKind.Confirm;
Assert.AreEqual(gf.DetailBindingManager.Count, totalBeforeDelete-1);
gf.Refresh();
Assert.IsTrue(gf.GeoTblTreeView.Count == 1 || gf.GeoTblTreeView.Count == 3);
Assert.IsTrue(gf.BindingManager.TransactionState == TransactionStateKind.AddEditOnly || gf.BindingManager.TransactionState==TransactionStateKind.Initial);
if (gf.DetailBindingManager.Count>0)
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Confirm);
else
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
}
else
Assert.Ignore("Root is empty");
}
#endregion
#region void A6_Detail_Cancel_An_Add()
/// <summary>
/// Cancel an Add
/// </summary>
[Test]
public void A6_Detail_Cancel_An_Add()
{
if (RootID > 0)
{
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
gf.DetailBindingManager.TransactionState = TransactionStateKind.Add;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Null);
gf.DetailBindingManager["Name"] = "Added to be canceled";
gf.DetailBindingManager.TransactionState = TransactionStateKind.Initial;
gf.Refresh();
Assert.AreEqual(gf.GeoTblTreeView.Count, 1);
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Initial);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
}
else
Assert.Ignore("Root is empty");
}
#endregion
#region void A7_Add_Detail_To_Root()
[Test]
public void A7_Add_Detail_To_Root()
{
for(byte i=0 ;i<=10;i++)
A3_Add_Detail();
Assert.AreEqual(gf.GeoTblTreeView.Count, 1);
}
#endregion
#region void A8_Detail_Cancel_An_Edit()
[Test]
public void A8_Detail_Cancel_An_Edit()
{
if (RootID > 0)
{
//A3_Add_Detail();
gf.DetailBindingManager.TransactionState = TransactionStateKind.Edit;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Null);
gf.DetailBindingManager["Name"] = gf.DetailBindingManager["Name"] + "Edited Cancled";
gf.DetailBindingManager.TransactionState = TransactionStateKind.Initial;
gf.Refresh();
Assert.AreEqual(gf.GeoTblTreeView.Count, 1);
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.AddEditOnly);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Initial);
//A5_Delete_Detail();
}
else
Assert.Ignore("Root is empty");
}
#endregion
#region void A9_Detail_Cancel_A_Delete()
/// <summary>
/// Cancel a Delete
/// </summary>
[Test]
public void A9_Detail_Cancel_A_Delete()
{
if (RootID > 0)
{
gf.DetailBindingManager.TransactionState = TransactionStateKind.Delete;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Null);
gf.DetailBindingManager.TransactionState = TransactionStateKind.Initial;
gf.Refresh();
Assert.AreEqual(gf.GeoTblTreeView.Count, 1);
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.AddEditOnly);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Initial);
}
else
Assert.Ignore("Root is empty");
}
#endregion
/// <summary>
/// Add more Master elements
/// </summary>
#region void AB1_Add_Root_Children()
[Test]
public void AB1_Add_Root_Children()
{
if (RootID >0)
{
Assert.AreNotEqual(gf.BindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
gf.BindingManager.TransactionState = TransactionStateKind.Add;
gf.Refresh();
gf.BindingManager["ParentID"] = -1;
gf.BindingManager["Name"] = "Added = " + this.RandomNo;
gf.BindingManager.TransactionState = TransactionStateKind.Confirm;
Assert.Greater(gf.GeoTblTreeView.Count, 1);
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.AddEditOnly);
}
else
Assert.Ignore("Root already have items");
}
#endregion
#region void AB2_Add_Root_Children_Again()
[Test]
public void AB2_Add_Root_Children_Again()
{
AB1_Add_Root_Children();
Assert.AreEqual(gf.GeoTblTreeView.Count, 3);
}
#endregion
#region void AB3_Add_Detail_To_First_Child()
[Test]
public void AB3_Add_Detail_To_First_Child()
{
gf.BindingManager.MoveNext();
for (byte i = 0; i <= 10; i++)
A3_Add_Detail();
Assert.AreEqual(gf.GeoTblTreeView.Count, 3);
}
#endregion
#region void AB4_Delete_Detail_In_Root()
[Test]
public void AB4_Delete_Detail_In_Root()
{
gf.BindingManager.MoveFirst();
for (byte i = 0; i <= 10; i++)
A5_Delete_Detail();
Assert.AreEqual(gf.GeoTblTreeView.Count, 3);
}
#endregion
#region void AB5_Delete_Detail_In_First_Child()
[Test]
public void AB5_Delete_Detail_In_First_Child()
{
gf.BindingManager.MoveLast();
gf.BindingManager.MovePrevious();
for (byte i = 0; i <= 10; i++)
A5_Delete_Detail();
Assert.AreEqual(gf.GeoTblTreeView.Count, 3);
}
#endregion
#region AB6_Delete_Root__First_Children()
[Test]
public void AB6_Delete_Root__First_Children()
{
if (RootID > 0)
{
gf.BindingManager.TransactionState = TransactionStateKind.Delete;
gf.Refresh();
gf.BindingManager.TransactionState = TransactionStateKind.Confirm;
Assert.AreEqual(gf.GeoTblTreeView.Count, 2);
gf.Refresh();
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
}
else
Assert.Ignore("Root is empty");
}
#endregion
#region AB7_Delete_Root__Last_Children()
[Test]
public void AB7_Delete_Root__Last_Children()
{
if (RootID > 0)
{
gf.BindingManager.MoveLast();
gf.BindingManager.TransactionState = TransactionStateKind.Delete;
gf.Refresh();
gf.BindingManager.TransactionState = TransactionStateKind.Confirm;
Assert.AreEqual(gf.GeoTblTreeView.Count, 1);
gf.Refresh();
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
}
else
Assert.Ignore("Root is empty");
}
#endregion
#region void AB8_Delete_Root_Children()
[Test]
public void AB8_Delete_Root_Children()
{
if (RootID > 0)
{
gf.BindingManager.TransactionState = TransactionStateKind.Delete;
gf.Refresh();
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Null);
gf.BindingManager.TransactionState = TransactionStateKind.Confirm;
Assert.AreEqual(gf.BindingManager.Count, 0);
RootID = -1;
Assert.AreEqual(gf.GeoTblTreeView.Count, 0);
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Null);
}
else
Assert.Ignore("Root is empty");
}
#endregion
}
#endregion
#region Suit5_TestLookupRelation_One_Side: A_GeoTest
[TestFixture]
public class Suit5_TestLookupRelation_One_Side : A_GeoTest
{
#region void Init()
[TestFixtureSetUp]
public void Init()
{
try
{
gf = new LookupForm();
gf.BindingRelation.Relation = RelationKind.Lookup;
gf.BindingRelation.Bind();
gf.MdiParent = null;
gf.Show(null);
}
catch (Exception ex)
{
Console.Write(ex);
}
}
#endregion
#region void A1_Add_To_Many()
/// <summary>
/// Add a record to database using Windows Form
/// </summary>
[Test]
public void A1_Add_To_Many()
{
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Null);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
gf.DetailBindingManager.TransactionState = TransactionStateKind.Add;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
gf.DetailBindingManager["Name"] = "1";
gf.DetailBindingManager.TransactionState = TransactionStateKind.Confirm;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Null);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Confirm);
}
#endregion
#region void A2_Edit_In_Many()
/// <summary>
/// Edit a record to database using Windows Form
/// </summary>
[Test]
public void A2_Edit_In_Many()
{
gf.DetailBindingManager.TransactionState = TransactionStateKind.Edit;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
gf.DetailBindingManager["Name"] = gf.DetailBindingManager["Name"] + " Edited";
gf.DetailBindingManager.TransactionState =
TransactionStateKind.Confirm;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Null);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Confirm);
}
#endregion
#region void A3_Delete_In_Many()
/// <summary>
/// Delete a record to database using Windows Form
/// </summary>
[Test]
public void A3_Delete_In_Many()
{
gf.DetailBindingManager.TransactionState = TransactionStateKind.Delete;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Null);
gf.DetailBindingManager.TransactionState = TransactionStateKind.Confirm;
Assert.AreEqual(gf.DetailBindingManager.Count, 0);
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Null);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
}
#endregion
#region void A4_Cancel_An_Add_In_Many()
/// <summary>
/// Cancel an Add
/// </summary>
[Test]
public void A4_Cancel_An_Add_In_Many()
{
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Null);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
gf.DetailBindingManager.TransactionState
= TransactionStateKind.Add;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
gf.DetailBindingManager["Name"] = "Add to be canceled";
gf.DetailBindingManager.TransactionState = TransactionStateKind.Initial;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Null);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
}
#endregion
#region void A5_Repeat_A1()
[Test]
public void A5_Repeat_A1()
{
A1_Add_To_Many();
}
#endregion
#region void A6_Cancel_An_Edit_In_Many()
/// <summary>
/// Cancel an Edit
/// </summary>
[Test]
public void A6_Cancel_An_Edit_In_Many()
{
gf.DetailBindingManager.TransactionState = TransactionStateKind.Edit;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
gf.DetailBindingManager["Name"] = "Edit to be canceled";
gf.DetailBindingManager.TransactionState = TransactionStateKind.Initial;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Null);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Initial);
}
#endregion
#region void A7_Cancel_A_Delete_In_Many()
/// <summary>
/// Cancel a Delete
/// </summary>
[Test]
public void A7_Cancel_A_Delete_In_Many()
{
gf.DetailBindingManager.TransactionState = TransactionStateKind.Delete;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Null);
gf.DetailBindingManager.TransactionState = TransactionStateKind.Initial;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Null);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Initial);
}
#endregion
#region void A8_Repeat_A2()
[Test]
public void A8_Repeat_A2()
{
A2_Edit_In_Many();
}
#endregion
#region void A9_Repeat_A3()
[Test]
public void A9_Repeat_A3()
{
A3_Delete_In_Many();
}
#endregion
}
#endregion
#region Suit6_TestLookupRelation_Many_Side: A_GeoTest
[TestFixture]
public class Suit6_TestLookupRelation_Many_Side : A_GeoTest
{
#region void Init()
[TestFixtureSetUp]
public void Init()
{
try
{
gf = new LookupForm();
gf.BindingRelation.Relation = RelationKind.Lookup;
gf.BindingRelation.Bind();
gf.MdiParent = null;
gf.Show(null);
}
catch (Exception ex)
{
Console.Write(ex);
}
}
#endregion
#region void A1_Add_To_One()
[Test]
public void A1_Add_To_One()
{
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Null);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
gf.DetailBindingManager.TransactionState = TransactionStateKind.Add;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
gf.BindingManager.TransactionState = TransactionStateKind.Add;
gf.Refresh();
Assert.IsFalse(gf.DetailBindingManager.Enabled);
gf.BindingManager["Name"] = "Root";
gf.BindingManager.TransactionState = TransactionStateKind.Confirm;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Confirm);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Add);
gf.DetailBindingManager.TransactionState = TransactionStateKind.Initial;
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.EditOnly);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
}
#endregion
#region void A2_Edit_In_One()
[Test]
public void A2_Edit_In_One()
{
gf.DetailBindingManager.TransactionState = TransactionStateKind.Add;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Initial);
gf.BindingManager.TransactionState = TransactionStateKind.Edit;
gf.Refresh();
Assert.IsFalse(gf.DetailBindingManager.Enabled);
gf.BindingManager["Name"] = gf.BindingManager["Name"] + " Edited";
gf.BindingManager.TransactionState = TransactionStateKind.Confirm;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Confirm);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Add);
gf.DetailBindingManager.TransactionState = TransactionStateKind.Initial;
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.EditOnly);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
}
#endregion
#region void A3_Delete_In_One()
[Test]
public void A3_Delete_In_One()
{
gf.DetailBindingManager.TransactionState = TransactionStateKind.Add;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Initial);
gf.BindingManager.TransactionState = TransactionStateKind.Delete;
gf.Refresh();
Assert.IsFalse(gf.DetailBindingManager.Enabled);
gf.BindingManager.TransactionState = TransactionStateKind.Confirm;
gf.Refresh();
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.Add);
gf.DetailBindingManager.TransactionState = TransactionStateKind.Initial;
Assert.AreEqual(gf.BindingManager.Count, 0);
Assert.AreEqual(gf.BindingManager.TransactionState, TransactionStateKind.Null);
Assert.AreEqual(gf.DetailBindingManager.TransactionState, TransactionStateKind.EmptyDataSource);
}
#endregion
}
#endregion
}