Skip to content
Snippets Groups Projects
Commit 3ca74c9f authored by Mia Möbes's avatar Mia Möbes
Browse files

Pester-Tests auf APIv05_1 aktualisiert

parent ecf6f8e1
Branches
No related tags found
No related merge requests found
# These are the Pester Tests in order to demonstrate how the API works and
# reflects the following versions API04 MailADM 3.0.3
# reflects the following versions API05_1 MailADM 3.0.4
# 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
# [0] https://help.itc.rwth-aachen.de/service/1jefzdccuvuch/article/31c9d912142143d0a9740fa5e55f9701
# initializing
# connection settings
$user = "<Service Account>" # e.g. srv123456@rwth-ad.de
$password = "<Password>"
$uri = "https://ws.rwth-ad.de/ex-cache-ws/APIv04.asmx?wsDL"
$uri = "https://ws.rwth-ad.de/ex-cache-ws/APIv05_1.asmx?wsDL"
# set variables
# please change the following variables
......@@ -22,6 +22,7 @@ $existingfunctionalMailbox = "rudirentier@mustereinrichtung.rwth-aachen.de"
$externalmailaddress = "hugo@mueller.de"
$localpartpersonalmailmox = "hugodertierpfleger"
$distributionlist = "zoo@mustereinrichtung.rwth-aachen.de"
$seconddistributionlist = "tiergehege@mustereinrichtung.rwth-aachen.de"
$newdistributionmailaddress = "alletiere2@mustereinrichtung.rwth-aachen.de"
$newmailaddress = "zebra@mustereinrichtung.rwth-aachen.de"
......@@ -33,7 +34,6 @@ $newmailaddress = "zebra@mustereinrichtung.rwth-aachen.de"
Describe "MailAdm-Doku" {
It "Connection: Establish a connection with Webservice" {
$global:ws = new-mailadmconnection -user $user -password $password -uri $uri
......@@ -66,7 +66,7 @@ Describe "MailAdm-Doku" {
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
# check if all invitations could be deleted
$invitations = get-mailboxinvitations -webserviceconnection $global:ws
$invitations.count | should -Be 0
}
......@@ -76,6 +76,7 @@ Describe "MailAdm-Doku" {
$givenname = "Hugo"
$primaryMailaddress = "$localpartpersonalmailmox@$Primarydomain"
$MailaddressAliasList = @()
$DistributionGroupAddresses = @()
$quota = 10
# Mailboxtype:
# 0 : personal mailbox
......@@ -90,7 +91,7 @@ Describe "MailAdm-Doku" {
$quotapool = get-quotapool -Domain mustereinrichtung.rwth-aachen.de -WebServiceConnection $global:ws
[int32]$quotapoolid = $quotapool[0].id
$invitation = add-mailboxinvitation -webserviceconnection $global:ws -quotaPoolID $quotapoolid -primaryEMailAddress $primaryMailaddress -givenname $givenname -Surname $surname -QuotaInMB $quota -Aliasaddresses $MailaddressAliasList -Mailboxtype $Mailboxtype -DeliverToMailBoxAndforward $DeliverMailboxAndForward -ForwardingEmailaddress $ForwardingEmailaddress -Owner $Owner
$invitation = add-mailboxinvitation -webserviceconnection $global:ws -quotaPoolID $quotapoolid -primaryEMailAddress $primaryMailaddress -givenname $givenname -surname $Surname -QuotaInMB $quota -Aliasaddresses $MailaddressAliasList -DistributionGroupAddresses $DistributionGroupAddresses -Mailboxtype $Mailboxtype -DeliverToMailBoxAndforward $DeliverMailboxAndForward -ForwardingEmailaddress $ForwardingEmailaddress -Owner $Owner
$invitation.returncode | should -Be 0
}
......@@ -99,6 +100,7 @@ Describe "MailAdm-Doku" {
$givenname = ""
$primaryMailaddress = "zooleitung@$Primarydomain"
$MailaddressAliasList = @()
$DistributionGroupAddresses = @()
$quota = 10
# Mailboxtype:
# 0 : personal mailbox
......@@ -113,7 +115,7 @@ Describe "MailAdm-Doku" {
$quotapool = get-quotapool -Domain mustereinrichtung.rwth-aachen.de -WebServiceConnection $global:ws
$quotapoolid = $quotapool[0].id
$invitation = add-mailboxinvitation -webserviceconnection $global:ws -quotaPoolID $quotapoolid -primaryEMailAddress $primaryMailaddress -givenname $givenname -Surname $surname -QuotaInMB $quota -Aliasaddresses $MailaddressAliasList -Mailboxtype $Mailboxtype -DeliverToMailBoxAndforward $DeliverMailboxAndForward -ForwardingEmailaddress $ForwardingEmailaddress -Owner $Owner
$invitation = add-mailboxinvitation -webserviceconnection $global:ws -quotaPoolID $quotapoolid -primaryEMailAddress $primaryMailaddress -givenname $givenname -Surname $surname -QuotaInMB $quota -Aliasaddresses $MailaddressAliasList -DistributionGroupAddresses $DistributionGroupAddresses -Mailboxtype $Mailboxtype -DeliverToMailBoxAndforward $DeliverMailboxAndForward -ForwardingEmailaddress $ForwardingEmailaddress -Owner $Owner
$invitation.returncode | should -Be 0
}
......@@ -122,6 +124,7 @@ Describe "MailAdm-Doku" {
$givenname = ""
$primaryMailaddress = "eisbaergehege@$Primarydomain"
$MailaddressAliasList = @()
$DistributionGroupAddresses = @()
$quota = 10
# Mailboxtype:
# 0 : personal mailbox
......@@ -136,7 +139,7 @@ Describe "MailAdm-Doku" {
$quotapool = get-quotapool -Domain mustereinrichtung.rwth-aachen.de -WebServiceConnection $global:ws
$quotapoolid = $quotapool[0].id
$invitation = add-mailboxinvitation -webserviceconnection $global:ws -quotaPoolID $quotapoolid -primaryEMailAddress $primaryMailaddress -givenname $givenname -Surname $surname -QuotaInMB $quota -Aliasaddresses $MailaddressAliasList -Mailboxtype $Mailboxtype -DeliverToMailBoxAndforward $DeliverMailboxAndForward -ForwardingEmailaddress $ForwardingEmailaddress -Owner $Owner
$invitation = add-mailboxinvitation -webserviceconnection $global:ws -quotaPoolID $quotapoolid -primaryEMailAddress $primaryMailaddress -givenname $givenname -Surname $surname -QuotaInMB $quota -Aliasaddresses $MailaddressAliasList -DistributionGroupAddresses $DistributionGroupAddresses -Mailboxtype $Mailboxtype -DeliverToMailBoxAndforward $DeliverMailboxAndForward -ForwardingEmailaddress $ForwardingEmailaddress -Owner $Owner
$invitation.returncode | should -Be 0
}
......@@ -145,6 +148,7 @@ Describe "MailAdm-Doku" {
$givenname = ""
$primaryMailaddress = "knutsspielzeug@$Primarydomain"
$MailaddressAliasList = @()
$DistributionGroupAddresses = @()
$quota = 10
# Mailboxtype:
# 0 : personal mailbox
......@@ -159,7 +163,7 @@ Describe "MailAdm-Doku" {
$quotapool = get-quotapool -Domain mustereinrichtung.rwth-aachen.de -WebServiceConnection $global:ws
$quotapoolid = $quotapool[0].id
$invitation = add-mailboxinvitation -webserviceconnection $global:ws -quotaPoolID $quotapoolid -primaryEMailAddress $primaryMailaddress -givenname $givenname -Surname $surname -QuotaInMB $quota -Aliasaddresses $MailaddressAliasList -Mailboxtype $Mailboxtype -DeliverToMailBoxAndforward $DeliverMailboxAndForward -ForwardingEmailaddress $ForwardingEmailaddress -Owner $Owner
$invitation = add-mailboxinvitation -webserviceconnection $global:ws -quotaPoolID $quotapoolid -primaryEMailAddress $primaryMailaddress -givenname $givenname -Surname $surname -QuotaInMB $quota -Aliasaddresses $MailaddressAliasList -DistributionGroupAddresses $DistributionGroupAddresses -Mailboxtype $Mailboxtype -DeliverToMailBoxAndforward $DeliverMailboxAndForward -ForwardingEmailaddress $ForwardingEmailaddress -Owner $Owner
$invitation.returncode | should -Be 0
}
......@@ -203,10 +207,14 @@ Describe "MailAdm-Doku" {
}
#>
<#
# Es gibt in Version 05_1 keine Moeglichkeit mehr, Weiterleitungsadressen zu konfigurieren.
It "change: forwardingaddress" {
$result = change-mailboxforwardingaddress -webserviceconnection $global:ws -mailbox $existingfunctionalMailbox -newforwardingmailaddress $externalmaladdress
$result | should -Be $true
}
#>
It "change: emailaddresses" {
$result = change-emailaddresses -webserviceconnection $global:ws -mailbox $existingPersonalMailaccount -primaryEmailaddress $existingPersonalMailaccount -secondaryemailaddress $newmailaddress
......@@ -223,9 +231,9 @@ Describe "MailAdm-Doku" {
# get mailboxinformation
$mailboxes = $global:ws.getMailboxList()
$mailboxtochange = $mailboxes | ? { $_.emailaddress -like $existingfunctionalMailbox }
$mailboxtochange = $mailboxes | Where-Object { $_.emailaddress -like $existingfunctionalMailbox }
$quotapoolIds = get-quotapool -Domain $Primarydomain -WebserviceConnection $global:ws
$quotapoolid = ($quotapoolIds | ? { $_.id -ne $($mailboxtochange.quotapool.id) } | select -first 1).id
$quotapoolid = ($quotapoolIds | Where-Object { $_.id -ne $($mailboxtochange.quotapool.id) } | Select-Object -first 1).id
$result = change-mailboxquotapool -webserviceconnection $global:ws -mailbox $($mailboxtochange.upn) -newquotapool $quotapoolid
$result | should -Be $true
......@@ -261,6 +269,8 @@ Describe "MailAdm-Doku" {
# 1 Funktionsaccount (in Exchange: UserMailbox)
# 2 RoomMailbox
# 3 EquipmentMailbox
# Der Vollzugriff ist eine notwendige Voraussetzung für das Wandeln in eine Ressourcen-Mailbox
change-addfullaccesspermission -webserviceconnection $global:ws -mailbox $existingfunctionalMailbox -user $existingPersonalMailaccount
$upn = "fkt_$existingfunctionalmailbox"
$result = change-mailboxtype -webserviceConnection $global:ws -upn $upn -newmailboxtype 2
$result | should -Be $true
......@@ -295,13 +305,21 @@ Describe "MailAdm-Doku" {
# 3 EquipmentMailbox
$upn = "fkt_$existingfunctionalmailbox"
$result = change-mailboxtype -webserviceConnection $global:ws -upn $upn -newmailboxtype 0
# Der Vollzugriff wird für den nächsten Skriptdurchlauf entfernt
change-removefullaccesspermission -webserviceconnection $global:ws -mailbox $existingfunctionalMailbox -user $existingPersonalMailaccount
$result | should -Be $false
}
It "create: distribution list" {
$displayname = "Zoo"
$distributionlist = create-distributionlist -WebserviceConnection $global:ws -displayname $displayname -mailaddress $distributionlist
$distributionlist | should -Be 0
$dl = create-distributionlist -WebserviceConnection $global:ws -displayname $displayname -mailaddress $distributionlist
$dl | should -Be 0
}
It "create: second distribution list" {
$secondlistdisplayname = "Tiergehege"
$dl = create-distributionlist -WebserviceConnection $global:ws -displayname $secondlistdisplayname -mailaddress $seconddistributionlist
$dl | should -Be 0
}
It "Get distribution list" {
......@@ -325,23 +343,38 @@ Describe "MailAdm-Doku" {
$result | should -Be $true
}
It "cahnge: Distributionlist Mailaddress" {
It "change: Distributionlist Mailaddress" {
$result = change-distributionlistemailaddresses -WebserviceConnection $global:ws -mailaddress $distributionlist -newmailaddress $newdistributionmailaddress
$($result.Returncode) | should -Be 0
}
It "add member to distributionlist" {
$result = add-distributiongroupmember -WebserviceConnection $global:ws -distributionlist $distributionlist -newmember $existingfunctionalMailbox
It "add member mailbox to distributionlist" {
$result = add-distributiongroupmember -WebserviceConnection $global:ws -maillistEMail $distributionlist -newmember $existingfunctionalMailbox
$result.Returncode | Should -Be 0
}
It "add member maillist to distributionlist" {
$result = add-distributiongroupmember -WebserviceConnection $global:ws -maillistEMail $distributionlist -newmember $seconddistributionlist
$result.Returncode | Should -Be 0
}
It "remove member from distributionlist" {
$result = remove-distributiongroupmember -WebserviceConnection $global:ws -distributionlist $distributionlist -member $existingfunctionalMailbox
It "remove member mailbox from distributionlist" {
$result = remove-distributiongroupmember -WebserviceConnection $global:ws -maillistEMail $distributionlist -member $existingfunctionalMailbox
$result.ReturnCode | Should -Be 0
}
It "remove member maillist from distributionlist" {
$result = remove-distributiongroupmember -WebserviceConnection $global:ws -maillistEMail $distributionlist -member $seconddistributionlist
$result.ReturnCode | Should -Be 0
}
It "delete distribution list" {
It "delete first distribution list" {
$result = remove-distributionlist -WebserviceConnection $global:ws -mailaddress $distributionlist
$result | Should -Be $true
}
It "delete second distribution list" {
$result = remove-distributionlist -WebserviceConnection $global:ws -mailaddress $seconddistributionlist
$result | Should -Be $true
}
}
\ No newline at end of file
......@@ -13,7 +13,7 @@ function get-distributionlist {
param ($WebserviceConnection, $mailaddress)
$distributionlists = $WebserviceConnection.getMailLists()
$distributionlist = $distributionlists | ? { $_.emailaddress -match $mailaddress }
$distributionlist = $distributionlists | Where-Object { $_.emailaddress -match $mailaddress }
$distributionlist
}
......@@ -23,9 +23,9 @@ function remove-distributionlist {
param ($WebserviceConnection, $mailaddress)
$distributionlists = $WebserviceConnection.getMailLists()
$distributionlist = $distributionlists | ? { $_.emailaddress -match "Zoo@mustereinrichtung.rwth-aachen.de" }
$groupSamAccountName = $distributionlists | Where-Object { $_.emailaddress -match $mailaddress }
$result = $WebserviceConnection.RemoveMailList($distributionlist.SamAccountName)
$result = $WebserviceConnection.RemoveMailList($groupSamAccountName.SamAccountName)
$result
}
......@@ -73,22 +73,30 @@ function change-distributionlistdisplayname {
function add-distributiongroupmember {
[CmdletBinding()]
param ($WebserviceConnection, $distributionlist, $newmember)
param ($WebserviceConnection, $maillistEMail, $newmember)
$mailboxes = $webserviceconnection.getMailboxList()
$mailbox = $mailboxes | ? { $_.emailaddress -like $newmember }
$global:mailboxes = $webserviceconnection.getMailboxList()
$global:SamAccountName = $mailboxes | Where-Object {$_.emailaddress -like $newmember} | Select-Object -Property SamAccountName
if (!($mailboxes | Where-Object {$_.emailaddress -like $newmember})){
$global:maillists = $WebserviceConnection.getMailLists()
$global:SamAccountName = $maillists | Where-Object {$_.emailaddress -like $newmember} | Select-Object -Property SamAccountName
}
$result = $WebserviceConnection.addMailboxToMaillist($distributionlist, $mailbox.upn)
$result = $WebserviceConnection.addMemberToMaillist($maillistEMail, $SamAccountName.SamAccountName)
$result
}
function remove-distributiongroupmember {
[CmdletBinding()]
param ($WebserviceConnection, $distributionlist, $member)
param ($WebserviceConnection, $maillistEMail, $member)
$mailboxes = $webserviceconnection.getMailboxList()
$mailbox = $mailboxes | ? { $_.emailaddress -like $member }
$global:mailboxes = $webserviceconnection.getMailboxList()
$global:SamAccountName = $mailboxes | Where-Object {$_.emailaddress -like $member} | Select-Object -Property SamAccountName
if (!($mailboxes | Where-Object {$_.emailaddress -like $member})){
$global:maillists = $WebserviceConnection.getMailLists()
$global:SamAccountName = $maillists | Where-Object {$_.emailaddress -like $member} | Select-Object -Property SamAccountName
}
$result = $WebserviceConnection.RemoveMailboxFromMaillist($distributionlist, $mailbox.upn)
$result = $WebserviceConnection.RemoveMemberFromMaillist($maillistEMail, $SamAccountName.SamAccountName)
$result
}
\ No newline at end of file
......@@ -18,9 +18,9 @@ function get-mailbox {
function add-mailboxinvitation {
[CmdletBinding()]
param ($webserviceconnection, $quotaPoolID, $primaryEMailAddress, $givenname, $Surname, $QuotaInMB, $Aliasaddresses, $Mailboxtype, $DeliverToMailBoxAndforward, $ForwardingEmailaddress, $Owner)
param ($webserviceconnection, $quotaPoolID, $primaryEMailAddress, $givenname, $Surname, $QuotaInMB, $Aliasaddresses, $DistributionGroupAddresses, $Mailboxtype, $DeliverToMailBoxAndforward, $ForwardingEmailaddress, $Owner)
$invitation = $webserviceconnection.CreateMailaccountInvitation($quotaPoolID, $primaryEMailAddress, $givenname, $Surname, $QuotaInMB, $Aliasaddresses, $Mailboxtype, $DeliverToMailBoxAndforward, $ForwardingEmailaddress, $Owner)
$invitation = $webserviceconnection.CreateMailaccountInvitation($quotaPoolID, $primaryEMailAddress, $givenname, $Surname, $QuotaInMB, $Aliasaddresses, $DistributionGroupAddresses, $Mailboxtype, $DeliverToMailBoxAndforward, $ForwardingEmailaddress, $Owner)
$invitation
}
......@@ -65,6 +65,8 @@ function reconnect-mailbox {
$result
}
<#
# Es gibt in Version 05_1 keine Moeglichkeit mehr, Weiterleitungsadressen zu konfigurieren.
function change-mailboxforwardingaddress {
[cmdletbinding()]
param($webserviceconnection, $mailbox, $newforwardingmailaddress)
......@@ -73,6 +75,7 @@ function change-mailboxforwardingaddress {
$result = $webserviceconnection.setMailForwarding($mailboxtochange.upn, $true, $newforwardingmailaddress)
$result
}
#>
function change-mailboxquota {
......@@ -121,7 +124,7 @@ function change-mailboxdisplayname {
$mailboxes = $webserviceconnection.getMailboxList()
$mailboxtochange = $mailboxes | ? { $_.emailaddress -like $mailbox }
$result = $webserviceconnection.SetRessourceMailboxDisplayName($mailboxtochange.upn, $newdisplayname)
$result = $webserviceconnection.SetMailboxDisplayName($mailboxtochange.upn, $newdisplayname)
$result
}
......
......@@ -7,7 +7,7 @@ Zur Nutzung der MailAdm API benötigen Sie einen Serviceaccount. Diesen können
## Projektinhalt
Das Projekt besteht aus dem Unerverzeichnis Demo, dass beispielhaft den in der API beritgestellten Funktionen zeigt. Hierbei beinhalten die einzelnen Datien folgende Themenblöcke:
Das Projekt besteht aus dem Unterverzeichnis Beispielprojekt, das beispielhaft die in der API bereitgestellten Funktionen zeigt. Hierbei beinhalten die einzelnen Datien folgende Themenblöcke:
1. connect.ps1
- Verbindungsaufbau zur API
2. listquota.ps1
......@@ -20,8 +20,10 @@ Das Projekt besteht aus dem Unerverzeichnis Demo, dass beispielhaft den in der A
## Ausführung
Im Verzeichnis PesterTests finden Sie entsprechende Unittests, um die Schnittstelle mit Ihrem Serviceaccount zu testen. Bitte passen Sie hierzu in der Datei MailAdm-Doku.Tests.ps1 den Bereich "connection settings" an.
Um die Tests zu starten, wechseln Sie mit in der Windows Powershell ins "Demo" Verzeichnis und starten Sie das Cmdlet invoke-pester
Um die Tests zu starten, wechseln Sie in der Windows Powershell ins "Beispielprojekt" Verzeichnis und starten Sie das Cmdlet invoke-pester
## Autoren
* **Thomas Pätzold**
* **Jannis Hahn**
* **Mia Möbes**
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment