Tests/EAI/EAISdtFilter.Tests.ps1
|
BeforeAll { if ($Module) { $script:DevModuleName = Import-Module $Module -Force -PassThru | Select-Object -ExpandProperty Name } else { $devModule = Join-Path $PSScriptRoot '..' '..' 'Dev.Logic.Monitor.psd1' $script:DevModuleName = Import-Module $devModule -Force -PassThru | Select-Object -ExpandProperty Name } } Describe 'EAISdt filter helpers' { It 'Builds an EQUALS condition' { InModuleScope -ModuleName $script:DevModuleName { $condition = New-EAISdtFilterCondition -Operator 'EQUALS' ` -FieldReference (New-EAISdtFilterFieldReference -Field 'cf.eventSource' -Type 'string') ` -Value 'LogicMonitor' $condition.EQUALS[0].field | Should -Be 'cf.eventSource' $condition.EQUALS[1] | Should -Be 'LogicMonitor' } } It 'Builds a complete filter object' { InModuleScope -ModuleName $script:DevModuleName { $expression = New-EAISdtFilterCondition -Operator 'IN' ` -FieldReference (New-EAISdtFilterFieldReference -Field 'cf.eventSeverity' -Type 'integer') ` -Value @(4, 5, 6) $filter = New-EAISdtFilterObject -Expression $expression $filter.schemaName | Should -Be 'filterCondition' $filter.schemaVersion | Should -Be '4' @($filter.expression.IN[1]) | Should -Be @(4, 5, 6) } } It 'Builds unary NOT_EMPTY conditions' { InModuleScope -ModuleName $script:DevModuleName { $field = New-EAISdtFilterFieldReference -Field 'extra.lm_auto_network_names' -Type 'string' $condition = New-EAISdtFilterCondition -Operator 'NOT_EMPTY' -FieldReference $field $condition.NOT_EMPTY.Count | Should -Be 1 $condition.NOT_EMPTY[0].field | Should -Be 'extra.lm_auto_network_names' } } It 'Exposes string operators supported by the Edwin UI' { InModuleScope -ModuleName $script:DevModuleName { $Script:EAISdtFilterOperatorsByFieldType['string'] | Should -Be @( 'EQUALS', 'NOT_EQUALS', 'CONTAINS', 'NOT_CONTAINS', 'IN', 'NOT_IN', 'IS_EMPTY', 'NOT_EMPTY' ) } } It 'Exposes integer operators supported by the Edwin UI' { InModuleScope -ModuleName $script:DevModuleName { $Script:EAISdtFilterOperatorsByFieldType['integer'] | Should -Contain 'GREATER_THAN_EQUAL' $Script:EAISdtFilterOperatorsByFieldType['integer'] | Should -Contain 'LESS_THAN_EQUAL' } } It 'Exposes long timestamp operators supported by the Edwin UI' { InModuleScope -ModuleName $script:DevModuleName { $Script:EAISdtFilterOperatorsByFieldType['long'] | Should -Be @( 'GREATER_THAN', 'LESS_THAN', 'OLDER_THAN', 'WITHIN', 'IS_EMPTY', 'NOT_EMPTY' ) } } } |