Comments to Revision 1089: Difference between revisions

From OpenPetra Wiki
Jump to navigation Jump to search
Line 18: Line 18:


== A new common Exception: CancelSaveException ==
== A new common Exception: CancelSaveException ==
 
<s>
[http://bzr.openpetra.org:8088/loggerhead/trunk/revision/1089#csharp/ICT/Petra/Client/CommonForms/PetraEditForm.cs ICT/Petra/Client/CommonForms/PetraEditForm.cs] actually could only handle unspecific Exceptions. In order to be able to cancel a save operaton a CancelSaveException has been added. This Exception is used at different points in the automatic code.  
[http://bzr.openpetra.org:8088/loggerhead/trunk/revision/1089#csharp/ICT/Petra/Client/CommonForms/PetraEditForm.cs ICT/Petra/Client/CommonForms/PetraEditForm.cs] actually could only handle unspecific Exceptions. In order to be able to cancel a save operaton a CancelSaveException has been added. This Exception is used at different points in the automatic code.  


Line 26: Line 26:
# Create a defined state for the data
# Create a defined state for the data
# Throw a CancelSaveException
# Throw a CancelSaveException
</s>
CancelSaveException should not be used anymore and will be removed (see [[https://sourceforge.net/apps/mantisbt/openpetraorg/view.php?id=1503 Bug #1503]])


== A prototype for a dialog tester - TFrmGLAccountHierarchyTester ==
== A prototype for a dialog tester - TFrmGLAccountHierarchyTester ==

Revision as of 16:58, 28 December 2012

The revision 1089 contains a set of changes:

A new TreeViev-Control

If the user selects a tree view node and then changes to any other control of a dialog (tree view will lost its focus in this case) the selected node becomes indistinguishable to the other nodes. This situation is something difficult because the user has no orientation about the node he is dealing with.

Therefore the TrvTreeView has been added to the project. This tree view inherits System.Windows.Forms.TreeView and adds the functionality of holding a different color for the node selected at last before a LostFocusEvent.

This new tree view has been integrated in the code generation components so that the maximal work you have to do is to run a nant generateWinforms command to use this control.

A new class: CommonNUnitFunctions

A new class has been added to the test sources, the class CommonNUnitFunctions. This class inherits NUnitFormTest and in a new test class you can easily replaces NUnitFormTest against CommonNUnitFunctions.

In this case you will have the use of some internal test functions and the very first one is the standard handler for a message box. Other controls may follow. So it will be a good idea to change or to add a template in SharpDevelope.

Open to discuss: Log-File initialization ...

A new common Exception: CancelSaveException

ICT/Petra/Client/CommonForms/PetraEditForm.cs actually could only handle unspecific Exceptions. In order to be able to cancel a save operaton a CancelSaveException has been added. This Exception is used at different points in the automatic code.

If you want to cancel a save operation then

  1. Generate a proper and clear error message
  2. Create a defined state for the data
  3. Throw a CancelSaveException

CancelSaveException should not be used anymore and will be removed (see [Bug #1503])

A prototype for a dialog tester - TFrmGLAccountHierarchyTester

For NUnit a set of several small tester classes has been written. A more specific interest may be the tester class TFrmGLAccountHierarchyTester.

The best form to understand this file is to compare this to the dialog which shall be tested specially the part file: GLAccountHierarchy.Designer.

And here let us see only one control. An entry of the yaml-file generates the line:

this.trvAccounts = new Ict.Common.Controls.TTrvTreeView();

Tree view will be created and configured in the automatic code part. The idea is to create a TFrmGLAccountHierarchyTester class which shall be used in the tests. This class itself shall provide a control to access and test the tree view.

TFrmGLAccountHierarchyTester hierarchyTester = new TFrmGLAccountHierarchyTester();
hierarchyTester.trvAccounts.SelectNode(...);

That means:

  1. Easy access to the controls and the functions which shall be tested
  2. Small and easy readable test software

I think the most important todo is: Generation of this tester classes …