Scripts/Reskit9/All Resources/cFileShare/Unit Tests/VSAR_cCreateFileShare_UnitTests.ps1

#Unit tests for VSAR_cCreateFileShare
Import-Module "C:\Program Files\WindowsPowerShell\Modules\cFileShare\DSCResources\VSAR_cCreateFileShare"

#Variable Declarations
$ShareName = "TestShare"
$Path = "C:\Test"

$PassCounter = 0
$FailCounter = 0

##############################
#
# Tests for Get-TargetResource
#
##############################

#####################################################
# Test #1 - If share exists, Ensure returns "Present"
#####################################################

#Setup for Test #1
$SetupResult = Get-SmbShare -Name $ShareName -ErrorAction SilentlyContinue
if (!$SetupResult)
{
    New-SmbShare -Path $Path -Name $ShareName
}

$Result = Get-TargetResource -ShareName $ShareName -Path $Path

if ($Result.Ensure -ne "Present")
{
    $FailCounter += 1
    "Test 1 Failed"
}
else
{
    $PassCounter += 1
    "Test 1 Passed"
}

############################################################
# Test #2 - If share does not exist, Ensure returns "Absent"
############################################################

#Setup for Test #2
$SetupResult = Get-SmbShare -Name $ShareName -ErrorAction SilentlyContinue
if ($SetupResult)
{
    Remove-SmbShare -Name $ShareName -Force
}

$Result = Get-TargetResource -ShareName $ShareName -Path $Path

if ($Result.Ensure -eq "Present")
{    
    $FailCounter += 1
    "Test 2 Failed"
}
else
{
    $PassCounter += 1
    "Test 2 Passed"
}

###############################
#
# Tests for Test-TargetResource
#
###############################

############################################################
# Test #3 - Configuration: Ensure Present
# Share does exist
# Returns True
############################################################

#Setup for Test #3
$SetupResult = Get-SmbShare -Name $ShareName -ErrorAction SilentlyContinue
if (!$SetupResult)
{
    $NewResult = New-SmbShare -Path $Path -Name $ShareName
}

$Result = Test-TargetResource -ShareName $ShareName -Path $Path -Ensure Present

if ($Result -eq $true)
{
    $PassCounter += 1
    "Test 3 Passed"
}
else
{
    $FailCounter += 1
    "Test 3 Failed"
}

############################################################
# Test #4 - Configuration: Ensure Present
# Share does not exist
# Returns False
############################################################

#Setup for Test #4
$SetupResult = Get-SmbShare -Name $ShareName -ErrorAction SilentlyContinue
if ($SetupResult)
{
    Remove-SmbShare -Name $ShareName -Force
}

$Result = Test-TargetResource -ShareName $ShareName -Path $Path -Ensure Present

if ($Result -eq $true)
{
    $FailCounter += 1
    "Test 4 Failed"
}
else
{
    $PassCounter += 1
    "Test 4 Passed"
}

############################################################
# Test #5 - Configuration: Ensure Absent
# Share does not exist
# Returns True
############################################################

#Setup for Test #5
$SetupResult = Get-SmbShare -Name $ShareName -ErrorAction SilentlyContinue
if ($SetupResult)
{
    Remove-SmbShare -Name $ShareName -Force
}

$Result = Test-TargetResource -ShareName $ShareName -Path $Path -Ensure Absent

if ($Result -eq $true)
{
    $PassCounter += 1
    "Test 5 Passed"
}
else
{
    $FailCounter += 1
    "Test 5 Failed"
}

############################################################
# Test #6 - Configuration: Ensure Absent
# Share does exists
# Returns False
############################################################

#Setup for Test #6
$SetupResult = Get-SmbShare -Name $ShareName -ErrorAction SilentlyContinue
if (!$SetupResult)
{
    $NewResult = New-SmbShare -Path $Path -Name $ShareName
}

$Result = Test-TargetResource -ShareName $ShareName -Path $Path -Ensure Absent

if ($Result -eq $true)
{
    $FailCounter += 1
    "Test 6 Failed"
}
else
{
    $PassCounter += 1
    "Test 6 Passed"
}

##############################
#
# Tests for Set-TargetResource
#
##############################

############################################################
# Test #7 - Configuration: Ensure Absent
# Share does exists
# Result: Share no longer exists
############################################################


############################################################
# Test #8 - Configuration: Ensure Absent
# Share does not exists
# Result: Share still does not exists
############################################################


############################################################
# Test #9 - Configuration: Ensure Present
# Share does exists
# Result: Share still exists
############################################################


############################################################
# Test #10 - Configuration: Ensure Present
# Path exists but share does not exist
# Result: Share exists
############################################################


############################################################
# Test #11 - Configuration: Ensure Present
# Path does not exist and share does not exist
# Result: Share exists
############################################################

#Add in the unit tests for the set share permissions

""
"Passed: $PassCounter, Failed: $FailCounter"