Macros for SAS Application Developers
https://github.com/sasjs/core
Loading...
Searching...
No Matches
mv_getgroupmembers.test.sas
Go to the documentation of this file.
1/**
2 @file
3 @brief Testing mv_getgroupmembers macro
4 @details The populated and unknown-group paths have fixtures here. The third
5 path - a 200 whose items dataset carries no member columns, which is what an
6 empty group answers - has no fixture: an empty group is an estate fact
7 (creating one is refused with 403), so that branch is proven on a live
8 estate only, against a stock group that happens to have no members.
9
10 <h4> SAS Macros </h4>
11 @li mf_existvar.sas
12 @li mf_getuser.sas
13 @li mf_nobs.sas
14 @li mp_assert.sas
15 @li mp_assertdsobs.sas
16 @li mp_assertscope.sas
17 @li mv_getgroupmembers.sas
18 @li mv_getusergroups.sas
19
20**/
21
22/* the group is one the current user belongs to, so it is guaranteed to have
23 at least that member - an empty group makes the macro's data step fail */
24%mv_getusergroups(user=%mf_getuser(), outds=work.mygroups)
25data _null_;
26 set work.mygroups(obs=1);
27 call symputx('groupid',id,'l');
28run;
29
30%mp_assertscope(SNAPSHOT)
31%mv_getgroupmembers(group=&groupid, outds=work.groupmembers)
32%mp_assertscope(COMPARE,
33 desc=mv_getgroupmembers does not leak scope,
34 ignorelist=MC0_JADVLEN,
35 outds=work.test_results
36)
37
38%mp_assert(
39 iftrue=(%sysfunc(exist(work.groupmembers))=1),
40 desc=Check the group members dataset was created
41)
42%mp_assert(
43 iftrue=(%mf_nobs(work.groupmembers)>0),
44 desc=Check the group has at least one member
45)
46%mp_assert(
47 iftrue=(%mf_existvar(work.groupmembers,id)>0),
48 desc=Check the dataset carries an id column
49)
50%mp_assert(
51 iftrue=(%mf_existvar(work.groupmembers,name)>0),
52 desc=Check the dataset carries a name column
53)
54%mp_assert(
55 iftrue=(%mf_existvar(work.groupmembers,providerId)>0),
56 desc=Check the dataset carries a providerId column
57)
58%mp_assert(
59 iftrue=(%mf_existvar(work.groupmembers,implicit)>0),
60 desc=Check the dataset carries an implicit column
61)
62%mp_assert(
63 iftrue=(%mf_existvar(work.groupmembers,type)>0),
64 desc=Check the dataset carries a type column
65)
66
67/* a group id the server does not know - the macro answers with the documented
68 columns and zero rows rather than one all-missing observation */
69%mp_assertscope(SNAPSHOT)
70%mv_getgroupmembers(group=no_such_group_sasjs_core, outds=work.unknown)
71%mp_assertscope(COMPARE,
72 desc=mv_getgroupmembers does not leak scope on an unknown group,
73 ignorelist=MC0_JADP1LEN MC0_JADP2LEN MC0_JADP3LEN MC0_JADPNUM MC0_JADVLEN,
74 outds=work.test_results
75)
76%mp_assertdsobs(work.unknown,
77 desc=Check an unknown group returns no rows,
78 test=EMPTY,
79 outds=work.test_results
80)
81%mp_assert(
82 iftrue=(%mf_existvar(work.unknown,providerId)>0),
83 desc=Check the unknown-group listing carries a providerId column
84)
85%mp_assert(
86 iftrue=(%mf_existvar(work.unknown,type)>0),
87 desc=Check the unknown-group listing carries a type column
88)