#!/usr/bin/perl -w
# This script (sophomorix-test-3) is maintained by Rüdiger Beck
# It is Free Software (License GPLv3)
# If you find errors, contact the author
# jeffbeck@web.de  or  jeffbeck@linuxmuster.net

# modules
use strict;
use Getopt::Long;
Getopt::Long::Configure ("bundling");
use Sophomorix::SophomorixBase qw(
                                 print_line
                                 print_title
                                 check_options
                                 get_passwd_charlist
                                 get_plain_password
                                 );
use Sophomorix::SophomorixSambaAD qw(
                                 AD_school_create
                                 AD_bind_admin
                                 AD_unbind_admin
                                 AD_user_create
                                 AD_group_create
                                 AD_group_addmember
                                 AD_user_kill
                                 AD_dns_get
                                 AD_object_search
                                 AD_debug_logdump
                                 AD_get_name_tokened
                                    );
use Sophomorix::SophomorixTest qw(
                                 AD_object_nonexist
                                 AD_test_object
                                 run_command
                                 directory_tree_test
                                 start_fs_test
                                 end_fs_test
                                 );

$Conf::log_level=1;
my $help=0;
my $full=0;
my $add_pro=0;
my $test_add_pro=0;
my $exit=0;
my $mod_pro=0;
my $test_mod_pro=0;

my $kill_pro=0;
my $test_kill_pro=0;

my $all_options="";
my $json=0;
my $ntacl=1;
my $nontacl=0;

my %fs_test_result=();

my $testopt=GetOptions(
           "help|h" => \$help,
           "full|f" => \$full,
           "verbose|v+" => \$Conf::log_level,
           "json|j+" => \$json,
           "nontacl|n" => \$nontacl,
           "add-pro" => \$add_pro,
           "test-add-pro" => \$test_add_pro,
           "mod-pro" => \$mod_pro,
           "exit" => \$exit,
           "test-mod-pro" => \$test_mod_pro,
           "kill-pro" => \$kill_pro,
           "test-kill-pro" => \$test_kill_pro,
  );


# Prüfen, ob Optionen erkannt wurden, sonst Abbruch
&check_options($testopt);

if ($nontacl==1){
    $ntacl=0;
}

if ($Conf::log_level==1){
    $all_options="";
} elsif ($Conf::log_level==2){
    $all_options="-v";
} elsif ($Conf::log_level==3){
    $all_options="-vv";
}

if ($json==0){
    # nothing to do
} elsif ($json==1){
    $all_options=$all_options." -j";
} elsif ($json==2){
    $all_options=$all_options." -jj";
} elsif ($json==3){
    $all_options=$all_options." -jjj";
} 

my ($ldap,$root_dse) = &AD_bind_admin();
my $root_dns=&AD_dns_get($root_dse);

my $testdata="/usr/share/sophomorix-developer/testdata";

# --help
if ($help==1) {
   # Scriptname ermitteln
   my @list = split(/\//,$0);
   my $scriptname = pop @list;
   # Befehlsbeschreibung
   print('
sophomorix-test-3 tests the addition and modifications of projects as well as
  Quota amd MailQuota.

Options
  -h  / --help

  Projects:
  sophomorix-test-3 --add-pro  
    add some projects
  sophomorix-test-3 --test-add-pro
    test the added projects

  sophomorix-test-3 --mod-pro
    modify added projects
  (interrupt with --exit, when users are added, quota set, ...)
  sophomorix-test-3 --test-mod-pro
    test modified projects (nothing to do here)

  sophomorix-test-3 --kill-pro
    kill all added projects
  sophomorix-test-3 --test-kill-pro
    test killed projects

');
   print "\n";
   exit;
}





############################################################
# Check preliminaries
############################################################

# --full
if ($full==1){
    $add_pro=1;
    $mod_pro=1;
    $kill_pro=1;
    $test_add_pro=1;
    $test_mod_pro=1;
    $test_kill_pro=1;
}

my $file_add_test=$testdata."/sophomorix.add-30";
my $file_add="/var/lib/sophomorix/check-result/sophomorix.add";
my $file_kill="/var/lib/sophomorix/check-result/sophomorix.kill";
my $file_kill_test=$testdata."/sophomorix.kill-30";


############################################################
# Add projects
############################################################
# --add-pro  
if ($add_pro==1){
    # adding users
    &run_command("cp -v $file_add_test $file_add");
    &run_command("sophomorix-add $all_options");

    # projects in OU=bsz
    &run_command("sophomorix-project $all_options --create -p mathe23 --school bsz");
    &run_command("sophomorix-project $all_options --create -p Chemie-AG23 --school bsz --description 'Chemie AG des Gymnasiums' --addquota \"bsz:333:Chemie Datenbank,linuxmuster-global:444\" --addmailquota 210 --mailalias --maillist --status G --join --nohide --maxmembers 36 --admins oe23,wu23 --members maiersa23,muellegr23 --membergroups bsz-m7ab,bsz-m8cd --admingroups uni-teachers");
    # projects in OU=default-school
    &run_command("sophomorix-project $all_options --create -p mathe23");
    &run_command("sophomorix-project $all_options --create -p Chemie-AG23");

    # groups in OU=bsz
    &run_command("sophomorix-group $all_options --create --group super6 --school bsz");
    &run_command("sophomorix-group $all_options --create --group super7 --school bsz");
    # groups in OU=default-school
    &run_command("sophomorix-group $all_options --create --group super12");
    &run_command("sophomorix-group $all_options --create --group super13");

    # setting Mailquota now
    &run_command("sophomorix-quota $all_options --set-mailquota-only");
}

############################################################
# Test added projects
############################################################
# --test-add-pro  
if ($test_add_pro==1){
    ##### Testing the users
    # maiersa23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=maiersa23,OU=m7ab,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Sarina Maier",
                   givenName=>"Sarina",
                   name=>"maiersa23",
                   sAMAccountname=>"maiersa23",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\students\\m7ab\\maiersa23",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/students/m7ab/maiersa23",
                   sn=>"Maier",
                   userPrincipalName => "maiersa23@".$root_dns,
                   mail => "maiersa23@"."student.bsz.de",
                   sophomorixAdminClass => "bsz-m7ab",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster!",
                   sophomorixFirstnameASCII => "Sarina",
                   sophomorixSurnameASCII  => "Maier",
                   sophomorixRole => "student",
                   sophomorixQuota=>"bsz:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"362",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid1234",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|bsz-m7ab|p_bsz-Chemie-AG23|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });
    ##### Testing the users class
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-m7ab,OU=m7ab,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-m7ab",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   description=>"bsz-m7ab",
                   sophomorixType=>"adminclass",
                   mail => "bsz-m7ab@"."adminclass.net",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"bsz:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "bsz-students|p_bsz-Chemie-AG23",
                  });
    ##### Testing the users ou-students group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-students,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-students",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   description=>"LMN Group, change if you like",
                   sophomorixType=>"ouclass",
                   mail => "bsz-students@".$root_dns,
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "s_bsz|all-students",
                  });


    # muellegr23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=muellegr23,OU=m7ab,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Gregor Müller",
                   givenName=>"Gregor",
                   name=>"muellegr23",
                   sAMAccountname=>"muellegr23",

                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\students\\m7ab\\muellegr23",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/students/m7ab/muellegr23",
                   sn=>"Müller",
                   userPrincipalName => "muellegr23@".$root_dns,
                   mail => "muellegr23@"."student.bsz.de",
                   sophomorixAdminClass => "bsz-m7ab",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster23!",
                   sophomorixFirstnameASCII => "Gregor",
                   sophomorixSurnameASCII  => "Mueller",
                   sophomorixRole => "student",
                   sophomorixQuota=>"bsz:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"362",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid2345",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|bsz-m7ab|p_bsz-Chemie-AG23|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });
    ##### Testing the users class
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-m7ab,OU=m7ab,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-m7ab",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"adminclass",
                   mail => "bsz-m7ab@"."adminclass.net",
                   description=>"bsz-m7ab",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"bsz:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "bsz-students|p_bsz-Chemie-AG23",
                  });
    ##### Testing the users ou-students group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-students,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-students",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"ouclass",
                   mail => "bsz-students@".$root_dns,
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "s_bsz|all-students",
                  });


    # jonsonad23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=jonsonad23,OU=m8cd,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Aðalráður Jónsson",
                   givenName=>"Aðalráður",
                   name=>"jonsonad23",
                   sAMAccountname=>"jonsonad23",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\students\\m8cd\\jonsonad23",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/students/m8cd/jonsonad23",
                   sn=>"Jónsson",
                   userPrincipalName => "jonsonad23@".$root_dns,
                   mail => "jonsonad23@"."student.bsz.de",
                   sophomorixAdminClass => "bsz-m8cd",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster23!",
                   sophomorixFirstnameASCII => "Adalradur",
                   sophomorixSurnameASCII  => "Jonsson",
                   sophomorixRole => "student",
                   sophomorixQuota=>"bsz:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"362",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid3456",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|bsz-m8cd|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });
    ##### Testing the users class
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-m8cd,OU=m8cd,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-m8cd",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   description=>"bsz-m8cd",
                   sophomorixType=>"adminclass",
                   mail => "bsz-m8cd@"."adminclass.net",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"bsz:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "bsz-students|p_bsz-Chemie-AG23",
                  });
    ##### Testing the users ou-students group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-students,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-students",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"ouclass",
                   mail => "bsz-students@".$root_dns,
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "s_bsz|all-students",
                  });


    # samardze23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=samardze23,OU=m8cd,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Željko Samardžić",
                   givenName=>"Željko",
                   name=>"samardze23",
                   sAMAccountname=>"samardze23",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\students\\m8cd\\samardze23",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/students/m8cd/samardze23",
                   sn=>"Samardžić",
                   userPrincipalName => "samardze23@".$root_dns,
                   mail => "samardze23@"."student.bsz.de",
                   sophomorixAdminClass => "bsz-m8cd",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster!",
                   sophomorixFirstnameASCII => "Zeljko",
                   sophomorixSurnameASCII  => "Samardzic",
                   sophomorixRole => "student",
                   sophomorixQuota=>"bsz:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"362",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid4567",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|bsz-m8cd|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });
    ##### Testing the users class
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-m8cd,OU=m8cd,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-m8cd",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"adminclass",
                   mail => "bsz-m8cd@"."adminclass.net",
                   description=>"bsz-m8cd",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"bsz:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "bsz-students|p_bsz-Chemie-AG23",
                  });
    ##### Testing the users ou-students group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-students,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-students",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"ouclass",
                   mail => "bsz-students@".$root_dns,
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "s_bsz|all-students",
                  });


    # oe23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=oe23,OU=Teachers,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Gökhan Ömür",
                   givenName=>"Gökhan",
                   name=>"oe23",
                   sAMAccountname=>"oe23",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\teachers\\oe23",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/teachers/oe23",
                   sn=>"Ömür",
                   userPrincipalName => "oe23@".$root_dns,
                   mail => "oe23@"."teacher.bsz.de",
                   sophomorixAdminClass => "bsz-teachers",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "LinuxMuster23!",
                   sophomorixFirstnameASCII => "Goekhan",
                   sophomorixSurnameASCII  => "Oemuer",
                   sophomorixRole => "teacher",
                   sophomorixQuota=>"bsz:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"512",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.teachers.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid5678",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-teacher|bsz-teachers|p_bsz-Chemie-AG23|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });
    ##### Testing the users ou-teachers group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-teachers,OU=Teachers,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-teachers",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"teacherclass",
                   mail => "bsz-teachers@"."teacherclass.net",
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"bsz:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "s_bsz|all-teachers",
                  });


    # wu23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=wu23,OU=Teachers,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Désirée Würth",
                   givenName=>"Désirée",
                   name=>"wu23",
                   sAMAccountname=>"wu23",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\teachers\\wu23",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/teachers/wu23",
                   sn=>"Würth",
                   userPrincipalName => "wu23@".$root_dns,
                   mail => "wu23@"."teacher.bsz.de",
                   sophomorixAdminClass => "bsz-teachers",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "LinuxMuster!",
                   sophomorixFirstnameASCII => "Desiree",
                   sophomorixSurnameASCII  => "Wuerth",
                   sophomorixRole => "teacher",
                   sophomorixQuota=>"bsz:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"512",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.teachers.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid6789",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-teacher|bsz-teachers|p_bsz-Chemie-AG23|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });
    ##### Testing the users ou-teachers group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-teachers,OU=Teachers,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-teachers",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"teacherclass",
                   mail => "bsz-teachers@"."teacherclass.net",
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"bsz:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "s_bsz|all-teachers",
                  });


    # blackmri23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=blackmri23,OU=12abc,OU=Students,OU=uni,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Richard Blackmore",
                   givenName=>"Richard",
                   name=>"blackmri23",
                   sAMAccountname=>"blackmri23",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\uni\\students\\12abc\\blackmri23",
                   unixHomeDirectory=>"/srv/samba/schools/uni/students/12abc/blackmri23",
                   sn=>"Blackmore",
                   userPrincipalName => "blackmri23@".$root_dns,
                   mail => "blackmri23@".$root_dns,
                   sophomorixAdminClass => "uni-12abc",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster!",
                   sophomorixFirstnameASCII => "Richard",
                   sophomorixSurnameASCII  => "Blackmore",
                   sophomorixRole => "student",
                   sophomorixQuota=>"uni:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"158",
                   sophomorixSchoolPrefix => "uni",
                   sophomorixSchoolname => "uni",
                   sophomorixAdminFile => "uni.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unidb1234",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|uni-12abc|uni-wifi|uni-internet|uni-webfilter|uni-intranet|uni-printing",
                  });
    ##### Testing the users class
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=uni-12abc,OU=12abc,OU=Students,OU=uni,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"uni-12abc",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"adminclass",
                   mail => "uni-12abc@".$root_dns,
                   description=>"uni-12abc",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"uni:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "uni",
                   memberOf => "uni-students",
                  });
    ##### Testing the users ou-students group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=uni-students,OU=Students,OU=uni,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"uni-students",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"ouclass",
                   mail => "uni-students@".$root_dns,
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "uni",
                   memberOf => "s_uni|all-students",
                  });


    # lordjo23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=lordjo23,OU=12abc,OU=Students,OU=uni,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Jon Lord",
                   givenName=>"Jon",
                   name=>"lordjo23",
                   sAMAccountname=>"lordjo23",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\uni\\students\\12abc\\lordjo23",
                   unixHomeDirectory=>"/srv/samba/schools/uni/students/12abc/lordjo23",
                   sn=>"Lord",
                   userPrincipalName => "lordjo23@".$root_dns,
                   mail => "lordjo23@".$root_dns,
                   sophomorixAdminClass => "uni-12abc",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster23!",
                   sophomorixFirstnameASCII => "Jon",
                   sophomorixSurnameASCII  => "Lord",
                   sophomorixRole => "student",
                   sophomorixQuota=>"uni:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"158",
                   sophomorixSchoolPrefix => "uni",
                   sophomorixSchoolname => "uni",
                   sophomorixAdminFile => "uni.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unidb2345",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|uni-12abc|uni-wifi|uni-internet|uni-webfilter|uni-intranet|uni-printing",
                  });
    ##### Testing the users class
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=uni-12abc,OU=12abc,OU=Students,OU=uni,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"uni-12abc",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"adminclass",
                   mail => "uni-12abc@".$root_dns,
                   description=>"uni-12abc",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"uni:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "uni",
                   memberOf => "uni-students",
                  });
    ##### Testing the users ou-students group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=uni-students,OU=Students,OU=uni,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"uni-students",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"ouclass",
                   mail => "uni-students@".$root_dns,
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "uni",
                   memberOf => "s_uni|all-students",
                  });


    # kep23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=kep23,OU=Teachers,OU=uni,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Johannes Kepler",
                   givenName=>"Johannes",
                   name=>"kep23",
                   sAMAccountname=>"kep23",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\uni\\teachers\\kep23",
                   unixHomeDirectory=>"/srv/samba/schools/uni/teachers/kep23",
                   sn=>"Kepler",
                   userPrincipalName => "kep23@".$root_dns,
                   mail => "kep23@".$root_dns,
                   sophomorixAdminClass => "uni-teachers",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "LinuxMuster23!",
                   sophomorixFirstnameASCII => "Johannes",
                   sophomorixSurnameASCII  => "Kepler",
                   sophomorixRole => "teacher",
                   sophomorixQuota=>"uni:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"518",
                   sophomorixSchoolPrefix => "uni",
                   sophomorixSchoolname => "uni",
                   sophomorixAdminFile => "uni.teachers.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unidb5678",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-teacher|uni-teachers|uni-wifi|uni-internet|uni-webfilter|uni-intranet|uni-printing",
                  });
    ##### Testing the users ou-teachers group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=uni-teachers,OU=Teachers,OU=uni,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"uni-teachers",
                  sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"teacherclass",
                   mail => "uni-teachers@".$root_dns,
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"uni:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "uni",
                   memberOf => "s_uni|all-teachers|p_bsz-Chemie-AG23",
                  });


    # gal23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=gal23,OU=Teachers,OU=uni,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Galileo Galilei",
                   givenName=>"Galileo",
                   name=>"gal23",
                   sAMAccountname=>"gal23",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\uni\\teachers\\gal23",
                   unixHomeDirectory=>"/srv/samba/schools/uni/teachers/gal23",
                   sn=>"Galilei",
                   userPrincipalName => "gal23@".$root_dns,
                   mail => "gal23@".$root_dns,
                   sophomorixAdminClass => "uni-teachers",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "LinuxMuster!",
                   sophomorixFirstnameASCII => "Galileo",
                   sophomorixSurnameASCII  => "Galilei",
                   sophomorixRole => "teacher",
                   sophomorixQuota=>"uni:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"518",
                   sophomorixSchoolPrefix => "uni",
                   sophomorixSchoolname => "uni",
                   sophomorixAdminFile => "uni.teachers.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unidb6789",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-teacher|uni-teachers|uni-wifi|uni-internet|uni-webfilter|uni-intranet|uni-printing",
                  });
    ##### Testing the users ou-teachers group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=uni-teachers,OU=Teachers,OU=uni,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"uni-teachers",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"teacherclass",
                   mail => "uni-teachers@".$root_dns,
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"uni:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "uni",
                   memberOf => "s_uni|all-teachers|p_bsz-Chemie-AG23",
                  });
    # schneima23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=schneima23,OU=s6ade,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Marina Schneider",
                   givenName=>"Marina",
                   name=>"schneima23",
                   sAMAccountname=>"schneima23",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\default-school\\students\\s6ade\\schneima23",
                   unixHomeDirectory=>"/srv/samba/schools/default-school/students/s6ade/schneima23",
                   sn=>"Schneider",
                   userPrincipalName => "schneima23@".$root_dns,
                   mail => "schneima23@".$root_dns,
                   sophomorixAdminClass => "s6ade",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster!",
                   sophomorixFirstnameASCII => "Marina",
                   sophomorixSurnameASCII  => "Schneider",
                   sophomorixRole => "student",
                   sophomorixQuota=>"default-school:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"156",
                   sophomorixSchoolPrefix => "---",
                   sophomorixSchoolname => "default-school",
                   sophomorixAdminFile => "students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid12345",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|s6ade|wifi|internet|webfilter|intranet|printing",
                  });
    ##### Testing the users class
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=s6ade,OU=s6ade,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"s6ade",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"adminclass",
                   mail => "s6ade@".$root_dns,
                   description=>"s6ade",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   memberOf => "students",
                  });
    ##### Testing the users ou-students group    ##### Testing the users ou-students group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=students,OU=Students,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"students",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"ouclass",
                   mail => "students@".$root_dns,
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   memberOf => "s_default-school|all-students",
                  });
    # sch23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=sch23,OU=Teachers,OU=default-school,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Michael Schäfer",
                   givenName=>"Michael",
                   name=>"sch23",
                   sAMAccountname=>"sch23",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\default-school\\teachers\\sch23",
                   unixHomeDirectory=>"/srv/samba/schools/default-school/teachers/sch23",
                   sn=>"Schäfer",
                   userPrincipalName => "sch23@".$root_dns,
                   mail => "sch23@".$root_dns,
                   sophomorixAdminClass => "teachers",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "LinuxMuster!",
                   sophomorixFirstnameASCII => "Michael",
                   sophomorixSurnameASCII  => "Schaefer",
                   sophomorixRole => "teacher",
                   sophomorixQuota=>"default-school:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"306",
                   sophomorixSchoolPrefix => "---",
                   sophomorixSchoolname => "default-school",
                   sophomorixAdminFile => "teachers.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid123456",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-teacher|teachers|wifi|internet|webfilter|intranet|printing",
                  });
    ##### Testing the users ou-teachers group
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=teachers,OU=Teachers,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"teachers",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   memberOf => "s_default-school|all-teachers",
                  });

    ##### Testing the all groups
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=all-internet,OU=Management,OU=GLOBAL,".$root_dse,
                   sAMAccountname=>"all-internet",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"allinternetaccess",
                   mail => "all-internet@".$root_dns,
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "global",
                   memberOf => "",
                   member => "bsz-internet|uni-internet|internet",
                  });
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=all-wifi,OU=Management,OU=GLOBAL,".$root_dse,
                   sAMAccountname=>"all-wifi",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"allwifiaccess",
                   mail => "all-wifi@".$root_dns,
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "global",
                   memberOf => "",
                   member => "bsz-wifi|uni-wifi|wifi",
                  });
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=all-admins,OU=Management,OU=GLOBAL,".$root_dse,
                   sAMAccountname=>"all-admins",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"alladmins",
                   mail => "all-admins@".$root_dns,
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "global",
                   memberOf => "",
                   member => "bsz-admins|uni-admins|admins",
                  });
    # &AD_test_object({ldap=>$ldap,
    #                dn=>"CN=all-examaccounts,OU=ExamAccounts,OU=GLOBAL,".$root_dse,
    #                sAMAccountname=>"all-examaccounts",
    #                sophomorixCreationDate => "exists",
    #                sophomorixStatus=>"P",
    #                sophomorixType=>"globalmanagementgroup",
    #               mail => "all-examaccounts@".$root_dns,
    #               description=>"bsz-m7ab",
    #               sophomorixAddQuota=>"---",
    #               sophomorixAddMailQuota=>"---",
    #               sophomorixQuota=>"bsz:---:---:|linuxmuster-global:---:---:",
    #               sophomorixMailQuota=>"---:---:",
    #                sophomorixHidden=>"FALSE",
    #                sophomorixSchoolname => "global",
    #                memberOf => "",
    #                member => "bsz-examaccounts|uni-examaccounts|examaccounts,",
    #               });
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=all-webfilter,OU=Management,OU=GLOBAL,".$root_dse,
                   sAMAccountname=>"all-webfilter",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"allwebfilter",
                   mail => "all-webfilter@".$root_dns,
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "global",
                   memberOf => "",
                   member => "bsz-webfilter|uni-webfilter|webfilter",
                  });
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=all-intranet,OU=Management,OU=GLOBAL,".$root_dse,
                   sAMAccountname=>"all-intranet",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"allintranetaccess",
                   mail => "all-intranet@".$root_dns,
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "global",
                   memberOf => "",
                   member => "bsz-intranet|uni-intranet|intranet",
                  });
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=all-printing,OU=Management,OU=GLOBAL,".$root_dse,
                   sAMAccountname=>"all-printing",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"allprinting",
                   mail => "all-printing@".$root_dns,
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "global",
                   memberOf => "",
                   member => "bsz-printing|uni-printing|printing",
                  });
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=all-students,OU=Groups,OU=GLOBAL,".$root_dse,
                   sAMAccountname=>"all-students",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"allclass",
                   mail => "all-students@".$root_dns,
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "global",
                   memberOf => "",
                   member => "bsz-students|uni-students|students",
                  });
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=all-teachers,OU=Groups,OU=GLOBAL,".$root_dse,
                   sAMAccountname=>"all-teachers",
                   sophomorixCreationDate => "exists",
                   sophomorixStatus=>"P",
                   sophomorixType=>"allclass",
                   mail => "all-teachers@".$root_dns,
                   description=>"LMN Group, change if you like",
                   sophomorixAddQuota=>"---",
                   sophomorixAddMailQuota=>"---",
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "global",
                   memberOf => "",
                   member => "bsz-teachers|uni-teachers|teachers",
                  });


    # Projects
    # p_Chemie-AG23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_Chemie-AG23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_Chemie-AG23",
                   description=>"p_Chemie-AG23",
                   sophomorixType=>"project",
                   mail => "p_Chemie-AG23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   memberOf => "",
                  });
    # p_bsz-Chemie-AG23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_bsz-Chemie-AG23,OU=Projects,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_bsz-Chemie-AG23",
                   description=>"Chemie AG des Gymnasiums",
                   sophomorixType=>"project",
                   mail => "p_bsz-Chemie-AG23@"."project.net",
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"bsz:333:Chemie Datenbank:|linuxmuster-global:444:---:",
                   sophomorixAddMailQuota=>"210:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"G",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"36",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "oe23|wu23",
                   sophomorixMembers => "maiersa23|muellegr23",
                   sophomorixAdminGroups => "uni-teachers",
                   sophomorixMemberGroups => "bsz-m7ab|bsz-m8cd",
                   member => "oe23|wu23|maiersa23|muellegr23|uni-teachers|bsz-m7ab|bsz-m8cd",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "",
                  });
    # p_mathe23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"p_mathe23",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   memberOf => "",
                  });
    # p_bsz-mathe23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_bsz-mathe23,OU=Projects,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_bsz-mathe23",
                   description=>"p_bsz-mathe23",
                   sophomorixType=>"project",
                   mail => "p_bsz-mathe23@"."project.net",
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"bsz:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "",
                  });
    # groups
    # bsz-super6
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-super6,OU=Projects,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-super6",
                   description=>"Created by sophomorix-group",
                   sophomorixType=>"sophomorix-group",
                   mail => "bsz-super6@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"bsz:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "",
                  });
    # bsz-super7
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=bsz-super7,OU=Projects,OU=bsz,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"bsz-super7",
                   description=>"Created by sophomorix-group",
                   sophomorixType=>"sophomorix-group",
                   mail => "bsz-super7@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"bsz:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "bsz",
                   memberOf => "",
                  });
    # super12
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=super12,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"super12",
                   description=>"Created by sophomorix-group",
                   sophomorixType=>"sophomorix-group",
                   mail => "super12@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   memberOf => "",
                  });
    # super13
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=super13,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"super13",
                   description=>"Created by sophomorix-group",
                   sophomorixType=>"sophomorix-group",
                   mail => "super13@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   memberOf => "",
                  });

    ############################################################
    # fs test
    ############################################################
    &start_fs_test(\%fs_test_result); 
    &directory_tree_test("/srv/samba/schools",
                         \%fs_test_result,
                         "/srv/samba/schools",
                         "/srv/samba/schools/abc",
                         "/srv/samba/schools/lin",
                         "/srv/samba/schools/ghs",
                         "/srv/samba/schools/bsz",
                         "/srv/samba/schools/bsz/management",
                         "/srv/samba/schools/bsz/share",     
                         "/srv/samba/schools/bsz/iso",     
                         "/srv/samba/schools/bsz/program",     
                         "/srv/samba/schools/bsz/examusers",
                         "/srv/samba/schools/bsz/share/projects",
                         "/srv/samba/schools/bsz/share/projects/p_bsz-mathe23",
                         "/srv/samba/schools/bsz/share/projects/p_bsz-Chemie-AG23",
                         "/srv/samba/schools/bsz/students",
                         "/srv/samba/schools/bsz/teachers",
                         "/srv/samba/schools/bsz/share/teachers",                                      # ntacl
                         "/srv/samba/schools/bsz/share/classes",                                      # ntacl
                         "/srv/samba/schools/bsz/share/management",                                      # ntacl
                         "/srv/samba/schools/bsz/share/school",                                      # ntacl
                         "/srv/samba/schools/bsz/teachers/oe23",
                         "/srv/samba/schools/bsz/teachers/oe23/transfer",
#                         "/srv/samba/schools/bsz/teachers/oe23/_einsammeln",
                         "/srv/samba/schools/bsz/teachers/wu23",
                         "/srv/samba/schools/bsz/teachers/wu23/transfer",
#                         "/srv/samba/schools/bsz/teachers/wu23/_einsammeln",
                         "/srv/samba/schools/bsz/students/m7ab",
                         "/srv/samba/schools/bsz/share/classes/m7ab",
                         "/srv/samba/schools/bsz/students/m7ab/maiersa23",
                         "/srv/samba/schools/bsz/students/m7ab/maiersa23/transfer",
#                         "/srv/samba/schools/bsz/students/m7ab/maiersa23/_einsammeln",
                         "/srv/samba/schools/bsz/students/m7ab/muellegr23",
                         "/srv/samba/schools/bsz/students/m7ab/muellegr23/transfer",
#                         "/srv/samba/schools/bsz/students/m7ab/muellegr23/_einsammeln",
                         "/srv/samba/schools/bsz/students/m8cd",
                         "/srv/samba/schools/bsz/share/classes/m8cd",
                         "/srv/samba/schools/bsz/students/m8cd/jonsonad23",
                         "/srv/samba/schools/bsz/students/m8cd/jonsonad23/transfer",
#                         "/srv/samba/schools/bsz/students/m8cd/jonsonad23/_einsammeln",
                         "/srv/samba/schools/bsz/students/m8cd/samardze23",
                         "/srv/samba/schools/bsz/students/m8cd/samardze23/transfer",
#                         "/srv/samba/schools/bsz/students/m8cd/samardze23/_einsammeln",
                         "/srv/samba/schools/uni",
                         "/srv/samba/schools/uni/management",
                         "/srv/samba/schools/uni/examusers",
                         "/srv/samba/schools/uni/share",
                         "/srv/samba/schools/uni/iso",     
                         "/srv/samba/schools/uni/program",
                         "/srv/samba/schools/uni/share/projects",
                         "/srv/samba/schools/uni/students",
                         "/srv/samba/schools/uni/students/12abc",
                         "/srv/samba/schools/uni/share/classes/12abc",
                         "/srv/samba/schools/uni/students/12abc/lordjo23",
                         "/srv/samba/schools/uni/students/12abc/lordjo23/transfer",
#                         "/srv/samba/schools/uni/students/12abc/lordjo23/_einsammeln",
                         "/srv/samba/schools/uni/students/12abc/blackmri23",
                         "/srv/samba/schools/uni/students/12abc/blackmri23/transfer",
#                         "/srv/samba/schools/uni/students/12abc/blackmri23/_einsammeln",
                         "/srv/samba/schools/uni/teachers",
                         "/srv/samba/schools/uni/share/teachers",                                      # ntacl
                         "/srv/samba/schools/uni/share/classes",                                      # ntacl
                         "/srv/samba/schools/uni/share/management",                                      # ntacl
                         "/srv/samba/schools/uni/share/school",                                      # ntacl
                         "/srv/samba/schools/uni/teachers/kep23",
                         "/srv/samba/schools/uni/teachers/kep23/transfer",
#                         "/srv/samba/schools/uni/teachers/kep23/_einsammeln",
                         "/srv/samba/schools/uni/teachers/gal23",
                         "/srv/samba/schools/uni/teachers/gal23/transfer",
#                         "/srv/samba/schools/uni/teachers/gal23/_einsammeln",
                         "/srv/samba/schools/default-school",
                         "/srv/samba/schools/default-school/management",
                         "/srv/samba/schools/default-school/share",
                         "/srv/samba/schools/default-school/iso",     
                         "/srv/samba/schools/default-school/program",
                         "/srv/samba/schools/default-school/examusers",
                         "/srv/samba/schools/default-school/share/projects/p_mathe23",
                         "/srv/samba/schools/default-school/share/projects/p_Chemie-AG23",
                         "/srv/samba/schools/default-school/share/projects",
                         "/srv/samba/schools/default-school/students",
                         "/srv/samba/schools/default-school/students/s6ade",
                         "/srv/samba/schools/default-school/share/classes/s6ade",
                         "/srv/samba/schools/default-school/students/s6ade/schneima23",
                         "/srv/samba/schools/default-school/students/s6ade/schneima23/transfer",
#                         "/srv/samba/schools/default-school/students/s6ade/schneima23/_einsammeln",
                         "/srv/samba/schools/default-school/teachers",
                         "/srv/samba/schools/default-school/share/teachers",                                      # ntacl
                         "/srv/samba/schools/default-school/share/classes",                                      # ntacl
                         "/srv/samba/schools/default-school/share/management",                                      # ntacl
                         "/srv/samba/schools/default-school/share/school",                                      # ntacl
                         "/srv/samba/schools/default-school/teachers/sch23",
                         "/srv/samba/schools/default-school/teachers/sch23/transfer",
#                         "/srv/samba/schools/default-school/teachers/sch23/_einsammeln",
                        ); 
    &end_fs_test(\%fs_test_result);

    ############################################################
    # fs test
    ############################################################
    &start_fs_test(\%fs_test_result);
    &directory_tree_test("/srv/samba/global",
                         \%fs_test_result,
                         "/srv/samba/global",
                         "/srv/samba/global/management",
                         "/srv/samba/global/share",
                         "/srv/samba/global/program",
                         "/srv/samba/global/iso",
                         "/srv/samba/global/share/projects",            # ntacl
                         "/srv/samba/global/share/management",         # ntacl
                         "/srv/samba/global/share/global",         # ntacl
                         "/srv/samba/global/students",
                         "/srv/samba/global/teachers",
                        ); 
    &end_fs_test(\%fs_test_result);
}




############################################################
# Modify added projects
############################################################
# --mod-pro  
if ($mod_pro==1){

    # --description
    &run_command("sophomorix-project $all_options -p mathe23 --description 'Mathe23 Grundschule'");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "",
                  });
    # --addquota (1)
    &run_command("sophomorix-project $all_options -p mathe23 --addquota default-school:666,linuxmuster-global:777");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:666:---:|linuxmuster-global:777:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "",
                  });
    # --addquota (2)
    &run_command("sophomorix-project $all_options -p mathe23 --addquota default-school:222,linuxmuster-global:555,uni:999");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:222:---:|linuxmuster-global:555:---:|uni:999:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "",
                  });
    # --addquota (3)
    &run_command("sophomorix-project $all_options -p mathe23 --addquota default-school:---,linuxmuster-global:---");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:|uni:999:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "",
                  });
    # --addquota (4)
    &run_command("sophomorix-project $all_options -p mathe23 --addquota uni:---");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "",
                  });
    # --mailalias
    &run_command("sophomorix-project $all_options -p mathe23 --mailalias");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "",
                  });
    # --maillist
    &run_command("sophomorix-project $all_options -p mathe23 --maillist");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "",
                  });
    # --status
    &run_command("sophomorix-project $all_options -p mathe23 --status S");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "",
                  });
    # --join
    &run_command("sophomorix-project $all_options -p mathe23 --join");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "",
                  });
    # --hide
    &run_command("sophomorix-project $all_options -p mathe23 --hide");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "",
                  });
    # --maxmembers
    &run_command("sophomorix-project $all_options -p mathe23 --maxmembers 16");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "exists",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "",
                  });

    # --creationdate
    &run_command("sophomorix-project $all_options -p mathe23 --creationdate 19880529093330.0Z");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "",
                  });


    # --admins
    &run_command("sophomorix-project $all_options -p mathe23 --admins maiersa23,muellegr23");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23|muellegr23",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23",
                   memberOf => "",
                  });
    # --members
    &run_command("sophomorix-project $all_options -p mathe23 --members kep23,wu23");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23|muellegr23",
                   sophomorixMembers => "kep23|wu23",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|kep23|wu23",
                   memberOf => "",
                  });
    # --admingroups
    &run_command("sophomorix-project $all_options -p mathe23 --admingroups super12,bsz-super6");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23|muellegr23",
                   sophomorixMembers => "kep23|wu23",
                   sophomorixAdminGroups => "super12|bsz-super6",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|kep23|wu23|super12|bsz-super6",
                   memberOf => "",
                  });
    # --membergroups
    &run_command("sophomorix-project $all_options -p mathe23 --membergroups super13,bsz-super7");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23|muellegr23",
                   sophomorixMembers => "kep23|wu23",
                   sophomorixAdminGroups => "super12|bsz-super6",
                   sophomorixMemberGroups => "super13|bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|kep23|wu23|super12|bsz-super6|super13|bsz-super7",
                   memberOf => "",
                  });


    # --admins (2, delete)
    &run_command("sophomorix-project $all_options -p mathe23 --admins maiersa23");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23",
                   sophomorixMembers => "kep23|wu23",
                   sophomorixAdminGroups => "super12|bsz-super6",
                   sophomorixMemberGroups => "super13|bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|kep23|wu23|super12|bsz-super6|super13|bsz-super7",
                   memberOf => "",
                  });
    # --members (2, delete)
    &run_command("sophomorix-project $all_options -p mathe23 --members muellegr23");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23",
                   sophomorixMembers => "muellegr23",
                   sophomorixAdminGroups => "super12|bsz-super6",
                   sophomorixMemberGroups => "super13|bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|super12|bsz-super6|super13|bsz-super7",
                   memberOf => "",
                  });
    # --admingroups (2, delete)
    &run_command("sophomorix-project $all_options -p mathe23 --admingroups super12");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23",
                   sophomorixMembers => "muellegr23",
                   sophomorixAdminGroups => "super12",
                   sophomorixMemberGroups => "super13|bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|super12|super13|bsz-super7",
                   memberOf => "",
                  });
    # --membergroups (2, delete)
    &run_command("sophomorix-project $all_options -p mathe23 --membergroups bsz-super7");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23",
                   sophomorixMembers => "muellegr23",
                   sophomorixAdminGroups => "super12",
                   sophomorixMemberGroups => "bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|super12|bsz-super7",
                   memberOf => "",
                  });


    # --admins (3, nonexisting user)
    &run_command("sophomorix-project $all_options -p mathe23 --admins maiersa23,nonexuser1");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23",
                   sophomorixMembers => "muellegr23",
                   sophomorixAdminGroups => "super12",
                   sophomorixMemberGroups => "bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|super12|bsz-super7",
                   memberOf => "",
                  });
    # --members (3, nonexisting user)
    &run_command("sophomorix-project $all_options -p mathe23 --members muellegr23,nonexuser2");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23",
                   sophomorixMembers => "muellegr23",
                   sophomorixAdminGroups => "super12",
                   sophomorixMemberGroups => "bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|super12|bsz-super7",
                   memberOf => "",
                  });
    # --admingroups (3, nonexisting user)
    &run_command("sophomorix-project $all_options -p mathe23 --admingroups super12,nonexgroup1");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23",
                   sophomorixMembers => "muellegr23",
                   sophomorixAdminGroups => "super12",
                   sophomorixMemberGroups => "bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|super12|bsz-super7",
                   memberOf => "",
                  });
    # --membergroups (3, nonexisting user)
    &run_command("sophomorix-project $all_options -p mathe23 --membergroups bsz-super7,nonexgroup2");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23",
                   sophomorixMembers => "muellegr23",
                   sophomorixAdminGroups => "super12",
                   sophomorixMemberGroups => "bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|super12|bsz-super7",
                   memberOf => "",
                  });


    # --admins (4, group instead of user)
    &run_command("sophomorix-project $all_options -p mathe23 --admins maiersa23,bsz-super6");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23",
                   sophomorixMembers => "muellegr23",
                   sophomorixAdminGroups => "super12",
                   sophomorixMemberGroups => "bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|super12|bsz-super7",
                   memberOf => "",
                  });
    # --members (4, group instead of user)
    &run_command("sophomorix-project $all_options -p mathe23 --members muellegr23,super13");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23",
                   sophomorixMembers => "muellegr23",
                   sophomorixAdminGroups => "super12",
                   sophomorixMemberGroups => "bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|super12|bsz-super7",
                   memberOf => "",
                  });
    # --admingroups (4, user instead of group)
    &run_command("sophomorix-project $all_options -p mathe23 --admingroups kep23,super12");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23",
                   sophomorixMembers => "muellegr23",
                   sophomorixAdminGroups => "super12",
                   sophomorixMemberGroups => "bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|super12|bsz-super7",
                   memberOf => "",
                  });
    # --membergroups (4, user instead of group)
    &run_command("sophomorix-project $all_options -p mathe23 --membergroups wu23,bsz-super7");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23",
                   sophomorixMembers => "muellegr23",
                   sophomorixAdminGroups => "super12",
                   sophomorixMemberGroups => "bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|super12|bsz-super7",
                   memberOf => "",
                  });


    # --addadmins (1 adding to existing value)
    &run_command("sophomorix-project $all_options -p mathe23 --addadmins wu23,oe23");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23|wu23|oe23",
                   sophomorixMembers => "muellegr23",
                   sophomorixAdminGroups => "super12",
                   sophomorixMemberGroups => "bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "wu23|oe23|maiersa23|muellegr23|super12|bsz-super7",
                   memberOf => "",
                  });
    # --addmembers (1 adding to existing value)
    &run_command("sophomorix-project $all_options -p mathe23 --addmembers samardze23,schneima23");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23|wu23|oe23",
                   sophomorixMembers => "muellegr23|samardze23|schneima23",
                   sophomorixAdminGroups => "super12",
                   sophomorixMemberGroups => "bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "wu23|oe23|maiersa23|muellegr23|samardze23|schneima23|super12|bsz-super7",
                   memberOf => "",
                  });
    # --addadmingroups (1 adding to existing value)
    &run_command("sophomorix-project $all_options -p mathe23 --addadmingroups super13");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23|wu23|oe23",
                   sophomorixMembers => "muellegr23|samardze23|schneima23",
                   sophomorixAdminGroups => "super12|super13",
                   sophomorixMemberGroups => "bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "wu23|oe23|maiersa23|muellegr23|samardze23|schneima23|super12|super13|bsz-super7",
                   memberOf => "",
                  });
    # --addmembergroups (1 adding to existing value)
    &run_command("sophomorix-project $all_options -p mathe23 --addmembergroups bsz-super6");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23|wu23|oe23",
                   sophomorixMembers => "muellegr23|samardze23|schneima23",
                   sophomorixAdminGroups => "super12|super13",
                   sophomorixMemberGroups => "bsz-super6|bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "wu23|oe23|maiersa23|muellegr23|samardze23|schneima23|super12|super13|bsz-super6|bsz-super7",
                   memberOf => "",
                  });



    # testing mailquota with a lot of users members in project
    # --addmailquota (1) 
    &run_command("sophomorix-project $all_options -p mathe23 --addmailquota 366");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"366:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23|wu23|oe23",
                   sophomorixMembers => "muellegr23|samardze23|schneima23",
                   sophomorixAdminGroups => "super12|super13",
                   sophomorixMemberGroups => "bsz-super6|bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "wu23|oe23|maiersa23|muellegr23|samardze23|schneima23|super12|super13|bsz-super6|bsz-super7",
                   memberOf => "",
                  });



    # muellegr23 (unmodified)
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=muellegr23,OU=m7ab,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Gregor Müller",
                   givenName=>"Gregor",
                   name=>"muellegr23",
                   sAMAccountname=>"muellegr23",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\students\\m7ab\\muellegr23",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/students/m7ab/muellegr23",
                   sn=>"Müller",
                   userPrincipalName => "muellegr23@".$root_dns,
                   mail => "muellegr23@"."student.bsz.de",
                   sophomorixAdminClass => "bsz-m7ab",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster23!",
                   sophomorixFirstnameASCII => "Gregor",
                   sophomorixSurnameASCII  => "Mueller",
                   sophomorixRole => "student",
                   sophomorixQuota=>"bsz:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"362",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid2345",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|bsz-m7ab|p_mathe23|p_bsz-Chemie-AG23|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });

    # setting individual mailquota for muellegr23
    &run_command("sophomorix-user $all_options -u muellegr23 --mailquota 789:Teststring");
    &run_command("sophomorix-user $all_options -u jonsonad23 --mailquota \"456:Long Comment String\"");

    # setting class quota for uni-12abc
    &run_command("sophomorix-class $all_options -c uni-12abc --mailquota \"2222:Class with large extra mailquota\"");

    # setting Mailquota now
    &run_command("sophomorix-quota $all_options --set-mailquota-only");

    # exit if necessary
    if ($exit==1){
        print "\nExit by option --exit\n\n";
        exit;
    }

    # testing some users for sophomorixMailQuotaCaculated
    # maiersa23 SCHOOL: 152, noCLASS, +210(p_bsz-Chemie-AG23), +366(p_mathe) = 726
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=maiersa23,OU=m7ab,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Sarina Maier",
                   givenName=>"Sarina",
                   name=>"maiersa23",
                   sAMAccountname=>"maiersa23",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\students\\m7ab\\maiersa23",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/students/m7ab/maiersa23",
                   sn=>"Maier",
                   userPrincipalName => "maiersa23@".$root_dns,
                   mail => "maiersa23@"."student.bsz.de",
                   sophomorixAdminClass => "bsz-m7ab",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster!",
                   sophomorixFirstnameASCII => "Sarina",
                   sophomorixSurnameASCII  => "Maier",
                   sophomorixRole => "student",
                   sophomorixQuota=>"bsz:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"728",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid1234",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|bsz-m7ab|p_mathe23|p_bsz-Chemie-AG23|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });

    # muellegr23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=muellegr23,OU=m7ab,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Gregor Müller",
                   givenName=>"Gregor",
                   name=>"muellegr23",
                   sAMAccountname=>"muellegr23",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\students\\m7ab\\muellegr23",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/students/m7ab/muellegr23",
                   sn=>"Müller",
                   userPrincipalName => "muellegr23@".$root_dns,
                   mail => "muellegr23@"."student.bsz.de",
                   sophomorixAdminClass => "bsz-m7ab",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster23!",
                   sophomorixFirstnameASCII => "Gregor",
                   sophomorixSurnameASCII  => "Mueller",
                   sophomorixRole => "student",
                   sophomorixQuota=>"bsz:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"789:Teststring:",
                   sophomorixMailQuotaCalculated=>"789",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid2345",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|bsz-m7ab|p_mathe23|p_bsz-Chemie-AG23|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });

    # jonsonad23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=jonsonad23,OU=m8cd,OU=Students,OU=bsz,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Aðalráður Jónsson",
                   givenName=>"Aðalráður",
                   name=>"jonsonad23",
                   sAMAccountname=>"jonsonad23",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\bsz\\students\\m8cd\\jonsonad23",
                   unixHomeDirectory=>"/srv/samba/schools/bsz/students/m8cd/jonsonad23",
                   sn=>"Jónsson",
                   userPrincipalName => "jonsonad23@".$root_dns,
                   mail => "jonsonad23@"."student.bsz.de",
                   sophomorixAdminClass => "bsz-m8cd",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster23!",
                   sophomorixFirstnameASCII => "Adalradur",
                   sophomorixSurnameASCII  => "Jonsson",
                   sophomorixRole => "student",
                   sophomorixQuota=>"bsz:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"456:Long Comment String:",
                   sophomorixMailQuotaCalculated=>"456",
                   sophomorixSchoolPrefix => "bsz",
                   sophomorixSchoolname => "bsz",
                   sophomorixAdminFile => "bsz.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unid3456",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|bsz-m8cd|bsz-wifi|bsz-internet|bsz-webfilter|bsz-intranet|bsz-printing",
                  });
    # blackmri23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=blackmri23,OU=12abc,OU=Students,OU=uni,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Richard Blackmore",
                   givenName=>"Richard",
                   name=>"blackmri23",
                   sAMAccountname=>"blackmri23",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\uni\\students\\12abc\\blackmri23",
                   unixHomeDirectory=>"/srv/samba/schools/uni/students/12abc/blackmri23",
                   sn=>"Blackmore",
                   userPrincipalName => "blackmri23@".$root_dns,
                   mail => "blackmri23@".$root_dns,
                   sophomorixAdminClass => "uni-12abc",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster!",
                   sophomorixFirstnameASCII => "Richard",
                   sophomorixSurnameASCII  => "Blackmore",
                   sophomorixRole => "student",
                   sophomorixQuota=>"uni:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"2222",
                   sophomorixSchoolPrefix => "uni",
                   sophomorixSchoolname => "uni",
                   sophomorixAdminFile => "uni.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unidb1234",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|uni-12abc|uni-wifi|uni-internet|uni-webfilter|uni-intranet|uni-printing",
                  });

    # lordjo23
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=lordjo23,OU=12abc,OU=Students,OU=uni,OU=SCHOOLS,".$root_dse,
                   #####
                   displayName=>"Jon Lord",
                   givenName=>"Jon",
                   name=>"lordjo23",
                   sAMAccountname=>"lordjo23",
                   homeDrive=>"H:",
                   homeDirectory=>"\\\\bionic\\uni\\students\\12abc\\lordjo23",
                   unixHomeDirectory=>"/srv/samba/schools/uni/students/12abc/lordjo23",
                   sn=>"Lord",
                   userPrincipalName => "lordjo23@".$root_dns,
                   mail => "lordjo23@".$root_dns,
                   sophomorixAdminClass => "uni-12abc",
                   sophomorixExitAdminClass => "unknown",
                   sophomorixFirstPassword => "Muster23!",
                   sophomorixFirstnameASCII => "Jon",
                   sophomorixSurnameASCII  => "Lord",
                   sophomorixRole => "student",
                   sophomorixQuota=>"uni:---:---:new:---:|linuxmuster-global:---:---:new:---:",
                   sophomorixMailQuota=>"---:---:",
                   sophomorixMailQuotaCalculated=>"2222",
                   sophomorixSchoolPrefix => "uni",
                   sophomorixSchoolname => "uni",
                   sophomorixAdminFile => "uni.students.csv",
                   sophomorixCreationDate => "exists",
                   sophomorixTolerationDate => "default",
                   sophomorixDeactivationDate => "default",
                   sophomorixComment => "created by sophomorix",
                   sophomorixExamMode => "---",
                   sophomorixStatus=>"U",
                   sophomorixUnid => "unidb2345",
                   accountExpires => "0",
                   userAccountControl => "66048",
                   memberOf => "role-student|uni-12abc|uni-wifi|uni-internet|uni-webfilter|uni-intranet|uni-printing",
                  });



    # --removeadmins (1 removing from existing value)
    &run_command("sophomorix-project $all_options -p mathe23 --removeadmins wu23,oe23");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"366:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23",
                   sophomorixMembers => "muellegr23|samardze23|schneima23",
                   sophomorixAdminGroups => "super12|super13",
                   sophomorixMemberGroups => "bsz-super6|bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|samardze23|schneima23|super12|super13|bsz-super6|bsz-super7",
                   memberOf => "",
                  });
    # --removemembers (1 removing from existing value)
    &run_command("sophomorix-project $all_options -p mathe23 --removemembers samardze23,schneima23");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"366:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23",
                   sophomorixMembers => "muellegr23",
                   sophomorixAdminGroups => "super12|super13",
                   sophomorixMemberGroups => "bsz-super6|bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|super12|super13|bsz-super6|bsz-super7",
                   memberOf => "",
                  });
    # --removeadmingroups (1 removing from existing value)
    &run_command("sophomorix-project $all_options -p mathe23 --removeadmingroups super13");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"366:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23",
                   sophomorixMembers => "muellegr23",
                   sophomorixAdminGroups => "super12",
                   sophomorixMemberGroups => "bsz-super6|bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|super12|bsz-super6|bsz-super7",
                   memberOf => "",
                  });
    # --removemembergroups (1 removing from existing value)
    &run_command("sophomorix-project $all_options -p mathe23 --removemembergroups bsz-super6");
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathe23 Grundschule",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"366:---:",
                   sophomorixMailAlias=>"TRUE",
                   sophomorixMailList=>"TRUE",
                   sophomorixStatus=>"S",
                   sophomorixJoinable=>"TRUE",
                   sophomorixMaxMembers=>"16",
                   sophomorixCreationDate => "19880529093330.0Z",
                   sophomorixAdmins => "maiersa23",
                   sophomorixMembers => "muellegr23",
                   sophomorixAdminGroups => "super12",
                   sophomorixMemberGroups => "bsz-super7",
                   sophomorixHidden=>"TRUE",
                   sophomorixSchoolname => "default-school",
                   member => "maiersa23|muellegr23|super12|bsz-super7",
                   memberOf => "",
                  });


    # setting back individual mailquota for muellegr23
    &run_command("sophomorix-user $all_options -u muellegr23 --mailquota ---:---");


    # setting all back in one command
    &run_command("sophomorix-project $all_options -p mathe23 --nojoin --nohide --addquota default-school:---,linuxmuster-global:---  --addmailquota ---:--- --nomailalias --nomaillist --status P --maxmembers 0 --creationdate 20170529093330.0Z --description 'Mathematik' --admins \"\" --members \"\" --admingroups \"\" --membergroups \"\"");

    # setting Mailquota now
    &run_command("sophomorix-quota $all_options --set-mailquota-only");

    # checking if all is set back
    &AD_test_object({ldap=>$ldap,
                   dn=>"CN=p_mathe23,OU=Projects,OU=default-school,OU=SCHOOLS,".$root_dse,
                   sAMAccountname=>"p_mathe23",
                   description=>"Mathematik",
                   sophomorixType=>"project",
                   mail => "p_mathe23@".$root_dns,
                   sophomorixQuota=>"---",
                   sophomorixMailQuota=>"---",
                   sophomorixAddQuota=>"default-school:---:---:|linuxmuster-global:---:---:",
                   sophomorixAddMailQuota=>"---:---:",
                   sophomorixMailAlias=>"FALSE",
                   sophomorixMailList=>"FALSE",
                   sophomorixStatus=>"P",
                   sophomorixJoinable=>"FALSE",
                   sophomorixMaxMembers=>"0",
                   sophomorixCreationDate => "20170529093330.0Z",
                   sophomorixAdmins => "",
                   sophomorixMembers => "",
                   sophomorixAdminGroups => "",
                   sophomorixMemberGroups => "",
                   sophomorixHidden=>"FALSE",
                   sophomorixSchoolname => "default-school",
                   member => "",
                   memberOf => "",
                  });
    ############################################################
    # fs test
    ############################################################
    &start_fs_test(\%fs_test_result);
    &directory_tree_test("/srv/samba/schools",
                         \%fs_test_result,
                         "/srv/samba/schools",
                         "/srv/samba/schools/abc",
                         "/srv/samba/schools/lin",
                         "/srv/samba/schools/ghs",
                         "/srv/samba/schools/bsz",
                         "/srv/samba/schools/bsz/management",
                         "/srv/samba/schools/bsz/share",     
                         "/srv/samba/schools/bsz/iso",     
                         "/srv/samba/schools/bsz/program",     
                         "/srv/samba/schools/bsz/examusers",
                         "/srv/samba/schools/bsz/share/projects",
                         "/srv/samba/schools/bsz/share/projects/p_bsz-mathe23",
                         "/srv/samba/schools/bsz/share/projects/p_bsz-Chemie-AG23",
                         "/srv/samba/schools/bsz/students",
                         "/srv/samba/schools/bsz/teachers",
                         "/srv/samba/schools/bsz/share/teachers",                                      # ntacl
                         "/srv/samba/schools/bsz/share/classes",                                      # ntacl
                         "/srv/samba/schools/bsz/share/management",                                      # ntacl
                         "/srv/samba/schools/bsz/share/school",                                      # ntacl
                         "/srv/samba/schools/bsz/teachers/oe23",
                         "/srv/samba/schools/bsz/teachers/oe23/transfer",
#                         "/srv/samba/schools/bsz/teachers/oe23/_einsammeln",
                         "/srv/samba/schools/bsz/teachers/wu23",
                         "/srv/samba/schools/bsz/teachers/wu23/transfer",
#                         "/srv/samba/schools/bsz/teachers/wu23/_einsammeln",
                         "/srv/samba/schools/bsz/students/m7ab",
                         "/srv/samba/schools/bsz/share/classes/m7ab",
                         "/srv/samba/schools/bsz/students/m7ab/maiersa23",
                         "/srv/samba/schools/bsz/students/m7ab/maiersa23/transfer",
#                         "/srv/samba/schools/bsz/students/m7ab/maiersa23/_einsammeln",
                         "/srv/samba/schools/bsz/students/m7ab/muellegr23",
                         "/srv/samba/schools/bsz/students/m7ab/muellegr23/transfer",
#                         "/srv/samba/schools/bsz/students/m7ab/muellegr23/_einsammeln",
                         "/srv/samba/schools/bsz/students/m8cd",
                         "/srv/samba/schools/bsz/share/classes/m8cd",
                         "/srv/samba/schools/bsz/students/m8cd/jonsonad23",
                         "/srv/samba/schools/bsz/students/m8cd/jonsonad23/transfer",
#                         "/srv/samba/schools/bsz/students/m8cd/jonsonad23/_einsammeln",
                         "/srv/samba/schools/bsz/students/m8cd/samardze23",
                         "/srv/samba/schools/bsz/students/m8cd/samardze23/transfer",
#                         "/srv/samba/schools/bsz/students/m8cd/samardze23/_einsammeln",
                         "/srv/samba/schools/uni",
                         "/srv/samba/schools/uni/management",
                         "/srv/samba/schools/uni/share",
                         "/srv/samba/schools/uni/iso",     
                         "/srv/samba/schools/uni/program",
                         "/srv/samba/schools/uni/examusers",
                         "/srv/samba/schools/uni/share/projects",
                         "/srv/samba/schools/uni/students",
                         "/srv/samba/schools/uni/students/12abc",
                         "/srv/samba/schools/uni/share/classes/12abc",
                         "/srv/samba/schools/uni/students/12abc/lordjo23",
                         "/srv/samba/schools/uni/students/12abc/lordjo23/transfer",
#                         "/srv/samba/schools/uni/students/12abc/lordjo23/_einsammeln",
                         "/srv/samba/schools/uni/students/12abc/blackmri23",
                         "/srv/samba/schools/uni/students/12abc/blackmri23/transfer",
#                         "/srv/samba/schools/uni/students/12abc/blackmri23/_einsammeln",
                         "/srv/samba/schools/uni/teachers",
                         "/srv/samba/schools/uni/share/teachers",                                      # ntacl
                         "/srv/samba/schools/uni/share/classes",                                      # ntacl
                         "/srv/samba/schools/uni/share/management",                                      # ntacl
                         "/srv/samba/schools/uni/share/school",                                      # ntacl
                         "/srv/samba/schools/uni/teachers/kep23",
                         "/srv/samba/schools/uni/teachers/kep23/transfer",
#                         "/srv/samba/schools/uni/teachers/kep23/_einsammeln",
                         "/srv/samba/schools/uni/teachers/gal23",
                         "/srv/samba/schools/uni/teachers/gal23/transfer",
#                         "/srv/samba/schools/uni/teachers/gal23/_einsammeln",
                         "/srv/samba/schools/default-school",
                         "/srv/samba/schools/default-school/management",
                         "/srv/samba/schools/default-school/share",
                         "/srv/samba/schools/default-school/iso",     
                         "/srv/samba/schools/default-school/program",
                         "/srv/samba/schools/default-school/examusers",
                         "/srv/samba/schools/default-school/share/projects/p_mathe23",
                         "/srv/samba/schools/default-school/share/projects/p_Chemie-AG23",
                         "/srv/samba/schools/default-school/share/projects",
                         "/srv/samba/schools/default-school/students",
                         "/srv/samba/schools/default-school/students/s6ade",
                         "/srv/samba/schools/default-school/share/classes/s6ade",
                         "/srv/samba/schools/default-school/students/s6ade/schneima23",
                         "/srv/samba/schools/default-school/students/s6ade/schneima23/transfer",
#                         "/srv/samba/schools/default-school/students/s6ade/schneima23/_einsammeln",
                         "/srv/samba/schools/default-school/teachers",
                         "/srv/samba/schools/default-school/share/teachers",                                      # ntacl
                         "/srv/samba/schools/default-school/share/classes",                                      # ntacl
                         "/srv/samba/schools/default-school/share/management",                                      # ntacl
                         "/srv/samba/schools/default-school/share/school",                                      # ntacl
                         "/srv/samba/schools/default-school/teachers/sch23",
                         "/srv/samba/schools/default-school/teachers/sch23/transfer",
#                         "/srv/samba/schools/default-school/teachers/sch23/_einsammeln",
                        ); 
    &end_fs_test(\%fs_test_result);

    ############################################################
    # fs test
    ############################################################
    &start_fs_test(\%fs_test_result);
    &directory_tree_test("/srv/samba/global",
                         \%fs_test_result,
                         "/srv/samba/global",
                         "/srv/samba/global/management",
                         "/srv/samba/global/share",
                         "/srv/samba/global/program",
                         "/srv/samba/global/iso",
                         "/srv/samba/global/share/projects",            # ntacl
                         "/srv/samba/global/share/management",         # ntacl
                         "/srv/samba/global/share/global",         # ntacl
                         "/srv/samba/global/students",
                         "/srv/samba/global/teachers",
                        ); 
    &end_fs_test(\%fs_test_result);
}

############################################################
#  Test modified  projects
############################################################
# --test-mod-pro  
if ($test_mod_pro==1){
    print "\nNothing to do so far (--test-mod-pro), ...\n\n";
}




############################################################
# Kill projects
############################################################
# --kill-pro  
if ($kill_pro==1){
    &run_command("cp -v $file_kill_test $file_kill");
    &run_command("sophomorix-kill -i $all_options");
    &run_command("sophomorix-kill $all_options");
    # projects
    &run_command("sophomorix-project $all_options --kill -p mathe23 --school bsz");
    &run_command("sophomorix-project $all_options --kill -p mathe23");
    &run_command("sophomorix-project $all_options --kill -p Chemie-AG23 --school bsz");
    &run_command("sophomorix-project $all_options --kill -p Chemie-AG23");
    # groups
    &run_command("sophomorix-group $all_options --kill --group super6 --school bsz");
    &run_command("sophomorix-group $all_options --kill --group super7 --school bsz");
    &run_command("sophomorix-group $all_options --kill --group super12");
    &run_command("sophomorix-group $all_options --kill --group super13");
    # classes
    &run_command("sophomorix-class --kill --class bsz-m7ab $all_options");
    &run_command("sophomorix-class --kill --class bsz-m8cd $all_options");
    &run_command("sophomorix-class --kill --class s6ade $all_options");
    &run_command("sophomorix-class --kill --class uni-12abc $all_options");
}

############################################################
#  Test killed  users, groups, projects
############################################################
# --test-kill-pro  
if ($test_kill_pro==1){
    # users
    &AD_object_nonexist($ldap,$root_dse,"user","maiersa23");
    &AD_object_nonexist($ldap,$root_dse,"user","muellegr23");
    &AD_object_nonexist($ldap,$root_dse,"user","jonsonad23");
    &AD_object_nonexist($ldap,$root_dse,"user","samardze23");
    &AD_object_nonexist($ldap,$root_dse,"user","oe23");
    &AD_object_nonexist($ldap,$root_dse,"user","wu23");
    &AD_object_nonexist($ldap,$root_dse,"user","lordjo23");
    &AD_object_nonexist($ldap,$root_dse,"user","blackmri23");
    &AD_object_nonexist($ldap,$root_dse,"user","kep23");
    &AD_object_nonexist($ldap,$root_dse,"user","gal23");
    &AD_object_nonexist($ldap,$root_dse,"user","schneima23");
    &AD_object_nonexist($ldap,$root_dse,"user","sch23");
    # projects
    &AD_object_nonexist($ldap,$root_dse,"group","p_bsz-mathe23");
    &AD_object_nonexist($ldap,$root_dse,"group","p_mathe23");
    &AD_object_nonexist($ldap,$root_dse,"group","p_bsz-Chemie-AG23");
    &AD_object_nonexist($ldap,$root_dse,"group","p_Chemie-AG23");
    # groups
    &AD_object_nonexist($ldap,$root_dse,"group","bsz-super6");
    &AD_object_nonexist($ldap,$root_dse,"group","bsz-super7");
    &AD_object_nonexist($ldap,$root_dse,"group","super12");
    &AD_object_nonexist($ldap,$root_dse,"group","super13");

    &AD_object_nonexist($ldap,$root_dse,"group","bsz-m7ab");
    &AD_object_nonexist($ldap,$root_dse,"group","bsz-m8cd");
    &AD_object_nonexist($ldap,$root_dse,"group","s6ade");
    &AD_object_nonexist($ldap,$root_dse,"group","uni-12abc");

    ############################################################
    # fs test
    ############################################################
    &start_fs_test(\%fs_test_result);
    &directory_tree_test("/srv/samba/schools",
                         \%fs_test_result,
                         "/srv/samba/schools",
                         "/srv/samba/schools/abc",
                         "/srv/samba/schools/lin",
                         "/srv/samba/schools/ghs",
                         "/srv/samba/schools/bsz",
                         "/srv/samba/schools/bsz/management",
                         "/srv/samba/schools/bsz/share",     
                         "/srv/samba/schools/bsz/iso",     
                         "/srv/samba/schools/bsz/program",     
                         "/srv/samba/schools/bsz/examusers",
                         "/srv/samba/schools/bsz/share/projects",
                         "/srv/samba/schools/bsz/students",
                         "/srv/samba/schools/bsz/teachers",
                         "/srv/samba/schools/bsz/share/teachers",                                      # ntacl
                         "/srv/samba/schools/bsz/share/classes",                                      # ntacl
                         "/srv/samba/schools/bsz/share/management",                                      # ntacl
                         "/srv/samba/schools/bsz/share/school",                                      # ntacl
                         "/srv/samba/schools/uni",
                         "/srv/samba/schools/uni/management",
                         "/srv/samba/schools/uni/examusers",
                         "/srv/samba/schools/uni/share",
                         "/srv/samba/schools/uni/iso",     
                         "/srv/samba/schools/uni/program",
                         "/srv/samba/schools/uni/share/projects",
                         "/srv/samba/schools/uni/students",
                         "/srv/samba/schools/uni/teachers",
                         "/srv/samba/schools/uni/share/teachers",                                      # ntacl
                         "/srv/samba/schools/uni/share/classes",                                      # ntacl
                         "/srv/samba/schools/uni/share/management",                                      # ntacl
                         "/srv/samba/schools/uni/share/school",                                      # ntacl
                         "/srv/samba/schools/default-school",
                         "/srv/samba/schools/default-school/management",
                         "/srv/samba/schools/default-school/share",
                         "/srv/samba/schools/default-school/iso",     
                         "/srv/samba/schools/default-school/program",
                         "/srv/samba/schools/default-school/examusers",
                         "/srv/samba/schools/default-school/share/projects",
                         "/srv/samba/schools/default-school/students",
                         "/srv/samba/schools/default-school/teachers",
                         "/srv/samba/schools/default-school/share/teachers",
                         "/srv/samba/schools/default-school/share/classes",                                      # ntacl
                         "/srv/samba/schools/default-school/share/management",                                      # ntacl
                         "/srv/samba/schools/default-school/share/school",                                      # ntacl
                        ); 
    &end_fs_test(\%fs_test_result);

    ############################################################
    # fs test
    ############################################################
    &start_fs_test(\%fs_test_result);
    &directory_tree_test("/srv/samba/global",
                         \%fs_test_result,
                         "/srv/samba/global",
                         "/srv/samba/global/management",
                         "/srv/samba/global/share",
                         "/srv/samba/global/program",
                         "/srv/samba/global/iso",
                         "/srv/samba/global/share/projects",            # ntacl
                         "/srv/samba/global/share/management",         # ntacl
                         "/srv/samba/global/share/global",         # ntacl
                         "/srv/samba/global/students",
                         "/srv/samba/global/teachers",
                        ); 
    &end_fs_test(\%fs_test_result);
}


&AD_unbind_admin($ldap);
