From: <wda...@us...> - 2007-12-29 22:23:45
|
Revision: 1891 http://oorexx.svn.sourceforge.net/oorexx/?rev=1891&view=rev Author: wdashley Date: 2007-12-29 14:23:38 -0800 (Sat, 29 Dec 2007) Log Message: ----------- ArtifactID: None Comment: Added the COMPOSITE operator expression tests. Added Paths: ----------- test/trunk/ooRexx/base/expressions/COMPOSITE.testGroup Added: test/trunk/ooRexx/base/expressions/COMPOSITE.testGroup =================================================================== --- test/trunk/ooRexx/base/expressions/COMPOSITE.testGroup (rev 0) +++ test/trunk/ooRexx/base/expressions/COMPOSITE.testGroup 2007-12-29 22:23:38 UTC (rev 1891) @@ -0,0 +1,211 @@ +#!/usr/bin/rexx +/* + name: Composite operator testGroup + author: W. David Ashley + date: 2007-12-29 + version: 1.0.1 + +-- line commented lines are ignored, when building the directory of infos from this header + changed: 2007-12-29, ---wda, initial creation + + languageLevel: 6.02 + purpose: Test Rexx composite operators + + license: CPL 1.0 (Common Public License v1.0, see below) + link: + + category1: ooRexx + category2: Base + category3: expressions +*/ +/*----------------------------------------------------------------------------*/ +/* */ +/* Copyright (c) 2005-2008 Rexx Language Association. All rights reserved. */ +/* */ +/* This program and the accompanying materials are made available under */ +/* the terms of the Common Public License v1.0 which accompanies this */ +/* distribution. A copy is also available at the following address: */ +/* http://www.ibm.com/developerworks/oss/CPLv1.0.htm */ +/* */ +/* Redistribution and use in source and binary forms, with or */ +/* without modification, are permitted provided that the following */ +/* conditions are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in */ +/* the documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of Rexx Language Association nor the names */ +/* of its contributors may be used to endorse or promote products */ +/* derived from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ +/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ +/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ +/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ +/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ +/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ +/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/*----------------------------------------------------------------------------*/ + + + +------------------------------------------------------------------------------------------- +-- ===> adapt the "testGroupList" to your testCase classes; each element in the list is <=== +-- ===> an array object, the first element containing the testCase class object, the <=== +-- ===> second element is a list of test method names which are regarded to be <=== +-- ===> mandatory (if the list remains empty all test methods are mandatory) <=== + + /* list of array objects, each containing the testGroup class object and an + optional list of mandatory test case methods name */ + +mandatoryTestMethods=.list~new -- no mandatory tests for this testCase class +testGroupList=.list~of( .array~of(.COMPOSITE.testGroup, mandatoryTestMethods) ) + + +------------------------------------------------------------------------------------------- +-- ===> the following code needs not to be individualized <=== + + -- read top comment, containing infos about this program +arrLines=.array~new +do i=1 to 150 until arrLines[i]="*/" + arrLines[i]=sourceline(i) +end + -- supply information for the testClass(es) in this file; the class attribute + -- "TestCaseInfo" (a directory object, index points to a queue) will store + -- the parsed infos +aTestGroupClass=testGroupList~at(testGroupList~first)[1] -- get first testClass + + -- will parse the array lines and store result in class object +call makeDirTestInfo aTestGroupClass, arrLines +tmpDir=aTestGroupClass~TestCaseInfo +parse source s -- op_sys invocationType fullPathToThisFile +tmpDir~setentry("test_Case-source", s) + + -- now add this directory to other testCase classes, if any left +do arr over testGroupList + if arr[1]=aTestGroupClass then iterate -- already handled + arr[1]~TestCaseInfo=tmpDir -- save info in class object +end + +-- if this file is CALLed or REQUIRED then define an entry "bRunTestLocally" in .local +-- and set it to .false; this way the independent local invocation of the tests is inhibited +if .local~hasentry("bRunTestsLocally")=.false then + .local~bRunTestsLocally=.true -- if this file is executed directly, then run tests for debugging + +if .bRunTestsLocally=.true then -- run ALL tests in this test unit +do + ts=.testSuite~new -- create a testSuite + do arr over testGroupList + -- create a testSuite for the given test case class, use all its testmethods + ts~addTest( .testSuite~new(arr[1])) + end + -- testResult=.testSuite~new(testGroupClass)~run + testResult=ts~run -- now run all the tests + + call simpleDumpTestResults testResult +end + + /* return list of array objects containing test case classes and + optionally list of mandatory test methods */ +return testGroupList + + + +::requires ooRexxUnit.cls -- load the ooRexxUnit classes + +::class "COMPOSITE.testGroup" subclass TestCase public + +::method "test_1" + self~assertSame("subTest1", '' | | '1','1') + +::method "test_2" + self~assertSame("subTest1", '' | /**/ | '1','1') + +::method "test_3" + self~assertSame("subTest1", 3 / / 2,'1') + +::method "test_4" + self~assertSame("subTest1", 3 / /**/ / 2,'1') + +::method "test_5" + self~assertSame("subTest1", 2 * * 0,'1') + +::method "test_6" + self~assertSame("subTest1", 2 * /**/ * 0,'1') + +::method "test_7" + self~assertSame("subTest1", 1 < > 2,'1') + +::method "test_8" + self~assertSame("subTest1", 1 < /**/ > 2,'1') + +::method "test_9" + self~assertSame("subTest1", 1 > < 2,'1') + +::method "test_10" + self~assertSame("subTest1", 1 > /**/ < 2,'1') + +::method "test_11" + self~assertSame("subTest1", 1 < > 2,'1') + +::method "test_12" + self~assertSame("subTest1", 1 < /**/ > 2,'1') + +::method "test_13" + self~assertSame("subTest1", 2 > = 1,'1') + +::method "test_14" + self~assertSame("subTest1", 2 > /**/ = 1,'1') + +::method "test_15" + self~assertSame("subTest1", 1 < = 2,'1') + +::method "test_16" + self~assertSame("subTest1", 1 < /**/ = 2,'1') + +::method "test_17" + self~assertSame("subTest1", 1 = = 1,'1') + +::method "test_18" + self~assertSame("subTest1", 1 = /**/ = 1,'1') + +::method "test_19" + self~assertSame("subTest1", 2 > > 1,'1') + +::method "test_20" + self~assertSame("subTest1", 2 > /**/ > 1,'1') + +::method "test_21" + self~assertSame("subTest1", 1 < < 2,'1') + +::method "test_22" + self~assertSame("subTest1", 1 < /**/ < 2,'1') + +::method "test_23" + self~assertSame("subTest1", 2 > > = 1,'1') + +::method "test_24" + self~assertSame("subTest1", 2 > /**/ > /**/ = 1,'1') + +::method "test_25" + self~assertSame("subTest1", 1 < < = 2,'1') + +::method "test_26" + self~assertSame("subTest1", 1 < /**/ < /**/ = 2,'1') + +::method "test_27" + self~assertSame("subTest1", 1 & & 0,'1') + +::method "test_28" + self~assertSame("subTest1", 1 & /**/ & 0,'1') + + + Property changes on: test/trunk/ooRexx/base/expressions/COMPOSITE.testGroup ___________________________________________________________________ Name: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |