github.com/magnusbaeck/logstash-filter-verifier/v2@v2.0.0-pre.1/logstash/env_test.go (about) 1 // Copyright (c) 2016 Magnus Bäck <magnus@noun.se> 2 3 package logstash 4 5 import ( 6 "reflect" 7 "testing" 8 ) 9 10 func TestGetLimitedEnvironment(t *testing.T) { 11 cases := []struct { 12 original []string 13 kept []string 14 expected []string 15 }{ 16 // Only TZ=UTC set if there are no keepers. 17 { 18 []string{ 19 "A=B", 20 "C=D", 21 }, 22 []string{}, 23 []string{ 24 "TZ=UTC", 25 }, 26 }, 27 // Original variables can be kept. 28 { 29 []string{ 30 "A=B", 31 "C=D", 32 }, 33 []string{ 34 "A", 35 }, 36 []string{ 37 "A=B", 38 "TZ=UTC", 39 }, 40 }, 41 // Multiple original variables 42 { 43 []string{ 44 "A=B", 45 "C=D", 46 "E=F", 47 }, 48 []string{ 49 "A", 50 "E", 51 }, 52 []string{ 53 "A=B", 54 "E=F", 55 "TZ=UTC", 56 }, 57 }, 58 // TZ can be overridden. 59 { 60 []string{ 61 "TZ=Europe/Stockholm", 62 }, 63 []string{ 64 "TZ", 65 }, 66 []string{ 67 "TZ=Europe/Stockholm", 68 }, 69 }, 70 // Listing a keeper that isn't set is okay. 71 { 72 []string{ 73 "A=B", 74 }, 75 []string{ 76 "UNDEFINED_KEEPER", 77 }, 78 []string{ 79 "TZ=UTC", 80 }, 81 }, 82 } 83 for i, c := range cases { 84 actual := getLimitedEnvironment(c.original, c.kept) 85 if !reflect.DeepEqual(c.expected, actual) { 86 t.Errorf("Test %d:\nExpected:\n%#v\nGot:\n%#v", i, c.expected, actual) 87 } 88 } 89 }