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  }