TestListManager library

TestListManager is used for managing the EUnit test framework.

Package

org.eclipse.edt.eunit.runtime

Example use
Type detail
/**
  * managing 2 lists
  * 1. list of libraries 
  * 2. list of test methods in the library that's running
  *    this list gets reset for each library 
  **/
Library TestListMgr	
   bindingType ServiceBindingType = ServiceBindingType.DEDICATED;

   /* multiStatus for current test library */
   ms MultiStatus;

   /* current test method index */
   testIndex int = 1;

   /* list of the test method names within a library, 
    * excluding the generatedLib.endTest()
    */
   testMethodNames String[];				

   /* list of test methods within a library, 
    * including an extra generatedLib.endTest()
    */
   runTestMtds runTestMethod[];

   /* current test library name (testdescription.name) */
   testLibName String;	

   /* list of test libraries */
   LibraryStartTests runTestMethod[];

   /* current test library index */
   private libIndex int = 1;

   function nextTest()	
      testId String = getTestIdString();

      SysLib.writeStdOut("Running test: " + testId);

      /* acculmulate the status of each test method result 
       * into the multiStatus for one library
       */
      ms.addStatus(testId);

      if(testIndex < runTestMtds.getSize())
         testIndex += 1;
         runTestMtds[testIndex]();
      end
   end	

   private function getTestIdString() returns (String)
      testMethodNamesSize int = testMethodNames.getSize();
      testId String = testLibName + "::";

      if(testIndex <= testMethodNamesSize)
         testId += testMethodNames[testIndex];
      else

         if(testIndex == (testMethodNamesSize+1))
            testId += "endTest";
         else
            testId +="INVALIDINDEXFOUND!!!";
         end
      end
      return (testId);
   end

   function nextTestLibrary()
      if(libIndex < LibraryStartTests.getSize())
         libIndex += 1;
         LibraryStartTests[libIndex]();	
      end	
   end	

   /* helper functions to handle asynchronize call exceptions */
   function handleCallBackException(exp AnyException in, http IHttp in)
      str String = "Caught service exception: " + 
                   exp.messageID + ": " + exp.message;

      if(exp isa ServiceInvocationException)
         sexp ServiceInvocationException = exp as ServiceInvocationException;
         s1 String = "detail1:" + sexp.detail1;
         s2 String = "detail2:" + sexp.detail2;
         s3 String = "detail3:" + sexp.detail3;
         str = str + ConstantsLib.NEWLINE;
         str = str + s1 + ConstantsLib.NEWLINE;
         str = str + s2 + ConstantsLib.NEWLINE;
         str = str + s3 + ConstantsLib.NEWLINE;
         str = str + "Original request body: " + 
               http.getRequest().body + ConstantsLib.NEWLINE;
         str = str + "Raw response body: " + 
                     http.getResponse().body + ConstantsLib.NEWLINE;
      end
      LogResult.error(str);
      testId String = TestListMgr.testMethodNames[TestListMgr.testIndex];
      TestListMgr.nextTest();
   end

   /* prepend the assertion failure error message to Status */
   function caughtFailedAssertion(exp AssertionFailedException in)
      sysLib.writeStdOut("AssertionFail - " + exp.message);	
   end	

   /* caught the exception from the test */
   function caughtAnyException(exp AnyException in)
      expMsg String = "uncaught exception for: " + getTestIdString();
      expMsg += ConstantsLib.NEWLINE + "    => " + 
                exp.messageID + ": " + exp.message;

      LogResult.error(expMsg);
   end

   function getBindingTypeString(bType ServiceBindingType) returns (String)
      case(bType)
         when(ServiceBindingType.DEDICATED)
            return ("DEDICATED_BINDING");
         when(ServiceBindingType.DEVELOP)
            return ("DEVELOP_BINDING");
         when(ServiceBindingType.DEPLOYED)
            return ("DEPLOYED_BINDING");
         otherwise
            return ("UNKNOWN Binding Type - NOT supported");	
      end	
   end
end
Comments

For a description of how to use the framework, see Developing and running test cases with EUnit.

Compatibility

Table 1. Compatibility
Target Issue
Java No issues.
JavaScript No issues.