@ -26,26 +26,33 @@ var lintError LintError = fmt.Errorf("Foobar")
func TestRunLinterRule ( t * testing . T ) {
func TestRunLinterRule ( t * testing . T ) {
var tests = [ ] struct {
var tests = [ ] struct {
Severity int
Severity int
LintError error
LintError error
ExpectedMessages int
ExpectedMessages int
ExpectedReturn bool
ExpectedReturn bool
ExpectedHighestSeverity int
} {
} {
{ Error Sev, lintError , 1 , false } ,
{ Info Sev, lintError , 1 , false , InfoSev } ,
{ WarningSev , lintError , 2 , false },
{ WarningSev , lintError , 2 , false , WarningSev },
{ Info Sev, lintError , 3 , false } ,
{ Error Sev, lintError , 3 , false , ErrorSev } ,
// No error so it returns true
// No error so it returns true
{ ErrorSev , nil , 3 , true } ,
{ ErrorSev , nil , 3 , true , ErrorSev } ,
// Retains highest severity
{ InfoSev , lintError , 4 , false , ErrorSev } ,
// Invalid severity values
// Invalid severity values
{ 4 , lintError , 3 , false } ,
{ 4 , lintError , 4, false , ErrorSev } ,
{ 22 , lintError , 3, false } ,
{ 22 , lintError , 4, false , ErrorSev } ,
{ - 1 , lintError , 3, false } ,
{ - 1 , lintError , 4, false , ErrorSev } ,
}
}
for _ , test := range tests {
for _ , test := range tests {
isValid := linter . RunLinterRule ( test . Severity , test . LintError )
isValid := linter . RunLinterRule ( test . Severity , test . LintError )
if len ( linter . Messages ) != test . ExpectedMessages {
if len ( linter . Messages ) != test . ExpectedMessages {
t . Errorf ( "RunLinterRule(%d, %v), linter.Messages should have now %d message, we got %d" , test . Severity , test . LintError , test . ExpectedMessages , len ( linter . Messages ) )
t . Errorf ( "RunLinterRule(%d, %v), linter.Messages should now have %d message, we got %d" , test . Severity , test . LintError , test . ExpectedMessages , len ( linter . Messages ) )
}
if linter . HighestSeverity != test . ExpectedHighestSeverity {
t . Errorf ( "RunLinterRule(%d, %v), linter.HighestSeverity should be %d, we got %d" , test . Severity , test . LintError , test . ExpectedHighestSeverity , linter . HighestSeverity )
}
}
if isValid != test . ExpectedReturn {
if isValid != test . ExpectedReturn {