From 8ce4c8076dfe595c318ccea832d6f66fa69f535d Mon Sep 17 00:00:00 2001 From: KnicKnic Date: Sat, 6 Jul 2019 23:19:56 -0700 Subject: [PATCH] add testing for argument type panics --- pkg/powershell/higherops_test.go | 44 ++++++++++++++++++++++++++++++++ readme.md | 2 +- 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/pkg/powershell/higherops_test.go b/pkg/powershell/higherops_test.go index 370f6ec..4f4c1db 100644 --- a/pkg/powershell/higherops_test.go +++ b/pkg/powershell/higherops_test.go @@ -309,3 +309,47 @@ func TestCpowershellCommandWithNamedParameters(t *testing.T) { } validate(t, "", record.lines) } + +func TestCpowershellCommandArgumentTypePanic(t *testing.T) { + record.Reset() + // create a runspace (where you run your powershell statements in) + runspace := CreateRunspace(fmtPrintLogger{}, nil) + // auto cleanup your runspace + defer runspace.Delete() + + var caughtUnknownArgumentType bool + func() { + defer func() { + if r := recover(); r != nil { + if r == "unknown argument type" { + caughtUnknownArgumentType = true + } + } + }() + paramResults := runspace.ExecScript(`"Software" + "Type"`, true, nil, 1) + defer paramResults.Close() + }() + + if !caughtUnknownArgumentType { + t.Fail() + } + caughtUnknownArgumentType = false + + func() { + defer func() { + if r := recover(); r != nil { + if r == "unknown argument type" { + caughtUnknownArgumentType = true + } + } + }() + results := runspace.ExecCommand("Get-ItemPropertyValue", true, map[string]interface{}{ + "Name": 1, + }) + defer results.Close() + }() + if !caughtUnknownArgumentType { + t.Fail() + } + validate(t, "", record.lines) +} diff --git a/readme.md b/readme.md index 59a54d3..8304de7 100644 --- a/readme.md +++ b/readme.md @@ -1,6 +1,6 @@ [![Build Status](https://dev.azure.com/oneeyedelf1/powershell.native/_apis/build/status/KnicKnic.go-powershell?branchName=master)](https://dev.azure.com/oneeyedelf1/powershell.native/_build/latest?definitionId=3&branchName=master) [![Go Report Card](https://goreportcard.com/badge/github.com/KnicKnic/go-powershell)](https://goreportcard.com/report/github.com/KnicKnic/go-powershell) -[![gopherbadger](https://img.shields.io/badge/Go%20Coverage-97%25-brightgreen.svg?longCache=true&style=flat)](./scripts/code_coverage.ps1) +[![gopherbadger](https://img.shields.io/badge/Go%20Coverage-99%25-brightgreen.svg?longCache=true&style=flat)](./scripts/code_coverage.ps1) [![GoDoc](https://godoc.org/github.com/KnicKnic/go-powershell/pkg/powershell?status.svg)](https://godoc.org/github.com/KnicKnic/go-powershell/pkg/powershell) # Status