package cmd import ( "encoding/json" "testing" "github.com/letsencrypt/boulder/test" ) var ( validPAConfig = []byte(`{ "dbConnect": "dummyDBConnect", "enforcePolicyWhitelist": false, "challenges": { "simpleHttp": true } }`) invalidPAConfig = []byte(`{ "dbConnect": "dummyDBConnect", "enforcePolicyWhitelist": false, "challenges": { "nonsense": true } }`) noChallengesPAConfig = []byte(`{ "dbConnect": "dummyDBConnect", "enforcePolicyWhitelist": false }`) ) func TestPAConfigUnmarshal(t *testing.T) { var pc1 PAConfig err := json.Unmarshal(validPAConfig, &pc1) test.AssertNotError(t, err, "Failed to unmarshal PAConfig") test.AssertNotError(t, pc1.CheckChallenges(), "Flagged valid challenges as bad") var pc2 PAConfig err = json.Unmarshal(invalidPAConfig, &pc2) test.AssertNotError(t, err, "Failed to unmarshal PAConfig") test.AssertError(t, pc2.CheckChallenges(), "Considered invalid challenges as good") var pc3 PAConfig err = json.Unmarshal(noChallengesPAConfig, &pc3) test.AssertNotError(t, err, "Failed to unmarshal PAConfig") test.AssertNotError(t, pc3.CheckChallenges(), "Somehow found a bad challenge among none") pc3.SetDefaultChallengesIfEmpty() test.Assert(t, len(pc3.Challenges) == 4, "Incorrect number of challenges in default set") }