+# passwd file entry for Linux systems, maybe others. UID is correct
+# for Debian as well.
+good_passwd_entry="${amanda_user}:x:${mock_deb_uid}:6::${AMANDAHOMEDIR}:/bin/bash"
+export good_passwd_entry
+test_create_user() {
+ logger "test_create_user"
+ if [ ! "$IAmRoot" ]; then
+ startSkipping
+ echo "test_create_user: Creating mock passwd file."
+ echo "$good_passwd_entry" > ${SYSCONFDIR}/passwd
+ echo "test_create_user: tests skipped."
+ #TODO: mock useradd.
+ return
+ fi
+ # Case 1: create_user should succeed.
+ create_user
+ assertEquals "create_user()" 0 $?
+}
+
+test_add_group_check_parameters_logs() {
+ rm -f ${MOCKDIR}/groupadd_rc ${MOCKDIR}/num_groups
+ # Return codes are integers.
+ printf '%i' 0 > ${MOCKDIR}/groupadd_rc
+ # Test that first parameter is required.
+ add_group
+ assertEquals "add_group without a group should fail." 1 $?
+ LOG_TAIL=`tail -1 ${LOGFILE}|cut -d " " -f 5-`
+ assertEquals "add_group should write" \
+ "Error: first argument was not a group to add." \
+ "${LOG_TAIL}"
+}
+
+test_add_group_group_ok() {
+ # groupadd created group
+ printf '%i' 0 > ${MOCKDIR}/groupadd_rc
+ echo '${amanda_user} : prev_grp1' > ${MOCKDIR}/groups_output
+ add_group twinkle
+ assertEquals "add_group group ok" 0 $?
+ flags=`cat ${mock_usermod_flags}`
+ assertEquals "usermod_flags" \
+ "usermod args: -G prev_grp1,twinkle ${amanda_user}" \
+ "${flags}"
+
+ # Make sure supplemental groups are preserved when adding groups to an
+ # existing account
+ echo '${amanda_user} : prev_grp1 prev_grp2' > ${MOCKDIR}/groups_output
+ printf '%i' 1 > ${MOCKDIR}/num_groups
+ add_group twinkle
+ assertEquals "add_group group ok" 0 $?
+ flags=`cat ${mock_usermod_flags}`
+ assertEquals "usermod_flags should contain:" \
+ "usermod args: -G prev_grp1,prev_grp2,twinkle ${amanda_user}" \
+ "${flags}"
+}
+