Tests/Add-DiaHtmlNodeTable.Tests.ps1

BeforeAll {
    . $PSScriptRoot\_InitializeTests.ps1
    . $ProjectRoot\SRC\private\Add-DiaHTMLNodeTable.ps1
}

Describe Add-DiaHTMLNodeTable {
    BeforeAll {
        $Images = @{
            "Main_Logo" = "Diagrammer.png"
            "DomainController" = "AD_DC.png"
            "Subnets" = "AD_Subnets.png"
        }
        $DCsArray = @("Server-dc-01v", "Server-dc-02v", "Server-dc-03v", "Server-dc-04v", "Server-dc-05v", "Server-dc-06v")
        $SubnetsArray = @(
            @{'IP' = "192.168.5.0" },
            @{'IP' = "192.168.7.0" },
            @{'IP' = "192.168.9.0" },
            @{'IP' = "172.16.9.0" },
            @{'IP' = "172.16.18.0" },
            @{'IP' = "10.10.8.0" }
        )


        $HTMLMultiColumn = Add-DiaHTMLNodeTable -ImagesObj $Images -inputObject $DCsArray -columnSize 3 -Align 'Center' -iconType "DomainController" -MultiIcon -AditionalInfo $SubnetsArray
        $HTMLMultiColumnDebug = Add-DiaHTMLNodeTable -ImagesObj $Images -inputObject $DCsArray -columnSize 3 -Align 'Center' -iconType "DomainController" -MultiIcon -DraftMode $true -AditionalInfo $SubnetsArray

        $HTMLMultiColumnSubGraph = Add-DiaHTMLNodeTable -ImagesObj $Images -inputObject $DCsArray -columnSize 3 -Align 'Center' -iconType "DomainController" -MultiIcon -Subgraph -SubgraphIconType 'DomainController' -SubgraphLabel 'Domain Controllers' -AditionalInfo $SubnetsArray
        $HTMLMultiColumnSubGraphDebug = Add-DiaHTMLNodeTable -ImagesObj $Images -inputObject $DCsArray -columnSize 3 -Align 'Center' -iconType "DomainController" -MultiIcon -Subgraph -SubgraphIconType 'DomainController' -SubgraphLabel 'Domain Controllers' -DraftMode $true -AditionalInfo $SubnetsArray

        $HTMLMultiColumnSubGraphTop = Add-DiaHTMLNodeTable -ImagesObj $Images -inputObject $DCsArray -columnSize 3 -Align 'Center' -iconType "DomainController" -MultiIcon -Subgraph -SubgraphIconType 'DomainController' -SubgraphLabel 'Domain Controllers' -SubgraphLabelPos 'Top'  -AditionalInfo $SubnetsArray
        $HTMLMultiColumnSubGraphDebugTop = Add-DiaHTMLNodeTable -ImagesObj $Images -inputObject $DCsArray -columnSize 3 -Align 'Center' -iconType "DomainController" -MultiIcon -Subgraph -SubgraphIconType 'DomainController' -SubgraphLabel 'Domain Controllers' -DraftMode $true -SubgraphLabelPos 'Top'  -AditionalInfo $SubnetsArray



        $HTMLSingleColumn = Add-DiaHTMLNodeTable -ImagesObj $Images -inputObject $DCsArray -Align 'Center' -iconType "DomainController" -AditionalInfo $SubnetsArray
        $HTMLSingleColumnDebug = Add-DiaHTMLNodeTable -ImagesObj $Images -inputObject $DCsArray -Align 'Center' -iconType "DomainController" -DraftMode $true -AditionalInfo $SubnetsArray

        $HTMLSingleSubGraph = Add-DiaHTMLNodeTable -ImagesObj $Images -inputObject $DCsArray -columnSize 3 -Align 'Center' -iconType "DomainController" -Subgraph -SubgraphIconType 'DomainController' -SubgraphLabel 'Domain Controllers' -AditionalInfo $SubnetsArray
        $HTMLSingleSubGraphDebug = Add-DiaHTMLNodeTable -ImagesObj $Images -inputObject $DCsArray -columnSize 3 -Align 'Center' -iconType "DomainController" -Subgraph -SubgraphIconType 'DomainController' -SubgraphLabel 'Domain Controllers' -DraftMode $true -AditionalInfo $SubnetsArray

        $HTMLSingleSubGraphTop = Add-DiaHTMLNodeTable -ImagesObj $Images -inputObject $DCsArray -columnSize 3 -Align 'Center' -iconType "DomainController" -Subgraph -SubgraphIconType 'DomainController' -SubgraphLabel 'Domain Controllers' -SubgraphLabelPos 'Top' -AditionalInfo $SubnetsArray
        $HTMLSingleSubGraphDebugTop = Add-DiaHTMLNodeTable -ImagesObj $Images -inputObject $DCsArray -columnSize 3 -Align 'Center' -iconType "DomainController" -Subgraph -SubgraphIconType 'DomainController' -SubgraphLabel 'Domain Controllers' -DraftMode $true -SubgraphLabelPos 'Top' -AditionalInfo $SubnetsArray
    }

    It "Should return a multi column HTML table with icon image at each cell" {
        $HTMLMultiColumn | Should -BeExactly '<TABLE COLOR="#000000" PORT="EdgeDot" border="0" cellborder="0" cellpadding="5" cellspacing="5"><TR><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD></TR><TR><TD PORT="Server-dc-01v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-01v</B></FONT></TD><TD PORT="Server-dc-02v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-02v</B></FONT></TD><TD PORT="Server-dc-03v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-03v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.5.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.7.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.9.0</FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD></TR><TR><TD PORT="Server-dc-04v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-04v</B></FONT></TD><TD PORT="Server-dc-05v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-05v</B></FONT></TD><TD PORT="Server-dc-06v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-06v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.9.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.18.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 10.10.8.0</FONT></TD></TR></TABLE>'
    }
    It "Should return a multi column HTML table with ICON text at each cell in debug mode" {
        $HTMLMultiColumnDebug | Should -BeExactly '<TABLE PORT="EdgeDot" COLOR="red" border="1" cellborder="1" cellpadding="5" cellspacing="5"><TR><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD></TR><TR><TD PORT="Server-dc-01v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-01v</B></FONT></TD><TD PORT="Server-dc-02v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-02v</B></FONT></TD><TD PORT="Server-dc-03v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-03v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.5.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.7.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.9.0</FONT></TD></TR><TR><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD></TR><TR><TD PORT="Server-dc-04v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-04v</B></FONT></TD><TD PORT="Server-dc-05v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-05v</B></FONT></TD><TD PORT="Server-dc-06v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-06v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.9.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.18.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 10.10.8.0</FONT></TD></TR></TABLE>'
    }
    It "Should return a multi column HTML table with ICON text at each cell and Subgraph emulation" {
        $HTMLMultiColumnSubGraph | Should -BeExactly '<TABLE COLOR="#000000" PORT="EdgeDot" border="0" cellborder="0" cellpadding="5" cellspacing="5"><TR><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD></TR><TR><TD PORT="Server-dc-01v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-01v</B></FONT></TD><TD PORT="Server-dc-02v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-02v</B></FONT></TD><TD PORT="Server-dc-03v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-03v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.5.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.7.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.9.0</FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD></TR><TR><TD PORT="Server-dc-04v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-04v</B></FONT></TD><TD PORT="Server-dc-05v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-05v</B></FONT></TD><TD PORT="Server-dc-06v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-06v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.9.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.18.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 10.10.8.0</FONT></TD></TR><TR><TD ALIGN="Center" colspan="3" fixedsize="true" width="40" height="40"><IMG src="AD_DC.png"></IMG></TD></TR><TR><TD ALIGN="Center" colspan="3"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Domain Controllers</B></FONT></TD></TR></TABLE>'
    }
    It "Should return a multi column HTML table with ICON text at each cell and Subgraph emulation in debug mode" {
        $HTMLMultiColumnSubGraphDebug | Should -BeExactly '<TABLE PORT="EdgeDot" COLOR="red" border="1" cellborder="1" cellpadding="5" cellspacing="5"><TR><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD></TR><TR><TD PORT="Server-dc-01v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-01v</B></FONT></TD><TD PORT="Server-dc-02v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-02v</B></FONT></TD><TD PORT="Server-dc-03v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-03v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.5.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.7.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.9.0</FONT></TD></TR><TR><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD></TR><TR><TD PORT="Server-dc-04v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-04v</B></FONT></TD><TD PORT="Server-dc-05v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-05v</B></FONT></TD><TD PORT="Server-dc-06v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-06v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.9.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.18.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 10.10.8.0</FONT></TD></TR><TR><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="3"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>SubGraph Icon</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="3"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Domain Controllers</B></FONT></TD></TR></TABLE>'
    }
    It "Should return a multi column HTML table with ICON text at each cell and Subgraph emulation (Label at Top)" {
        $HTMLMultiColumnSubGraphTop | Should -BeExactly '<TABLE COLOR="#000000" PORT="EdgeDot" border="0" cellborder="0" cellpadding="5" cellspacing="5"><TR><TD ALIGN="Center" colspan="3" fixedsize="true" width="40" height="40"><IMG src="AD_DC.png"></IMG></TD></TR><TR><TD ALIGN="Center" colspan="3"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Domain Controllers</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD></TR><TR><TD PORT="Server-dc-01v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-01v</B></FONT></TD><TD PORT="Server-dc-02v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-02v</B></FONT></TD><TD PORT="Server-dc-03v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-03v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.5.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.7.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.9.0</FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD><TD ALIGN="Center" colspan="1"><img src="AD_DC.png"/></TD></TR><TR><TD PORT="Server-dc-04v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-04v</B></FONT></TD><TD PORT="Server-dc-05v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-05v</B></FONT></TD><TD PORT="Server-dc-06v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-06v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.9.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.18.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 10.10.8.0</FONT></TD></TR></TABLE>'
    }
    It "Should return a multi column HTML table with ICON text at each cell and Subgraph emulation in debug mode (Label at Top)" {
        $HTMLMultiColumnSubGraphDebugTop | Should -BeExactly '<TABLE PORT="EdgeDot" COLOR="red" border="1" cellborder="1" cellpadding="5" cellspacing="5"><TR><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="3"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>SubGraph Icon</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="3"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Domain Controllers</B></FONT></TD></TR><TR><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD></TR><TR><TD PORT="Server-dc-01v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-01v</B></FONT></TD><TD PORT="Server-dc-02v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-02v</B></FONT></TD><TD PORT="Server-dc-03v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-03v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.5.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.7.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.9.0</FONT></TD></TR><TR><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="1"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD></TR><TR><TD PORT="Server-dc-04v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-04v</B></FONT></TD><TD PORT="Server-dc-05v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-05v</B></FONT></TD><TD PORT="Server-dc-06v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-06v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.9.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.18.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 10.10.8.0</FONT></TD></TR></TABLE>'
    }
    It "Should return a single column HTML table with ICON at top cell" {
        $HTMLSingleColumn | Should -BeExactly '<TABLE COLOR="#000000" PORT="EdgeDot" border="0" cellborder="0" cellpadding="5" cellspacing="5"><TR><TD ALIGN="Center" colspan="6"><img src="AD_DC.png"/></TD></TR><TR><TD PORT="Server-dc-01v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-01v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.5.0</FONT></TD></TR><TR><TD PORT="Server-dc-02v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-02v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.7.0</FONT></TD></TR><TR><TD PORT="Server-dc-03v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-03v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.9.0</FONT></TD></TR><TR><TD PORT="Server-dc-04v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-04v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.9.0</FONT></TD></TR><TR><TD PORT="Server-dc-05v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-05v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.18.0</FONT></TD></TR><TR><TD PORT="Server-dc-06v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-06v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 10.10.8.0</FONT></TD></TR></TABLE>'
    }
    It "Should return a single column HTML table with ICON at top cell in debug mode" {
        $HTMLSingleColumnDebug | Should -BeExactly '<TABLE PORT="EdgeDot" COLOR="red" border="1" cellborder="1" cellpadding="5" cellspacing="5"><TR><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="6"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD></TR><TR><TD PORT="Server-dc-01v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-01v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.5.0</FONT></TD></TR><TR><TD PORT="Server-dc-02v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-02v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.7.0</FONT></TD></TR><TR><TD PORT="Server-dc-03v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-03v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.9.0</FONT></TD></TR><TR><TD PORT="Server-dc-04v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-04v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.9.0</FONT></TD></TR><TR><TD PORT="Server-dc-05v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-05v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.18.0</FONT></TD></TR><TR><TD PORT="Server-dc-06v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-06v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 10.10.8.0</FONT></TD></TR></TABLE>'
    }
    It "Should return a single column HTML table with ICON text at each cell and Subgraph emulation" {
        $HTMLSingleSubGraph | Should -BeExactly '<TABLE COLOR="#000000" PORT="EdgeDot" border="0" cellborder="0" cellpadding="5" cellspacing="5"><TR><TD ALIGN="Center" colspan="6"><img src="AD_DC.png"/></TD></TR><TR><TD PORT="Server-dc-01v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-01v</B></FONT></TD><TD PORT="Server-dc-02v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-02v</B></FONT></TD><TD PORT="Server-dc-03v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-03v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.5.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.7.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.9.0</FONT></TD></TR><TR><TD PORT="Server-dc-04v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-04v</B></FONT></TD><TD PORT="Server-dc-05v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-05v</B></FONT></TD><TD PORT="Server-dc-06v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-06v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.9.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.18.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 10.10.8.0</FONT></TD></TR><TR><TD ALIGN="Center" colspan="3" fixedsize="true" width="40" height="40"><IMG src="AD_DC.png"></IMG></TD></TR><TR><TD ALIGN="Center" colspan="3"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Domain Controllers</B></FONT></TD></TR></TABLE>'
    }
    It "Should return a single column HTML table with ICON text at each cell and Subgraph emulation in debug mode" {
        $HTMLSingleSubGraphDebug | Should -BeExactly '<TABLE PORT="EdgeDot" COLOR="red" border="1" cellborder="1" cellpadding="5" cellspacing="5"><TR><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="6"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD></TR><TR><TD PORT="Server-dc-01v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-01v</B></FONT></TD><TD PORT="Server-dc-02v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-02v</B></FONT></TD><TD PORT="Server-dc-03v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-03v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.5.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.7.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.9.0</FONT></TD></TR><TR><TD PORT="Server-dc-04v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-04v</B></FONT></TD><TD PORT="Server-dc-05v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-05v</B></FONT></TD><TD PORT="Server-dc-06v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-06v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.9.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.18.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 10.10.8.0</FONT></TD></TR><TR><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="3"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>SubGraph Icon</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="3"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Domain Controllers</B></FONT></TD></TR></TABLE>'
    }
    It "Should return a single column HTML table with ICON text at each cell and Subgraph emulation (Label at Top)" {
        $HTMLSingleSubGraphTop | Should -BeExactly '<TABLE COLOR="#000000" PORT="EdgeDot" border="0" cellborder="0" cellpadding="5" cellspacing="5"><TR><TD ALIGN="Center" colspan="3" fixedsize="true" width="40" height="40"><IMG src="AD_DC.png"></IMG></TD></TR><TR><TD ALIGN="Center" colspan="3"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Domain Controllers</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="6"><img src="AD_DC.png"/></TD></TR><TR><TD PORT="Server-dc-01v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-01v</B></FONT></TD><TD PORT="Server-dc-02v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-02v</B></FONT></TD><TD PORT="Server-dc-03v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-03v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.5.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.7.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.9.0</FONT></TD></TR><TR><TD PORT="Server-dc-04v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-04v</B></FONT></TD><TD PORT="Server-dc-05v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-05v</B></FONT></TD><TD PORT="Server-dc-06v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-06v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.9.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.18.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 10.10.8.0</FONT></TD></TR></TABLE>'
    }
    It "Should return a single column HTML table with ICON text at each cell and Subgraph emulation in debug mode (Label at Top)" {
        $HTMLSingleSubGraphDebugTop | Should -BeExactly '<TABLE PORT="EdgeDot" COLOR="red" border="1" cellborder="1" cellpadding="5" cellspacing="5"><TR><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="3"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>SubGraph Icon</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="3"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Domain Controllers</B></FONT></TD></TR><TR><TD bgcolor="#FFCCCC" ALIGN="Center" colspan="6"><FONT FACE="Segoe Ui Black" Color="#565656" POINT-SIZE="14"><B>Icon</B></FONT></TD></TR><TR><TD PORT="Server-dc-01v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-01v</B></FONT></TD><TD PORT="Server-dc-02v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-02v</B></FONT></TD><TD PORT="Server-dc-03v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-03v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.5.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.7.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 192.168.9.0</FONT></TD></TR><TR><TD PORT="Server-dc-04v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-04v</B></FONT></TD><TD PORT="Server-dc-05v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-05v</B></FONT></TD><TD PORT="Server-dc-06v" ALIGN="Center" colspan="1"><FONT POINT-SIZE="14"><B>Server-dc-06v</B></FONT></TD></TR><TR><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.9.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 172.16.18.0</FONT></TD><TD ALIGN="Center" colspan="1"><FONT POINT-SIZE="14">IP: 10.10.8.0</FONT></TD></TR></TABLE>'
    }
    It 'Should Throw a Message' {
        { Add-DiaHTMLNodeTable -inputObject $DCsArray -ImagesObj $Images -Align 'Center' -iconType "DomainControlle" } | Should -Throw -ExpectedMessage 'Error: DomainControlle IconType not found in Images object'
    }
}