SASUnit Examples  Version 1.2
assertreport.sas
Go to the documentation of this file.
1 
32 /* change history
33  29.01.2013 KL changed link from _sasunit_doc.sas to Sourceforge SASUnit User's Guide
34  30.06.2008 AM - kleine Dokumentationsänderung
35  15.02.2008 AM - kleine Dokumentationsänderung
36  06.02.2008 AM - umbenannt nach assertReport
37  - Parameter i_manual hinzugefügt, um auch eine Reine Prüfung auf
38  existierendes File (mit grünem Symbol) durchführen zu können
39  - Prüfung auf neueres File hinzugefügt
40  Unterstrich vor den Dateinamen der kopierten Reports hinzugefügt,
41  damit auch SAS-Dateien korrekt gehandhabt werden
42 */
43 
44 %MACRO assertReport (
45  i_expected =
46  ,i_actual =
47  ,i_desc =
48  ,i_manual = 1
49 );
50 
51 /*-- enforce sequence of calls ----- -----------------------------------------*/
52 %GLOBAL g_inTestcase;
53 %IF &g_inTestcase EQ 1 %THEN %DO;
54  %endTestcall;
55 %END;
56 %ELSE %IF &g_inTestcase NE 2 %THEN %DO;
57  %PUT &g_error: assert must be called after initTestcase;
58  %RETURN;
59 %END;
60 
61 /*-- check for existence and check change date -------------------------------*/
62 %LOCAL l_rep_ext l_result;
63 %LET l_result=1;
64 %IF "&i_actual" NE "" %THEN %DO;
65  %local d_dir;
66  %_sasunit_tempFileName(d_dir)
67  %_sasunit_dir(i_path=&i_actual, o_out=&d_dir)
68 data _null_;
69  set &d_dir nobs=nobs;
70  if nobs ne 1 then stop;
71  if changed < dhms (today(), hour (input ("&systime",time5.)), minute (input ("&systime",time5.)), 0) then stop;
72  call symput ('l_result', '2');
73  stop;
74 run;
75 proc sql;
76  drop table &d_dir;
77 quit;
78  %IF %sysfunc(fileexist(&i_actual)) %THEN %LET l_rep_ext = %_sasunit_getExtension(&i_actual);
79 %END;
80 
81 %IF NOT &i_manual AND &l_result=2 %THEN %LET l_result=0;
82 
83 %LOCAL l_expected l_exp_ext;
84 %LET l_expected = %_sasunit_abspath(&g_refdata,&i_expected);
85 %IF "&l_expected" NE "" %THEN %DO;
86  %IF %sysfunc(fileexist(&l_expected)) %THEN %DO;
87  %LET l_exp_ext = %_sasunit_getExtension(&l_expected);
88  %END;
89 %END;
90 
91 %LOCAL l_casid l_tstid;
92 %_sasunit_asserts(
93  i_type = assertReport
94  ,i_expected = &l_exp_ext
95  ,i_actual = &l_rep_ext
96  ,i_desc = &i_desc
97  ,i_result = &l_result
98  ,r_casid = l_casid
99  ,r_tstid = l_tstid
100 )
101 
102 /* copy actual report if it exists */
103 %IF &l_rep_ext NE %THEN %DO;
104  %_sasunit_copyFile(&i_actual, &g_testout/_%substr(00&g_scnid,%length(&g_scnid))_&l_casid._&l_tstid._man_act&l_rep_ext);
105 %END;
106 
107 /* copy expected report if it exists */
108 %IF &l_exp_ext NE %THEN %DO;
109  %_sasunit_copyFile(&l_expected, &g_testout/_%substr(00&g_scnid,%length(&g_scnid))_&l_casid._&l_tstid._man_exp&l_exp_ext);
110 %END;
111 
112 %MEND assertReport;