SASUnit Examples  Version 1.5.0
_asserts.sas
Go to the documentation of this file.
1 
28 %MACRO _asserts (i_type =
29  ,i_expected =
30  ,i_actual =
31  ,i_desc =
32  ,i_result =
33  ,i_errMsg = _NONE_
34  ,r_casid = _NONE_
35  ,r_tstid = _NONE_
36  );
37 
38  %LOCAL l_errMsg;
39 
40  %IF (&r_casid=_NONE_) %THEN %DO;
41  %LOCAL l_casid;
42  %LET r_casid=l_casid;
43  %END;
44  %IF (&r_tstid=_NONE_) %THEN %DO;
45  %LOCAL l_tstid;
46  %LET r_tstid=l_tstid;
47  %END;
48 
49  %IF (&i_result. eq 0) %THEN %DO;
50  %LET l_errMsg =&i_type.: assert passed.;
51  %END;
52  %ELSE %IF (&i_result. eq 1) %THEN %DO;
53  %LET l_errMsg =&i_type.: assert passed, but manual check necessary.;
54  %END;
55  %ELSE %DO;
56  %IF (%nrbquote(&i_errMsg.) eq _NONE_) %THEN %DO;
57  %LET l_errMsg =%bquote(&i_type. failed: expected value equals &i_expected., but actual value equals &i_actual.);
58  %END;
59  %ELSE %DO;
60  %LET l_errMsg =%bquote(&i_type. failed: &i_errMsg.);
61  %END;
62  %END;
63 
64  %IF (&g_verbose.) %THEN %DO;
65  %IF (&i_result. NE 2) %THEN %DO;
66  %PUT &G_NOTE.(SASUNIT): &l_errMsg.;
67  %END;
68  %ELSE %DO;
69  %PUT &G_ERROR.(SASUNIT): &l_errMsg.;
70  %END;
71  %END;
72 
73  PROC SQL NOPRINT;
74  /* determine number of test case */
75  SELECT max(cas_id) INTO :&r_casid FROM target.cas WHERE cas_scnid=&g_scnid;
76  %IF &&&r_casid=. %THEN %DO;
77  %PUT &g_error.(SASUNIT): _asserts: Fehler beim Ermitteln der Testfall-Id;
78  %RETURN;
79  %END;
80  /* generate a new check number */
81  SELECT max(tst_id) INTO :&r_tstid
82  FROM target.tst
83  WHERE
84  tst_scnid = &g_scnid AND
85  tst_casid = &&&r_casid
86  ;
87  %IF &&&r_tstid=. %THEN %LET &r_tstid=1;
88  %ELSE %LET &r_tstid=%eval(&&&r_tstid+1);
89  INSERT INTO target.tst VALUES (
90  &g_scnid
91  ,&&&r_casid
92  ,&&&r_tstid
93  ,"&i_type"
94  ,%sysfunc(quote(&i_desc%str( )))
95  ,%sysfunc(quote(&i_expected%str( )))
96  ,%sysfunc(quote(&i_actual%str( )))
97  ,&i_result
98  ,"&l_errMsg"
99  );
100  QUIT;
101 
102  %PUT ========================== Check &&&r_casid...&&&r_tstid (&i_type) =====================================;
103 
104  %LET &r_casid = %sysfunc(putn(&&&r_casid,z3.));
105  %LET &r_tstid = %sysfunc(putn(&&&r_tstid,z3.));
106 
107 %MEND _asserts;