@@ -288,6 +288,305 @@ Describe 'Check env mocking' -ForEach @(
288288 }
289289}
290290
291+ Describe ' Check env mocking' - ForEach @ (
292+ @ {
293+ Arguments = @ {
294+ Value = ' Mocked Value' ;
295+ }
296+ MockedTargets = @ ([EnvironmentVariableTarget ]::Process )
297+ InitialValue = ' Initial Value' ;
298+ ValueInsideTheScript = ' Mocked Value' ;
299+ Script = { }
300+ }
301+ @ {
302+ Arguments = @ {
303+ Value = ' Mocked Value'
304+ }
305+ MockedTargets = @ ([EnvironmentVariableTarget ]::Process )
306+ InitialValue = $null ;
307+ ValueInsideTheScript = ' Mocked Value' ;
308+ Script = { }
309+ }
310+ @ {
311+ Arguments = @ { }
312+ MockedTargets = @ ([EnvironmentVariableTarget ]::Process )
313+ InitialValue = ' Initial Value' ;
314+ ValueInsideTheScript = ' Initial Value' ;
315+ Script = { }
316+ }
317+ @ {
318+ MockedTargets = @ ([EnvironmentVariableTarget ]::Process )
319+ Script = { }
320+ }
321+ @ {
322+ Arguments = @ {
323+ Value = ' Mocked Value'
324+ }
325+ MockedTargets = @ ([EnvironmentVariableTarget ]::Process )
326+ InitialValue = ' Initial Value' ;
327+ ValueInsideTheScript = ' Mocked Value' ;
328+ Script = {
329+ foreach ($variable in $args [0 ]) {
330+ [Environment ]::SetEnvironmentVariable($variable , ' Some updated value' )
331+ }
332+ }
333+ }
334+ @ {
335+ Arguments = @ { }
336+ MockedTargets = @ ([EnvironmentVariableTarget ]::Process )
337+ InitialValue = ' Initial Value' ;
338+ ValueInsideTheScript = ' Initial Value' ;
339+ Script = {
340+ foreach ($variable in $args [0 ]) {
341+ [Environment ]::SetEnvironmentVariable($variable , ' Some updated value' )
342+ }
343+ }
344+ }
345+ @ {
346+ Arguments = @ {
347+ Value = ' Mocked Value'
348+ }
349+ MockedTargets = @ ([EnvironmentVariableTarget ]::Process )
350+ InitialValue = $null ;
351+ ValueInsideTheScript = ' Mocked Value' ;
352+ Script = {
353+ foreach ($variable in $args [0 ]) {
354+ [Environment ]::SetEnvironmentVariable($variable , ' Some updated value' )
355+ }
356+ }
357+ }
358+ @ {
359+ Arguments = @ { }
360+ MockedTargets = @ ([EnvironmentVariableTarget ]::Process )
361+ InitialValue = $null ;
362+ ValueInsideTheScript = $null ;
363+ Script = {
364+ foreach ($variable in $args [0 ]) {
365+ [Environment ]::SetEnvironmentVariable($variable , ' Some updated value' )
366+ }
367+ }
368+ }
369+ @ {
370+ Arguments = @ {
371+ Value = ' Mocked Value' ;
372+ Targets = @ ([EnvironmentVariableTarget ]::User)
373+ }
374+ MockedTargets = @ ([EnvironmentVariableTarget ]::User)
375+ InitialValue = ' Initial Value' ;
376+ ValueInsideTheScript = ' Mocked Value' ;
377+ Script = { }
378+ }
379+ @ {
380+ Arguments = @ {
381+ Value = ' Mocked Value' ;
382+ Targets = @ ([EnvironmentVariableTarget ]::User)
383+ }
384+ MockedTargets = @ ([EnvironmentVariableTarget ]::User)
385+ InitialValue = $null ;
386+ ValueInsideTheScript = ' Mocked Value' ;
387+ Script = { }
388+ }
389+ @ {
390+ Arguments = @ {
391+ Targets = @ ([EnvironmentVariableTarget ]::User)
392+ }
393+ MockedTargets = @ ([EnvironmentVariableTarget ]::User)
394+ InitialValue = ' Initial Value' ;
395+ ValueInsideTheScript = ' Initial Value' ;
396+ Script = { }
397+ }
398+ @ {
399+ Arguments = @ {
400+ Targets = @ ([EnvironmentVariableTarget ]::User)
401+ }
402+ MockedTargets = @ ([EnvironmentVariableTarget ]::User)
403+ Script = { }
404+ }
405+ @ {
406+ Arguments = @ {
407+ Targets = @ ([EnvironmentVariableTarget ]::User)
408+ Value = ' Mocked Value'
409+ }
410+ MockedTargets = @ ([EnvironmentVariableTarget ]::User)
411+ InitialValue = ' Initial Value' ;
412+ ValueInsideTheScript = ' Mocked Value' ;
413+ Script = {
414+ foreach ($variable in $args [0 ]) {
415+ [Environment ]::SetEnvironmentVariable($variable , ' Some updated value' , ' User' )
416+ }
417+ }
418+ }
419+ @ {
420+ Arguments = @ {
421+ Targets = @ ([EnvironmentVariableTarget ]::User)
422+ }
423+ MockedTargets = @ ([EnvironmentVariableTarget ]::User)
424+ InitialValue = ' Initial Value' ;
425+ ValueInsideTheScript = ' Initial Value' ;
426+ Script = {
427+ foreach ($variable in $args [0 ]) {
428+ [Environment ]::SetEnvironmentVariable($variable , ' Some updated value' , ' User' )
429+ }
430+ }
431+ }
432+ @ {
433+ Arguments = @ {
434+ Value = ' Mocked Value' ;
435+ Targets = @ ([EnvironmentVariableTarget ]::User)
436+ }
437+ MockedTargets = @ ([EnvironmentVariableTarget ]::User)
438+ InitialValue = $null ;
439+ ValueInsideTheScript = ' Mocked Value' ;
440+ Script = {
441+ foreach ($variable in $args [0 ]) {
442+ [Environment ]::SetEnvironmentVariable($variable , ' Some updated value' , ' User' )
443+ }
444+ }
445+ }
446+ @ {
447+ Arguments = @ {
448+ Targets = @ ([EnvironmentVariableTarget ]::User)
449+ }
450+ MockedTargets = @ ([EnvironmentVariableTarget ]::User)
451+ InitialValue = $null ;
452+ ValueInsideTheScript = $null ;
453+ Script = {
454+ foreach ($variable in $args [0 ]) {
455+ [Environment ]::SetEnvironmentVariable($variable , ' Some updated value' , ' User' )
456+ }
457+ }
458+ }
459+
460+ @ {
461+ Arguments = @ {
462+ Value = ' Mocked Value' ;
463+ Targets = @ ([EnvironmentVariableTarget ]::User, [EnvironmentVariableTarget ]::Process )
464+ }
465+ MockedTargets = @ ([EnvironmentVariableTarget ]::User, [EnvironmentVariableTarget ]::Process )
466+ InitialValue = ' Initial Value' ;
467+ ValueInsideTheScript = ' Mocked Value' ;
468+ Script = { }
469+ }
470+ @ {
471+ Arguments = @ {
472+ Value = ' Mocked Value' ;
473+ Targets = @ ([EnvironmentVariableTarget ]::User, [EnvironmentVariableTarget ]::Process )
474+ }
475+ MockedTargets = @ ([EnvironmentVariableTarget ]::User, [EnvironmentVariableTarget ]::Process )
476+ InitialValue = $null ;
477+ ValueInsideTheScript = ' Mocked Value' ;
478+ Script = { }
479+ }
480+ @ {
481+ Arguments = @ {
482+ Targets = @ ([EnvironmentVariableTarget ]::User, [EnvironmentVariableTarget ]::Process )
483+ }
484+ MockedTargets = @ ([EnvironmentVariableTarget ]::User, [EnvironmentVariableTarget ]::Process )
485+ InitialValue = ' Initial Value' ;
486+ ValueInsideTheScript = ' Initial Value' ;
487+ Script = { }
488+ }
489+ @ {
490+ Arguments = @ {
491+ Targets = @ ([EnvironmentVariableTarget ]::User, [EnvironmentVariableTarget ]::Process )
492+ }
493+ MockedTargets = @ ([EnvironmentVariableTarget ]::User, [EnvironmentVariableTarget ]::Process )
494+ Script = { }
495+ }
496+ @ {
497+ Arguments = @ {
498+ Targets = @ ([EnvironmentVariableTarget ]::User, [EnvironmentVariableTarget ]::Process )
499+ Value = ' Mocked Value'
500+ }
501+ MockedTargets = @ ([EnvironmentVariableTarget ]::User, [EnvironmentVariableTarget ]::Process )
502+ InitialValue = ' Initial Value' ;
503+ ValueInsideTheScript = ' Mocked Value' ;
504+ Script = {
505+ foreach ($variable in $args [0 ]) {
506+ [Environment ]::SetEnvironmentVariable($variable , ' Some updated value' , ' User' )
507+ [Environment ]::SetEnvironmentVariable($variable , ' Some updated value' , ' Process' )
508+ }
509+ }
510+ }
511+ @ {
512+ Arguments = @ {
513+ Targets = @ ([EnvironmentVariableTarget ]::User, [EnvironmentVariableTarget ]::Process )
514+ }
515+ MockedTargets = @ ([EnvironmentVariableTarget ]::User, [EnvironmentVariableTarget ]::Process )
516+ InitialValue = ' Initial Value' ;
517+ ValueInsideTheScript = ' Initial Value' ;
518+ Script = {
519+ foreach ($variable in $args [0 ]) {
520+ [Environment ]::SetEnvironmentVariable($variable , ' Some updated value' , ' User' )
521+ [Environment ]::SetEnvironmentVariable($variable , ' Some updated value' , ' Process' )
522+ }
523+ }
524+ }
525+ @ {
526+ Arguments = @ {
527+ Value = ' Mocked Value' ;
528+ Targets = @ ([EnvironmentVariableTarget ]::User, [EnvironmentVariableTarget ]::Process )
529+ }
530+ MockedTargets = @ ([EnvironmentVariableTarget ]::User, [EnvironmentVariableTarget ]::Process )
531+ InitialValue = $null ;
532+ ValueInsideTheScript = ' Mocked Value' ;
533+ Script = {
534+ foreach ($variable in $args [0 ]) {
535+ [Environment ]::SetEnvironmentVariable($variable , ' Some updated value' , ' User' )
536+ [Environment ]::SetEnvironmentVariable($variable , ' Some updated value' , ' Process' )
537+ }
538+ }
539+ }
540+ @ {
541+ Arguments = @ {
542+ Targets = @ ([EnvironmentVariableTarget ]::User, [EnvironmentVariableTarget ]::Process )
543+ }
544+ MockedTargets = @ ([EnvironmentVariableTarget ]::User, [EnvironmentVariableTarget ]::Process )
545+ InitialValue = $null ;
546+ ValueInsideTheScript = $null ;
547+ Script = {
548+ [Environment ]::SetEnvironmentVariable($args [0 ], ' Some updated value' , ' User' )
549+ [Environment ]::SetEnvironmentVariable($args [0 ], ' Some updated value' , ' Process' )
550+ }
551+ }
552+ ) {
553+ BeforeAll {
554+ $variables = @ (
555+ " test_$ ( New-Guid ) "
556+ " test_$ ( New-Guid ) "
557+ " test_$ ( New-Guid ) "
558+ )
559+ foreach ($target in $MockedTargets ) {
560+ foreach ($environmentVariableName in $variables ) {
561+ [Environment ]::SetEnvironmentVariable($environmentVariableName , $InitialValue , $target )
562+ }
563+ }
564+ }
565+ It ' Test <MockedTargets>' {
566+ Mock- EnvironmentVariable - Variable $variables @arguments - Fixture {
567+ foreach ($target in $MockedTargets ) {
568+ foreach ($environmentVariableName in $variables ) {
569+ [Environment ]::GetEnvironmentVariable($environmentVariableName , $target ) | Should - Be $ValueInsideTheScript
570+ }
571+ }
572+ Invoke-Command - ScriptBlock $script - ArgumentList $variables
573+ }
574+ foreach ($target in $MockedTargets ) {
575+ foreach ($environmentVariableName in $variables ) {
576+ [Environment ]::GetEnvironmentVariable($environmentVariableName , $target ) | Should - Be $InitialValue
577+ }
578+ }
579+ }
580+ AfterAll {
581+ foreach ($target in $MockedTargets ) {
582+ foreach ($environmentVariableName in $variables ) {
583+ [Environment ]::SetEnvironmentVariable($environmentVariableName , $null , $target )
584+ }
585+ }
586+ }
587+ }
588+
589+
291590Describe ' Should throw' - ForEach @ (
292591 @ {
293592 InitialValue = ' Initial Value' ;
0 commit comments