github.com/letsencrypt/boulder@v0.20251208.0/cmd/admin/admin_test.go (about) 1 package main 2 3 import ( 4 "testing" 5 6 "github.com/letsencrypt/boulder/test" 7 ) 8 9 func Test_findActiveInputMethodFlag(t *testing.T) { 10 tests := []struct { 11 name string 12 setInputs map[string]bool 13 expected string 14 wantErr bool 15 }{ 16 { 17 name: "No active flags", 18 setInputs: map[string]bool{ 19 "-private-key": false, 20 "-spki-file": false, 21 "-cert-file": false, 22 }, 23 expected: "", 24 wantErr: true, 25 }, 26 { 27 name: "Multiple active flags", 28 setInputs: map[string]bool{ 29 "-private-key": true, 30 "-spki-file": true, 31 "-cert-file": false, 32 }, 33 expected: "", 34 wantErr: true, 35 }, 36 { 37 name: "Single active flag", 38 setInputs: map[string]bool{ 39 "-private-key": true, 40 "-spki-file": false, 41 "-cert-file": false, 42 }, 43 expected: "-private-key", 44 wantErr: false, 45 }, 46 } 47 48 for _, tc := range tests { 49 t.Run(tc.name, func(t *testing.T) { 50 result, err := findActiveInputMethodFlag(tc.setInputs) 51 if tc.wantErr { 52 test.AssertError(t, err, "findActiveInputMethodFlag() should have errored") 53 } else { 54 test.AssertNotError(t, err, "findActiveInputMethodFlag() should not have errored") 55 test.AssertEquals(t, result, tc.expected) 56 } 57 }) 58 } 59 }