github.com/googleapis/api-linter@v1.65.2/rules/aip0132/request_show_deleted_required_test.go (about)

     1  package aip0132
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/googleapis/api-linter/rules/internal/testutils"
     7  )
     8  
     9  func TestRequestShowDeletedRequired(t *testing.T) {
    10  	tests := []struct {
    11  		name     string
    12  		Message  string
    13  		Method   string
    14  		Field    string
    15  		problems testutils.Problems
    16  	}{
    17  		{"Valid", "ListBooksRequest", "UndeleteBook", `bool show_deleted = 1;`, nil},
    18  		{"Invalid", "ListBooksRequest", "UndeleteBook", ``, testutils.Problems{{Message: "show_deleted"}}},
    19  		{"IrrelevantNoSoftDelete", "ListBooksRequest", "GetBook", ``, nil},
    20  		{"IrrelevantMessage", "EnumerateBooksRequest", "UndeleteBook", "", nil},
    21  	}
    22  
    23  	for _, test := range tests {
    24  		t.Run(test.name, func(t *testing.T) {
    25  			f := testutils.ParseProto3Tmpl(t, `
    26  				service Library {
    27  					rpc {{.Method}}({{.Method}}Request) returns (Book);
    28  				}
    29  				message Book {}
    30  				message {{.Message}} {
    31  					{{.Field}}
    32  				}
    33  				message ListBooksResponse {
    34  					repeated Book books = 1;
    35  				}
    36  				message {{.Method}}Request {}
    37  			`, test)
    38  			problems := requestShowDeletedRequired.Lint(f)
    39  			if diff := test.problems.SetDescriptor(f.GetMessageTypes()[1]).Diff(problems); diff != "" {
    40  				t.Error(diff)
    41  			}
    42  		})
    43  	}
    44  }
    45  
    46  // Regression test for https://github.com/googleapis/api-linter/issues/854.
    47  func TestRequestShowDeletedRequired_NonMessageType(t *testing.T) {
    48  	f := testutils.ParseProto3Tmpl(t, `
    49  		message ListBooksRequest {}
    50  		message ListBooksResponse {
    51  			repeated string books = 1;
    52  		}
    53  	`, nil)
    54  	problems := requestShowDeletedRequired.Lint(f)
    55  	if diff := (testutils.Problems{}).SetDescriptor(f.GetMessageTypes()[0]).Diff(problems); diff != "" {
    56  		t.Error(diff)
    57  	}
    58  }