tests/examples/Export-AxModelV2.Tests.ps1

$commandName = "Export-AxModelV2"
################################### New Example test ###################################

$exampleRaw = "Get-AxAosInstance | Export-AxModelV2"
#Remember to escape any variables names in the line above.
#Remember to you need to output $true to the pester test, otherwise is fails.
#; `$var -eq `$true

#Here you declare any variable(s) you need to complete the test.

$example = $exampleRaw -replace "`n.*" -replace "PS C:\\>"

Describe "Specific example testing for $commandName" {

    It "Example - $example" {
        # mock the tested command so we don't actually do anything
        # because it can be unsafe and we don't have the environment setup
        # (so the only thing we are testing is that the code is semantically
        # correct and provides all the needed params)
        Mock Get-AxAosInstance { 
            $InstanceDetail = [Ordered]@{}
    
            $InstanceDetail.InstanceName = ""
            $InstanceDetail.ConfigurationName = ""
            $InstanceDetail.BinDirectory = ""
            $InstanceDetail.ExecutablePath = ""
    
            $InstanceDetail.FileVersion = ""
            $InstanceDetail.ProductVersion = ""
            $InstanceDetail.FileVersionUpdated = ""
            $InstanceDetail.ProductVersionUpdated = ""
    
            $InstanceDetail.DatabaseServer = ""
            $InstanceDetail.DatabaseName = ""
            $InstanceDetail.ModelstoreDatabase = ""
    
            $InstanceDetail.AosPort = ""
            $InstanceDetail.WsdlPort = ""
            $InstanceDetail.NetTcpPort = ""
        
            $InstanceDetail.RegistryKeyPath = ""
            $InstanceDetail.InstanceNumber = ""
            $InstanceDetail.ComputerName = ""
    
            [PSCustomObject] $InstanceDetail }

        Mock $commandName {
            # I am returning true here,
            # but some of the examples drill down to the returned object
            # so in strict mode we would fail
            $true
        }
        # here simply invoke the example
        $result = Invoke-Expression $example
        # and check that we got result from the mock
        $result | Should -BeTrue
    }
}
################################### New Example test ###################################

$exampleRaw = "`$Test = `"1`"" + [environment]::NewLine
$exampleRaw = "Export-AxModelV2 -DatabaseServer localhost -ModelstoreDatabase MicrosoftDynamicsAx_model -Name *CUS*"
#Remember to escape any variables names in the line above.
#Remember to you need to output $true to the pester test, otherwise is fails.
#; `$var -eq `$true

#Here you declare any variable(s) you need to complete the test.

$example = $exampleRaw -replace "`n.*" -replace "PS C:\\>"

Describe "Specific example testing for $commandName" {

    It "Example - $example" {
        # mock the tested command so we don't actually do anything
        # because it can be unsafe and we don't have the environment setup
        # (so the only thing we are testing is that the code is semantically
        # correct and provides all the needed params)
        Mock $commandName {
            # I am returning true here,
            # but some of the examples drill down to the returned object
            # so in strict mode we would fail
            $true
        }
        # here simply invoke the example
        $result = Invoke-Expression $example
        # and check that we got result from the mock
        $result | Should -BeTrue
    }
}
################################### Entire help loaded ###################################

<#
 
 
NAME
    Export-AxModelV2
     
SYNOPSIS
    Export AX 2012 model
     
     
SYNTAX
    Export-AxModelV2 [[-DatabaseServer] <String>] [[-ModelstoreDatabase] <String>] [[-Path] <String>] [[-Name] <String>
    ] [[-Id] <String>] [[-Layer] <String>] [-GenerateScript] [<CommonParameters>]
     
     
DESCRIPTION
    Export AX 2012 model from the AX 2012 model store
     
 
PARAMETERS
    -DatabaseServer <String>
        Server name of the database server
         
        Default value is: "localhost"
         
        Required? false
        Position? 2
        Default value localhost
        Accept pipeline input? true (ByPropertyName)
        Accept wildcard characters? false
         
    -ModelstoreDatabase <String>
        Name of the modelstore database
         
        Default value is: "MicrosoftDynamicsAx_model"
         
        Note: From AX 2012 R2 and upwards you need to provide the full name for the modelstore database. E.g. "AX2012R3
        _PROD_model"
         
        Required? false
        Position? 3
        Default value MicrosoftDynamicsAx_model
        Accept pipeline input? true (ByPropertyName)
        Accept wildcard characters? false
         
    -Path <String>
        Path to the location where you want the file to be exported
         
        Default value is: "c:\temp\ax2012.tools"
         
        Required? false
        Position? 4
        Default value c:\temp\ax2012.tools
        Accept pipeline input? false
        Accept wildcard characters? false
         
    -Name <String>
        Name of the AX 2012 model that you are looking for
         
        Accepts wildcards for searching. E.g. -Name "ISV*MODULE*"
         
        Default value is "*" which will search for all models
         
        Required? false
        Position? 5
        Default value *
        Accept pipeline input? false
        Accept wildcard characters? false
         
    -Id <String>
        Id of the AX 2012 model that you are looking for
         
        Accepts wildcards for searching. E.g. -Id "2*"
         
        Default value is "*" which will search for all models
         
        Required? false
        Position? 6
        Default value *
        Accept pipeline input? false
        Accept wildcard characters? false
         
    -Layer <String>
        Layer where the AX 2012 model that you are looking for should reside
         
        Accepts wildcards for searching. E.g. -Layer "IS*"
         
        Default value is "*" which will search for models in all layers
         
        Required? false
        Position? 7
        Default value *
        Accept pipeline input? false
        Accept wildcard characters? false
         
    -GenerateScript [<SwitchParameter>]
        Switch to instruct the cmdlet to output the script to execute the command in hand
         
        Required? false
        Position? named
        Default value False
        Accept pipeline input? false
        Accept wildcard characters? false
         
    <CommonParameters>
        This cmdlet supports the common parameters: Verbose, Debug,
        ErrorAction, ErrorVariable, WarningAction, WarningVariable,
        OutBuffer, PipelineVariable, and OutVariable. For more information, see
        about_CommonParameters (https:/go.microsoft.com/fwlink/?LinkID=113216).
     
INPUTS
     
OUTPUTS
    System.String
     
     
NOTES
     
     
        Author: Mötz Jensen (@Splaxi)
     
    -------------------------- EXAMPLE 1 --------------------------
     
    PS C:\>Get-AxAosInstance | Export-AxModelV2
     
    This will fetch all the AX 2012 AOS instances that are configured on the machine.
    Foreach of the instances it will export all AX 2012 Models into a sub folder to "c:\temp\ax2012.tools".
     
     
     
     
    -------------------------- EXAMPLE 2 --------------------------
     
    PS C:\>$Test = "1"
     
    PS C:\> Export-AxModelV2 -DatabaseServer "localhost" -ModelstoreDatabase "MicrosoftDynamicsAx_model" -Names "*CUS*"
     
    This will fetch all the AX 2012 AOS instances that are configured on the machine.
    Foreach of the instances it will export all AX 2012 Models into a sub folder to "c:\temp\ax2012.tools".
     
     
     
     
     
RELATED LINKS
 
 
 
#>