SASUnit Examples  Version 1.2.1
endtestcase.sas
Go to the documentation of this file.
1 
23 /* change history
24  29.01.2013 KL changed link from _sasunit_doc.sas to Sourceforge SASUnit User's Guide
25 */
26 
27 %MACRO endTestcase(i_assertLog=1);
28 
29 PROC SQL NOPRINT;
30 %LOCAL l_casid l_assertLog;
31 /* determine id of current test case */
32  SELECT max(cas_id) INTO :l_casid FROM target.cas WHERE cas_scnid=&g_scnid;
33 %LET l_casid = &l_casid;
34 %IF &l_casid=. %THEN %DO;
35  %PUT &g_error: endTestcase muss nach InitTestcase aufgerufen werden;
36  %RETURN;
37 %END;
38 %IF &i_assertLog %THEN %DO;
39 /* call assertLog if not already coded by programmer */
40  SELECT count(*) INTO :l_assertLog
41  FROM target.tst
42  WHERE tst_scnid = &g_scnid AND tst_casid = &l_casid AND tst_type='assertLog';
43  %IF &l_assertLog=0 %THEN %DO;
44  %assertLog()
45  %END;
46 %END;
47 QUIT;
48 
49 %GLOBAL g_inTestcase;
50 %IF &g_inTestcase EQ 1 %THEN %DO;
51  %endTestcall;
52 %END;
53 %ELSE %IF &g_inTestcase NE 2 %THEN %DO;
54  %PUT &g_error: endTestcase muss nach initTestcase aufgerufen werden;
55  %RETURN;
56 %END;
57 %LET g_inTestcase=0;
58 
59 PROC SQL NOPRINT;
60 %LOCAL l_result0 l_result1 l_result2;
61 /* determine test results */
62  SELECT count(*) INTO :l_result0 FROM target.tst WHERE tst_scnid=&g_scnid AND tst_casid=&l_casid AND tst_res=0;
63  SELECT count(*) INTO :l_result1 FROM target.tst WHERE tst_scnid=&g_scnid AND tst_casid=&l_casid AND tst_res=1;
64  SELECT count(*) INTO :l_result2 FROM target.tst WHERE tst_scnid=&g_scnid AND tst_casid=&l_casid AND tst_res=2;
65 QUIT;
66 
67 /* determine overall result of testcase */
68 %LOCAL l_result;
69 %IF &l_result1 GT 0 %THEN %LET l_result=1; /* errors occured */
70 %ELSE %IF &l_result2 GT 0 %THEN %LET l_result=2; /* manual checks occured */
71 %ELSE %LET l_result=0; /* not errors and no manual checks */
72 
73 PROC SQL NOPRINT;
74  UPDATE target.cas
75  SET
76  cas_res = &l_result
77  WHERE
78  cas_scnid = &g_scnid AND
79  cas_id = &l_casid;
80 QUIT;
81 
82 %MEND endTestcase;