github.com/yoheimuta/protolint@v0.49.8-0.20240515023657-4ecaebb7575d/internal/addon/rules/util_test.go (about) 1 package rules_test 2 3 import ( 4 "github.com/yoheimuta/protolint/internal/linter/file" 5 "github.com/yoheimuta/protolint/internal/setting_test" 6 "github.com/yoheimuta/protolint/internal/util_test" 7 "github.com/yoheimuta/protolint/linter/rule" 8 "github.com/yoheimuta/protolint/linter/strs" 9 10 "reflect" 11 "testing" 12 ) 13 14 func testApplyFix( 15 t *testing.T, 16 r rule.Rule, 17 inputFilename string, 18 wantFilename string, 19 ) { 20 dataDir := strs.ToLowerCamelCase(r.ID()) 21 22 input, err := util_test.NewTestData(setting_test.TestDataPath("rules", dataDir, inputFilename)) 23 if err != nil { 24 t.Errorf("got err %v", err) 25 return 26 } 27 28 want, err := util_test.NewTestData(setting_test.TestDataPath("rules", dataDir, wantFilename)) 29 if err != nil { 30 t.Errorf("got err %v", err) 31 return 32 } 33 34 proto, err := file.NewProtoFile(input.FilePath, input.FilePath).Parse(false) 35 if err != nil { 36 t.Errorf(err.Error()) 37 return 38 } 39 40 _, err = r.Apply(proto) 41 if err != nil { 42 t.Errorf("got err %v, but want nil", err) 43 return 44 } 45 46 got, err := input.Data() 47 if !reflect.DeepEqual(got, want.OriginData) { 48 t.Errorf( 49 "got %s(%v), but want %s(%v)", 50 string(got), got, 51 string(want.OriginData), want.OriginData, 52 ) 53 } 54 55 err = input.Restore() 56 if err != nil { 57 t.Errorf("got err %v", err) 58 } 59 }