Arrays.Tests.ps1
#################################################################################################### # Declarations #################################################################################################### # Set InformationPreference $InformationPreference = "Continue" #################################################################################################### # Functions #################################################################################################### # Import other BitTitan.Runbooks modules Import-BT_Module BitTitan.Runbooks.Common #################################################################################################### # The tests #################################################################################################### describe "Modules/BitTitan.Runbooks.Common/Arrays/ConvertTo-Array" -Tags "module", "common", "unit" { context "when given a null value" { $inputValue = $null it "returns an empty array" { # Call the function $output = ConvertTo-Array $inputValue # Verify the output $output.GetType().Name | Should Be "Object[]" $output.length | Should Be 0 } } context "when given an empty Object[]" { $inputValue = @() $inputValue.GetType().Name | Should Be "Object[]" $inputValue.length | Should Be 0 it "returns an empty array" { # Call the function $output = ConvertTo-Array $inputValue # Verify the output $output.GetType().Name | Should Be "Object[]" $output.length | Should Be 0 } } context "when given an Object[] containing one item" { $inputValue = @() $inputValue += 42 $inputValue.GetType().Name | Should Be "Object[]" $inputValue.length | Should Be 1 it "returns an array containing that item" { # Call the function $output = ConvertTo-Array $inputValue # Verify the output $output.GetType().Name | Should Be "Object[]" $output.length | Should Be 1 $output[0] | Should Be 42 } } context "when given an Object[] containing multiple items" { $inputValue = @() $inputValue += 42 $inputValue += 43 $inputValue += 44 $inputValue.GetType().Name | Should Be "Object[]" $inputValue.length | Should Be 3 it "returns an array containing the items" { # Call the function $output = ConvertTo-Array $inputValue # Verify the output $output.GetType().Name | Should Be "Object[]" $output.length | Should Be 3 $output[0] | Should Be 42 $output[1] | Should Be 43 $output[2] | Should Be 44 } } context "when given an empty PSObject[]" { $inputValue = New-Object PSObject[] 0 $inputValue.GetType().Name | Should Be "PSObject[]" $inputValue.length | Should Be 0 it "returns an empty array" { # Call the function $output = ConvertTo-Array $inputValue # Verify the output $output.GetType().Name | Should Be "Object[]" $output.length | Should Be 0 } } context "when given an PSObject[] containing one item" { $inputValue = New-Object PSObject[] 1 $inputValue[0] = 42 $inputValue.GetType().Name | Should Be "PSObject[]" $inputValue.length | Should Be 1 it "returns an array containing that item" { # Call the function $output = ConvertTo-Array $inputValue # Verify the output $output.GetType().Name | Should Be "Object[]" $output.length | Should Be 1 $output[0] | Should Be 42 } } context "when given an PSObject[] containing multiple items" { $inputValue = New-Object PSObject[] 3 $inputValue[0] = 42 $inputValue[1] = 43 $inputValue[2] = 44 $inputValue.GetType().Name | Should Be "PSObject[]" $inputValue.length | Should Be 3 it "returns an array containing the items" { # Call the function $output = ConvertTo-Array $inputValue # Verify the output $output.GetType().Name | Should Be "Object[]" $output.length | Should Be 3 $output[0] | Should Be 42 $output[1] | Should Be 43 $output[2] | Should Be 44 } } context "when given a empty List``1" { $inputValue = New-Object "System.Collections.Generic.List[Int]" $inputValue.GetType().Name | Should Be "List``1" $inputValue.count | Should Be 0 it "returns an empty array" { # Call the function $output = ConvertTo-Array $inputValue # Verify the output $output.GetType().Name | Should Be "Object[]" $output.length | Should Be 0 } } context "when given a List``1 containing one item" { $inputValue = New-Object "System.Collections.Generic.List[Int]" $inputValue.Add(42) $inputValue.GetType().Name | Should Be "List``1" $inputValue.length | Should Be 1 it "returns an array containing that item" { # Call the function $output = ConvertTo-Array $inputValue # Verify the output $output.GetType().Name | Should Be "Object[]" $output.length | Should Be 1 $output[0] | Should Be 42 } } context "when given a List``1 containing multiple items" { $inputValue = New-Object "System.Collections.Generic.List[Int]" $inputValue.Add(42) $inputValue.Add(43) $inputValue.Add(44) $inputValue.GetType().Name | Should Be "List``1" $inputValue.count | Should Be 3 it "returns an array containing the items" { # Call the function $output = ConvertTo-Array $inputValue # Verify the output $output.GetType().Name | Should Be "Object[]" $output.length | Should Be 3 $output[0] | Should Be 42 $output[1] | Should Be 43 $output[2] | Should Be 44 } } context "when given a single String" { $inputValue = "stringValue" $inputValue.GetType().Name | Should Be "String" it "returns an array containing the String" { # Call the function $output = ConvertTo-Array $inputValue # Verify the output $output.GetType().Name | Should Be "Object[]" $output.length | Should Be 1 $output[0] | Should Be "stringValue" } } context "when given a single Int" { $inputValue = 42 $inputValue.GetType().Name | Should BeLike "*Int*" it "returns an array containing the Int" { # Call the function $output = ConvertTo-Array $inputValue # Verify the output $output.GetType().Name | Should Be "Object[]" $output.length | Should Be 1 $output[0] | Should Be 42 } } } |