FeaturesPluginsDocs & SupportCommunityPartners

DataSystem Test Specification for NetBeans 5.0

Author: Petr Zajac
Last update: 09/21/2005
Introduction: This is intended as test specification of DataSystem functionality.

Table of Contents

Test suite: Object Types

Purpose: Check basic operations over Loaders and LoaderPool from the IDE.
Setup: Ide with fresh userdir. Opened Options dialog. Show old settings where IDE Configuration -> System -> Object Types node is expanded.

#Test case [automated]Description
1Fixed Nodes1. Locate Object types nodes with [fixed] suffix.
2. Invoke Change Order dialog from the context menu over the Object Types node.
EXPECTED RESULT: Fixed loaders cannot be moved. In displayed Change Order dialog shouldn't be nodes marked as [fixed] under Object Types node.
2Action Instances1. Locate action Instances [fixed] Node.
2. Check Extensions and MIME Types property.
3. Also check Extensions and MIME Types property by another (e.g.. Image Objects) node.
EXPECTED RESULT: Extensions set for InstanceDataObject have to be readonly.
3Actions1. Select Textual Objects node and invoke property editor for its actions.
2. Add System -> Exit action.
3. In the Explorer expand sampledir -> Examples -> Clock node and invoke popup over the README file.
EXPECTED RESULT: The context menu should contain Exit axtion as the last item. Remove Exit action from Textual Objects actions.
4Extensions1. Select the Image Objects node under the Objects Types node.
2. Invoke property editor of Extensions and MIME Types property.
3. Add 'txt' to the extensions list of this Loader.
EXPECTED RESULT: Check $userdir/sampledir/examples/Clock/README file, it should be identified as an image now (If it is still displayed as text file, invoke Refresh action from the context menu over the $userdir/sampledir/examples/Clock/ folder. After the Refresh it should change icon to Image one).
5Order of Loaders I. (UniFileLoader)1. Invoke context menu over the Object Types node in the Options dialog.
2. Select Change Order... action.
3. In the Change Order dialog move the Image Objects node under the Textual Objects node.
EXPECTED RESULT: Check a .txt file, it should be identified again as an text file (If it is still displayed as image file, invoke Refresh action from the context menu over the $userdir/sampledir/examples/Clock/ folder. After the Refresh it should change icon to Textual one). Finally remove the 'txt' extension from the Extensions and MIME Types property of the Imager Objects.
6Order of Loaders II. (MultiFileLoader)1. In the a project create Java Form object.
2. Check if newly created object is recognized as Java Form object.
3. Invoke context menu over the Object Types node in the Options dialog.
4. Select Change Order... action.
5. In the Change Order dialog move the RMI Sources node under the Java Sources Objects node.
EXPECTED RESULT: Check RMI Activatable object, there should be couple of java sources objecs instead (If it is still displayed as RMI object, invoke Refresh action from the context menu over the $userdir/sampledir/examples/ folder. After the Refresh there should appear java objects and RMI should disappear). Finally move the RMI Sources node back over the Java Sources Objects node. All changes made previously should be reverted.


Test suite: Loader Pool

Purpose: Check basic operations over LoaderPool.
Setup: Implement e.g. UniFileLoader (say UL) recognizing 'txt' files and create simple module simple_test_module (This loader will be declared in the manifest.). In some folder place two textual files (say file1.txt and file2.txt).

#Test case [automated]Description
1Constructing DataObject instance I [Done] 1. Load simple_test_module if not loaded yet.
2. Create new DataObject for file file1.txt using DataObject constructor.
3. Try create the same DataObject for file file1.txt once again.
EXPECTED RESULT: There should be thrown an Exception informing about that the DataObject already exists.
2Remove DataLoader from LoaderPool [Done] 1. Remove UL from the LoaderPool using LoaderPoolNode from the core module.
EXPECTED RESULT: Check all registered loaders, if removed loader was unregistered.
3Constructing DataObject instance II [Done] 1. Create new DataObject for file file1.txt using DataObject constructor.
EXPECTED RESULT: The old instance shouldn't be referenced anymore and the DataLoader was removed, so the DataObject should be created.
4Adding DataLoder into LoaderPool [Done] 1. Get instance of simple_test_module manifest from the ModuleManager.
2. Get LoaderSection from this manifest.
3. Install loaders provided by this module into the LoaderPool.
EXPECTED RESULT: Check LoaderPool for presence of this new loader.
5Constructing DataObject instance III [Done] 1. Create new DataObject for file file1.txt using DataObject constructor.
EXPECTED RESULT: The DataObject should be created, because the old instance isn't after adding new DataLoader referenced any more.
6Finding DataObject instance [Done] 1. Find DataObject for file file1.txt using DataObject find().
2. From returned DataObject get the DataLoader.
EXPECTED RESULT: file1.txt should be recognized by UL DataLoader.
7Remove DataLoader from LoaderPool [Done] 1. Remove UL from the LoaderPool using LoaderPoolNode from the core module.
EXPECTED RESULT: Check all registered loaders, if removed loader was unregistered.
8Finding DataObject instance [Done] 1. Find DataObject for file file1.txt using DataObject find().
2. From returned DataObject get the DataLoader.
EXPECTED RESULT: file1.txt should be recognized by DefaultDataLoader.
9Finding DataObject instance [Done] 1. Find DataObject for file file2.txt using DataObject find().
2. From returned DataObject get the DataLoader.
EXPECTED RESULT: file2.txt should be recognized by DefaultDataLoader.
10Adding DataLoder into LoaderPool [Done] 1. Get instance of simple_test_module manifest from the ModuleManager.
2. Get LoaderSection from this manifest.
3. Install loaders provided by this module into the LoaderPool.
EXPECTED RESULT: Check LoaderPool for presence of this new loader.
11Finding DataObject instance [Done] 1. Find DataObject for file file1.txt using DataObject find().
2. From returned DataObject get the DataLoader.
EXPECTED RESULT: file1.txt should be recognized by UL DataLoader.
12Finding DataObject instance [Done] 1. Find DataObject for file file2.txt using DataObject find().
2. From returned DataObject get the DataLoader.
EXPECTED RESULT: file2.txt should be recognized by UL DataLoader.
13Preferred DataLoader [Done] 1. Check preferred loader for file1.txt.
EXPECTED RESULT: Prefered loader should not be set.
14Set Preferred DataLoader [Done] 1. Set preferred loader for file1.txt to UL.
2. Invalidate all DataObjects created by UL and gc them.
3. Find DataObject for file1.txt.
EXPECTED RESULT: UL loader should be used first for next recognition of this file.
15First producer [Done] 1. Find DataObject for file1.txt.
2. Get first producer of this DataObject.
EXPECTED RESULT: First producer should be UL loader.


Test suite: Data Object

Purpose: Check basic operations over DataObject.
Setup: Implement set of DataObject together with proper DataLoaders recognizing them. There should be at least one MultiFileLoader and one UniFileLoader.

#Test case [automated]Description
1Copy [Done] 1. Check if DataObject is copy allowed.
2. Copy DataObject to the new location.
EXPECTED RESULT: Check retutned DataObject: It should have the same name as original and should contain the same set of files as original, it should be also delete allowed. Finally delete newly created DataObject. Note: if all files are transferred is up to the type of DataObject - e.g. java DataObjects will not transfer class files etc.
2Move [Done] 1. Check if DataObject is move allowed.
2. Move DataObject to the new location.
EXPECTED RESULT: Check the DataObject: It should have the same name and should contain the same set of files, it should be also move allowed. Finally move the DataObject back. Note: if all files are transferred is up to the type of DataObject - e.g.. java DataObjects will not transfer class files etc.
3Rename [Done] 1. Check if DataObject is rename allowed.
2. Rename DataObject.
EXPECTED RESULT: Check the DataObject: It should return new name, then it should contain the same set of files as original. Finally rename the DataObject back. Note: if all files are transferred is up to the type of DataObject - e.g.. java DataObjects will not transfer class files etc.
4Delete [Done] 1. Backup DataObject using e.g. Copy test case.
2. Test if DataObject is delete allowed.
3. Delete DataObject.
EXPECTED RESULT: All files from the DataObject should be deleted. Finally restore the DataObject from backup.
5Modify [Done] 1. Register change listener to concrete DataObject.
2. Modify DataObject.
EXPECTED RESULT: Modification should be sent to the Listener. The DataObject should be in Modified container (DataObject.Registry).
6UnModify [Done] 1. Register change listener to concrete modified DataObject.
2. Mark the DataObject as not modified.
EXPECTED RESULT: Modification should be sent to the Listener. The DataObject should not be in Modified container (DataObject.Registry).
7Validity [Done] 1. Check id DataObject is valid - it should be for this test case.
2. Copy the DataObject.
3. Next actions will be performed over newly copied DataObject.
4. Register new VetoableChangeListener that will veto invalidation of the DataObject.
5. Invalidate the DataObject.
EXPECTED RESULT: Invalidation should be vetoed. Deregister the listener and delete copied DataObject. The copied DataObject should be marked as invalid.
8Template1. Mark DataObject as template.
2. Now create new DataObject from template.
EXPECTED RESULT: Check if the new DataObject was created correctly. Finally mark the original DataObject as nontemplate.
9Node Delegate1. Create new NodeDelegate for the DataObject.
2. Register PropertyChangeListener to this DataObject.
3. Set new display name via NodeDelegate.
4. Set new name via NodeDelegate.
5. Set new short description via NodeDelegate.
6. Set show file extensions flag via NodeDelegate.
EXPECTED RESULT: All changes should be done. Show extension flag should enable to see extensions for all files.
10Repeat1. Repeat all previous steps for different types of DataObjects. At least for MultiDataObject, ShadowDataObject, DataFolder.
EXPECTED RESULT: All test cases should pass for all DataObjects.



Generated: Wed Sep 21 12:35:43 CDT 2005
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by