From 13411136670bbb0c5cd6fe7c2e7cc15e167e55d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A4tzold?= <ad006pa@win.rz.rwth-aachen.de> Date: Wed, 8 Apr 2020 15:31:40 +0200 Subject: [PATCH] AdmAPI 3.0.3 --- Demo/MailAdm-Doku.Tests.ps1 | 76 ++++++++++++++++++++++++++++++++----- Demo/mailaccounts.ps1 | 17 ++++++++- 2 files changed, 83 insertions(+), 10 deletions(-) diff --git a/Demo/MailAdm-Doku.Tests.ps1 b/Demo/MailAdm-Doku.Tests.ps1 index dfa0d74..df47a84 100644 --- a/Demo/MailAdm-Doku.Tests.ps1 +++ b/Demo/MailAdm-Doku.Tests.ps1 @@ -1,18 +1,20 @@ -# These are the Pester Tests in order to demonstrate how the API works +# These are the Pester Tests in order to demonstrate how the API works and +# reflects the following versions API04 MailADM 3.0.3 +# If you need further documentation please check our doku-portal [0] +# or contact our IT-ServiceDesk (servicedesk@itc.rwth-aachen.de) +# [0] https://doc.itc.rwth-aachen.de/dosearchsite.action?queryString=MailAdm # initializing # connection settings -$user = "<MailAdm Serviceaccount>" -$password = "<password>" +$user = "<Service Account>" # e.g. srv123456@rwth-ad.de +$password = "<Password>" $uri = "https://ws.rwth-ad.de/ex-cache-ws/APIv04.asmx?wsDL" -# import functions -. .\connect.ps1 -. .\listquota.ps1 -. .\mailaccounts.ps1 -. .\distributionlist.ps1 - # set variables +# please change the following variables +$existingUPN = "<existing user logon name>" # e.g. ab123456@mustereinrichtung.rwth-aachen.de + +# these variables should work $Primarydomain = "mustereinrichtung.rwth-aachen.de" $SecondaryDomain = "" $existingPersonalMailaccount = "paetzold@mustereinrichtung.rwth-aachen.de" @@ -23,6 +25,15 @@ $distributionlist = "zoo@mustereinrichtung.rwth-aachen.de" $newdistributionmailaddress = "alletiere2@mustereinrichtung.rwth-aachen.de" $newmailaddress = "zebra@mustereinrichtung.rwth-aachen.de" +# import functions +. .\connect.ps1 +. .\listquota.ps1 +. .\mailaccounts.ps1 +. .\distributionlist.ps1 + + + + Describe "MailAdm-Doku" { It "Connection: Establish a connection with Webservice" { $global:ws = new-mailadmconnection -user $user -password $password -uri $uri @@ -48,6 +59,11 @@ Describe "MailAdm-Doku" { $mailaccounts.count | should -BeGreaterOrEqual 0 } + It "get-mailbox: check for existing Logon Credentials and returns the corresponding Mailboxinformation" { + $mailaccount = get-mailbox -webserviceConnection $global:ws -upn $existingUPN + $mailaccount.count | should -Be 1 + } + It "Remove-Mailboxinvitation: dummy test in order to remove all invitations to get a defined infrastructure" { $result = remove-allmailboxinvitation -webserviceconnection $global:ws # check if alll invitations could be deleted @@ -240,6 +256,48 @@ Describe "MailAdm-Doku" { $result | should -Be $true } + It "change: Mailboxtype functional mailbox -> room mailbox" { + # 0 UserMailbox + # 1 Funktionsaccount (in Exchange: UserMailbox) + # 2 RoomMailbox + # 3 EquipmentMailbox + $upn = "fkt_$existingfunctionalmailbox" + $result = change-mailboxtype -webserviceConnection $global:ws -upn $upn -newmailboxtype 2 + $result | should -Be $true + + } + It "change: Mailboxtype room mailbox -> equipment mailbox" { + # 0 UserMailbox + # 1 Funktionsaccount (in Exchange: UserMailbox) + # 2 RoomMailbox + # 3 EquipmentMailbox + $upn = "fkt_$existingfunctionalmailbox" + $result = change-mailboxtype -webserviceConnection $global:ws -upn $upn -newmailboxtype 3 + $result | should -Be $true + + } + + It "change: Mailboxtype equipment mailbox -> functional Mailbox" { + # 0 UserMailbox + # 1 Funktionsaccount (in Exchange: UserMailbox) + # 2 RoomMailbox + # 3 EquipmentMailbox + $upn = "fkt_$existingfunctionalmailbox" + $result = change-mailboxtype -webserviceConnection $global:ws -upn $upn -newmailboxtype 1 + $result | should -Be $true + + } + + It "change: Mailboxtype functional mailbox -> personal Mailbox -->> Error" { + # 0 UserMailbox + # 1 Funktionsaccount (in Exchange: UserMailbox) + # 2 RoomMailbox + # 3 EquipmentMailbox + $upn = "fkt_$existingfunctionalmailbox" + $result = change-mailboxtype -webserviceConnection $global:ws -upn $upn -newmailboxtype 0 + $result | should -Be $false + } + It "create: distribution list" { $displayname = "Zoo" $distributionlist = create-distributionlist -WebserviceConnection $global:ws -displayname $displayname -mailaddress $distributionlist diff --git a/Demo/mailaccounts.ps1 b/Demo/mailaccounts.ps1 index 2656999..530ef7e 100644 --- a/Demo/mailaccounts.ps1 +++ b/Demo/mailaccounts.ps1 @@ -8,6 +8,14 @@ function get-mailaccounts { $mailaccounts } +function get-mailbox { + [CmdletBinding()] + param ($webserviceconnection,$upn) + + $mailbox = $webserviceconnection.getMailbox($upn) + $mailbox +} + function add-mailboxinvitation { [CmdletBinding()] param ($webserviceconnection, $quotaPoolID, $primaryEMailAddress, $givenname, $Surname, $QuotaInMB, $Aliasaddresses, $Mailboxtype, $DeliverToMailBoxAndforward, $ForwardingEmailaddress, $Owner) @@ -66,7 +74,6 @@ function change-mailboxforwardingaddress { $result } -function chaange-emailaddresses { } function change-mailboxquota { [CmdletBinding()] @@ -146,4 +153,12 @@ function change-removesendaspermission { $result = $webserviceconnection.RemoveSendAsPermission($mailboxtochange.upn, $user) $result +} + +function change-mailboxtype { + [cmdletBinding()] + param ($webserviceconnection, $upn, $newmailboxtype) + + $result = $webserviceconnection.changemailboxtype($upn,$newmailboxtype) + $result } \ No newline at end of file -- GitLab