assertlogmsg.sas

Go to the documentation of this file.
00001  
00026 /* change log
00027    26.09.2008 AM  bug fixing NLS: standard description text
00028    21.08.2008 AM  moved language dependent text to reportDetailHTML
00029    30.06.2008 AM  kleine Dokumentationsänderung
00030    07.02.2008 AM  doppelte Hochkammata wieder entfernt, Quoting wird jetzt in 
00031                   %_sasunit_asserts erledigt, Doku zu Sonderzeichen in Strings ergänzt
00032    15.12.2007 AM  doppelte Hochkommata in l_expected ergänzt.
00033 */ 
00034 
00035 %MACRO assertLogMsg (
00036     i_logmsg   =       
00037    ,i_desc     =   
00038    ,i_not      = 0
00039 );
00040 
00041 %GLOBAL g_inTestcase;
00042 %IF &g_inTestcase EQ 1 %THEN %DO;
00043    %endTestcall;
00044 %END;
00045 %ELSE %IF &g_inTestcase NE 2 %THEN %DO;
00046    %PUT &g_error: assert must be called after initTestcase;
00047    %RETURN;
00048 %END;
00049 
00050 PROC SQL NOPRINT;
00051 %LOCAL l_casid;
00052 /* determine number of the current test case */
00053    SELECT max(cas_id) INTO :l_casid FROM target.cas WHERE cas_scnid = &g_scnid;
00054 QUIT;
00055 
00056 %IF &l_casid = . OR &l_casid = %THEN %DO;
00057    %PUT &g_error: assert must not be called before initTestcase;
00058    %RETURN;
00059 %END;
00060 
00061 /* scanne den Log */
00062 %LOCAL l_msg_found; %LET l_msg_found=0;
00063 DATA _null_;
00064    RETAIN pattern_id;
00065    IF _n_=1 THEN DO;
00066       pattern_id = prxparse("/%upcase(&i_logmsg)/");
00067    END;
00068    INFILE "&g_log/%sysfunc(putn(&g_scnid,z3.))_%sysfunc(putn(&l_casid,z3.)).log" END=eof TRUNCOVER;
00069    INPUT logrec $char256.;
00070    logrec = upcase(logrec);
00071    IF prxmatch (pattern_id, logrec) THEN DO;
00072       call symput ('l_msg_found', '1');
00073    END;
00074 RUN;
00075 
00076 %LOCAL l_actual;
00077 %IF &l_msg_found %THEN %DO;
00078    %LET l_actual = 1; /* message found */
00079 %END;
00080 %ELSE %DO;
00081    %LET l_actual = 2; /* message not found */
00082 %END;
00083 
00084 %LOCAL l_expected l_assert_failed;
00085 %IF &i_not %THEN %DO;
00086    %LET l_expected = 2&i_logmsg; /* message not present */
00087    %LET l_assert_failed = &l_msg_found;
00088 %END;
00089 %ELSE %DO;
00090    %LET l_expected = 1&i_logmsg; /* message present */
00091    %LET l_assert_failed = %eval(NOT &l_msg_found);
00092 %END;
00093 
00094 %_sasunit_asserts(
00095     i_type     = assertLogMsg
00096    ,i_expected = %str(&l_expected)
00097    ,i_actual   = %str(&l_actual)
00098    ,i_desc     = &i_desc
00099    ,i_result   = &l_assert_failed
00100 )
00101 
00102 %MEND assertLogMsg;

Generated on Sun Oct 10 14:10:15 2010 for SASUnit Examples by  doxygen 1.5.3