Macros for SAS Application Developers
https://github.com/sasjs/core
Loading...
Searching...
No Matches
mv_getfoldermembers.test.2.sas
Go to the documentation of this file.
1/**
2 @file
3 @brief Testing mv_getfoldermembers macro with nothing to list
4 @details A root with no members to return must still produce the documented
5 dataset, so a caller can read its columns and a later step is not left with
6 a dirty syscc. Two shapes are covered: a folder that exists and is empty
7 (the answer carries no items dataset) and a root whose answer carries no
8 members link at all.
9
10 <h4> SAS Macros </h4>
11 @li mf_existvar.sas
12 @li mp_assert.sas
13 @li mp_assertdsobs.sas
14 @li mp_assertscope.sas
15 @li mv_createfolder.sas
16 @li mv_createjob.sas
17 @li mv_getfoldermembers.sas
18
19**/
20
21%let folder=&mcTestAppLoc/foldermembers;
22%let job=amember;
23
24%mv_createfolder(path=&folder)
25
26/* an empty folder - the members answer carries no member columns */
27%mp_assertscope(SNAPSHOT)
28%mv_getfoldermembers(root=&folder, outds=work.emptylist)
29%mp_assertscope(COMPARE,
30 desc=mv_getfoldermembers does not leak scope on an empty folder,
31 ignorelist=MC0_JADP1LEN MC0_JADP2LEN MC0_JADP3LEN MC0_JADPNUM MC0_JADVLEN
32 MC2_JADP1LEN MC2_JADP2LEN MC2_JADP3LEN MC2_JADPNUM MC2_JADVLEN,
33 outds=work.test_results
34)
35
36%mp_assertdsobs(work.emptylist,
37 desc=Check the empty folder returns no rows,
38 test=EMPTY,
39 outds=work.test_results
40)
41
42%let emptycols=%mf_existvar(work.emptylist,createdBy);
43%mp_assert(
44 iftrue=(&emptycols>0),
45 desc=Check the empty listing carries the documented createdBy column
46)
47
48/* a member path is not a folder, so its answer carries no members link */
49filename ft15f001 temp;
50data _null_;
51 file ft15f001;
52 put 'data _null_; run;';
53run;
54%mv_createjob(path=&folder, name=&job)
55
56%mp_assertscope(SNAPSHOT)
57%mv_getfoldermembers(root=&folder/&job, outds=work.nolink)
58%mp_assertscope(COMPARE,
59 desc=mv_getfoldermembers does not leak scope without a members link,
60 ignorelist=MC0_JADP1LEN MC0_JADP2LEN MC0_JADP3LEN MC0_JADPNUM MC0_JADVLEN,
61 outds=work.test_results
62)
63
64%mp_assertdsobs(work.nolink,
65 desc=Check a root without a members link returns no rows,
66 test=EMPTY,
67 outds=work.test_results
68)
69
70%let nolinkcols=%mf_existvar(work.nolink,added);
71%mp_assert(
72 iftrue=(&nolinkcols>0),
73 desc=Check the no-link listing carries the documented added column
74)
75
76%let sysccatend=&syscc;
77%mp_assert(
78 iftrue=(&sysccatend=0),
79 desc=Check the empty paths leave syscc clean
80)