1+ var expect = require ( 'chai' ) . expect ;
2+ var vmssWindowsAntiMalwareExt = require ( './vmssWindowsAntiMalwareExt' ) ;
3+
4+ const virtualMachineScaleSets = [
5+ {
6+ 'name' : 'test-vmss' ,
7+ 'id' : '/subscriptions/123/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachineScaleSets/test-vmss' ,
8+ 'type' : 'Microsoft.Compute/virtualMachineScaleSets' ,
9+ 'virtualMachineProfile' : {
10+ "storageProfile" : {
11+ "osDisk" : {
12+ "osType" : "windows" ,
13+ } ,
14+ } ,
15+ 'extensionProfile' : {
16+ 'extensions' : [
17+ {
18+ 'name' : 'iaasantimalware' ,
19+ 'properties' : {
20+ 'autoUpgradeMinorVersion' : false ,
21+ 'publisher' : 'Microsoft.ManagedServices' ,
22+ 'type' : 'AADSSHLoginForLinux' ,
23+ 'typeHandlerVersion' : '1.0' ,
24+ }
25+ }
26+ ]
27+ }
28+ }
29+ } ,
30+ {
31+ 'name' : 'test-vmss' ,
32+ 'id' : '/subscriptions/123/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachineScaleSets/test-vmss' ,
33+ 'type' : 'Microsoft.Compute/virtualMachineScaleSets' ,
34+ 'virtualMachineProfile' : {
35+ "storageProfile" : {
36+ "osDisk" : {
37+ "osType" : "windows" ,
38+ } ,
39+ } ,
40+ 'extensionProfile' : {
41+ 'extensions' : [
42+ {
43+ 'name' : 'AADLoginForWindows' ,
44+ 'properties' : {
45+ 'autoUpgradeMinorVersion' : false ,
46+ 'publisher' : 'Microsoft.ManagedServices' ,
47+ 'type' : 'AADLoginForWindows' ,
48+ 'typeHandlerVersion' : '1.0' ,
49+ }
50+ }
51+ ]
52+ }
53+ }
54+ } ,
55+ {
56+ 'name' : 'test-vmss' ,
57+ 'id' : '/subscriptions/123/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachineScaleSets/test-vmss' ,
58+ 'type' : 'Microsoft.Compute/virtualMachineScaleSets' ,
59+ 'virtualMachineProfile' : {
60+ "storageProfile" : {
61+ "osDisk" : {
62+ "osType" : "windows" ,
63+ } ,
64+ } ,
65+ 'extensionProfile' : {
66+ 'extensions' : [ ]
67+ }
68+ }
69+ }
70+ ] ;
71+
72+ const createCache = ( virtualMachineScaleSets ) => {
73+ let machine = { } ;
74+ if ( virtualMachineScaleSets ) {
75+ machine [ 'data' ] = virtualMachineScaleSets ;
76+ }
77+ return {
78+ virtualMachineScaleSets : {
79+ listAll : {
80+ 'eastus' : machine
81+ }
82+ }
83+ } ;
84+ } ;
85+
86+ describe ( 'vmssWindowsAntiMalwareExt' , function ( ) {
87+ describe ( 'run' , function ( ) {
88+ it ( 'should give passing result if no virtual machine scale sets' , function ( done ) {
89+ const cache = createCache ( [ ] ) ;
90+ vmssWindowsAntiMalwareExt . run ( cache , { } , ( err , results ) => {
91+ expect ( results . length ) . to . equal ( 1 ) ;
92+ expect ( results [ 0 ] . status ) . to . equal ( 0 ) ;
93+ expect ( results [ 0 ] . message ) . to . include ( 'No existing Virtual Machine Scale Sets found' ) ;
94+ expect ( results [ 0 ] . region ) . to . equal ( 'eastus' ) ;
95+ done ( ) ;
96+ } ) ;
97+ } ) ;
98+
99+ it ( 'should give unknown result if unable to query for virtual machine scale sets' , function ( done ) {
100+ const cache = createCache ( ) ;
101+ vmssWindowsAntiMalwareExt . run ( cache , { } , ( err , results ) => {
102+ expect ( results . length ) . to . equal ( 1 ) ;
103+ expect ( results [ 0 ] . status ) . to . equal ( 3 ) ;
104+ expect ( results [ 0 ] . message ) . to . include ( 'Unable to query for Virtual Machine Scale Sets' ) ;
105+ expect ( results [ 0 ] . region ) . to . equal ( 'eastus' ) ;
106+ done ( ) ;
107+ } ) ;
108+ } ) ;
109+
110+ it ( 'should give passing result if windows Virtual Machine Scale Set has anti malware extension installed' , function ( done ) {
111+ const cache = createCache ( [ virtualMachineScaleSets [ 0 ] ] ) ;
112+ vmssWindowsAntiMalwareExt . run ( cache , { } , ( err , results ) => {
113+ expect ( results . length ) . to . equal ( 1 ) ;
114+ expect ( results [ 0 ] . status ) . to . equal ( 0 ) ;
115+ expect ( results [ 0 ] . message ) . to . include ( 'Windows Virtual Machine Scale Set has IaaS Antimalware extension installed' ) ;
116+ expect ( results [ 0 ] . region ) . to . equal ( 'eastus' ) ;
117+ done ( ) ;
118+ } ) ;
119+ } ) ;
120+ it ( 'should give failing result if Virtual Machine Scale Set does not have anti malware extension installed' , function ( done ) {
121+ const cache = createCache ( [ virtualMachineScaleSets [ 1 ] ] ) ;
122+ vmssWindowsAntiMalwareExt . run ( cache , { } , ( err , results ) => {
123+ expect ( results . length ) . to . equal ( 1 ) ;
124+ expect ( results [ 0 ] . status ) . to . equal ( 2 ) ;
125+ expect ( results [ 0 ] . message ) . to . include ( 'Windows Virtual Machine Scale Set does not have IaaS Antimalware extension installed' ) ;
126+ expect ( results [ 0 ] . region ) . to . equal ( 'eastus' ) ;
127+ done ( ) ;
128+ } ) ;
129+ } ) ;
130+ it ( 'should give failing result if no extensions installed' , function ( done ) {
131+ const cache = createCache ( [ virtualMachineScaleSets [ 2 ] ] ) ;
132+ vmssWindowsAntiMalwareExt . run ( cache , { } , ( err , results ) => {
133+ expect ( results . length ) . to . equal ( 1 ) ;
134+ expect ( results [ 0 ] . status ) . to . equal ( 2 ) ;
135+ expect ( results [ 0 ] . message ) . to . include ( 'No VMSS Extensions found' ) ;
136+ expect ( results [ 0 ] . region ) . to . equal ( 'eastus' ) ;
137+ done ( ) ;
138+ } ) ;
139+ } ) ;
140+ } ) ;
141+ } ) ;
0 commit comments