Skip to content

Commit

Permalink
rename tests
Browse files Browse the repository at this point in the history
  • Loading branch information
4meepo committed Mar 26, 2023
1 parent d8a15bc commit ffa1884
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 26 deletions.
38 changes: 23 additions & 15 deletions tagalign_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,42 @@ import (
"golang.org/x/tools/go/analysis/analysistest"
)

func TestAnalyzer(t *testing.T) {
// unsort example
func Test_alignOnly(t *testing.T) {
// only align
a := NewAnalyzer()
unsort, err := filepath.Abs("testdata/unsort")
unsort, err := filepath.Abs("testdata/align")
assert.NoError(t, err)
analysistest.Run(t, unsort, a)
}
func TestAnalyzerWithOrder(t *testing.T) {
// sort with fixed order
a := NewAnalyzer(WithSort("json", "yaml", "xml"))

func Test_sortOnly(t *testing.T) {
a := NewAnalyzer(WithAlign(false), WithSort(nil...))
sort, err := filepath.Abs("testdata/sort")
assert.NoError(t, err)
analysistest.Run(t, sort, a)
}

func Test_sortWithOrder(t *testing.T) {
// test disable align but enable sort
a := NewAnalyzer(WithAlign(false), WithSort("xml", "json", "yaml"))
sort, err := filepath.Abs("testdata/sortorder")
assert.NoError(t, err)
analysistest.Run(t, sort, a)
}

func Test_alignAndSortWithOrder(t *testing.T) {
// align and sort with fixed order
a := NewAnalyzer(WithSort("json", "yaml", "xml"))
sort, err := filepath.Abs("testdata/alignsortorder")
assert.NoError(t, err)
analysistest.Run(t, sort, a)
}
func TestSprintf(t *testing.T) {
format := alignFormat(20)
assert.Equal(t, "%-20s", format)
}

func Test_sortByFixedOrder(t *testing.T) {
func Test_sortBy(t *testing.T) {
tags, err := structtag.Parse(`zip:"foo" json:"foo,omitempty" yaml:"bar" binding:"required" xml:"baz" gorm:"column:foo"`)
assert.NoError(t, err)

Expand All @@ -40,11 +56,3 @@ func Test_sortByFixedOrder(t *testing.T) {
assert.Equal(t, "gorm", tags.Tags()[4].Key)
assert.Equal(t, "zip", tags.Tags()[5].Key)
}

func Test_disableAlign(t *testing.T) {
// test disable align but enable sort
a := NewAnalyzer(WithAlign(false), WithSort("xml", "json", "yaml"))
sort, err := filepath.Abs("testdata/noalign")
assert.NoError(t, err)
analysistest.Run(t, sort, a)
}
File renamed without changes.
13 changes: 13 additions & 0 deletions testdata/alignsortorder/example.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package alignsortorder

type AlignAndSortWithOrderExample struct {
Foo int `json:"foo,omitempty" yaml:"bar" xml:"baz" binding:"required" gorm:"column:foo" zip:"foo" validate:"required"` // want `tag is not aligned, should be: json:"foo,omitempty" yaml:"bar" xml:"baz" binding:"required" gorm:"column:foo" validate:"required" zip:"foo"`
Bar int `validate:"required" yaml:"foo" xml:"bar" binding:"required" json:"bar,omitempty" gorm:"column:bar" zip:"bar" ` // want `tag is not aligned, should be: json:"bar,omitempty" yaml:"foo" xml:"bar" binding:"required" gorm:"column:bar" validate:"required" zip:"bar"`
FooBar int `gorm:"column:bar" validate:"required" xml:"bar" binding:"required" json:"bar,omitempty" zip:"bar" yaml:"foo"` // want `tag is not aligned, should be: json:"bar,omitempty" yaml:"foo" xml:"bar" binding:"required" gorm:"column:bar" validate:"required" zip:"bar"`
}

type AlignAndSortWithOrderExample2 struct {
Foo int ` xml:"baz" json:"foo,omitempty" yaml:"bar" zip:"foo" binding:"required" gorm:"column:foo" validate:"required"` // want `tag is not aligned , should be: json:"foo,omitempty" yaml:"bar" xml:"baz" binding:"required" gorm:"column:foo" validate:"required" zip:"foo"`

Bar int `validate:"required" gorm:"column:bar" yaml:"foo" xml:"bar" binding:"required" json:"bar,omitempty" zip:"bar" ` // want `tag is not aligned , should be: json:"bar,omitempty" yaml:"foo" xml:"bar" binding:"required" gorm:"column:bar" validate:"required" zip:"bar"`
}
18 changes: 9 additions & 9 deletions testdata/sort/example.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package testdata
package sort

type SortExample struct {
Foo int `json:"foo,omitempty" yaml:"bar" xml:"baz" binding:"required" gorm:"column:foo" zip:"foo" validate:"required"` // want `tag is not aligned, should be: json:"foo,omitempty" yaml:"bar" xml:"baz" binding:"required" gorm:"column:foo" validate:"required" zip:"foo"`
Bar int `validate:"required" yaml:"foo" xml:"bar" binding:"required" json:"bar,omitempty" gorm:"column:bar" zip:"bar" ` // want `tag is not aligned, should be: json:"bar,omitempty" yaml:"foo" xml:"bar" binding:"required" gorm:"column:bar" validate:"required" zip:"bar"`
FooBar int `gorm:"column:bar" validate:"required" xml:"bar" binding:"required" json:"bar,omitempty" zip:"bar" yaml:"foo"` // want `tag is not aligned, should be: json:"bar,omitempty" yaml:"foo" xml:"bar" binding:"required" gorm:"column:bar" validate:"required" zip:"bar"`
}
import "time"

type SortExample2 struct {
Foo int ` xml:"baz" json:"foo,omitempty" yaml:"bar" zip:"foo" binding:"required" gorm:"column:foo" validate:"required"` // want `tag is not aligned , should be: json:"foo,omitempty" yaml:"bar" xml:"baz" binding:"required" gorm:"column:foo" validate:"required" zip:"foo"`
type TagAlignExampleSortOnlyKO struct {
Foo time.Time `xml:"foo" json:"foo,omitempty" yaml:"foo" gorm:"column:foo" validate:"required" zip:"foo"` // want `gorm:"column:foo" json:"foo,omitempty" validate:"required" xml:"foo" yaml:"foo" zip:"foo"`
FooBar struct{} `gorm:"column:fooBar" validate:"required" zip:"fooBar" xml:"fooBar" json:"fooBar,omitempty" yaml:"fooBar"` // want `gorm:"column:fooBar" json:"fooBar,omitempty" validate:"required" xml:"fooBar" yaml:"fooBar" zip:"fooBar"`
}

Bar int `validate:"required" gorm:"column:bar" yaml:"foo" xml:"bar" binding:"required" json:"bar,omitempty" zip:"bar" ` // want `tag is not aligned , should be: json:"bar,omitempty" yaml:"foo" xml:"bar" binding:"required" gorm:"column:bar" validate:"required" zip:"bar"`
type TagAlignExampleSortOnlyOK struct {
Foo time.Time `gorm:"column:foo" json:"foo,omitempty" validate:"required" xml:"foo" yaml:"foo" zip:"foo"`
FooBar struct{} `gorm:"column:fooBar" json:"fooBar,omitempty" validate:"required" xml:"fooBar" yaml:"fooBar" zip:"fooBar"`
}
4 changes: 2 additions & 2 deletions testdata/noalign/example.go → testdata/sortorder/example.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package noalign
package sortorder

type SortOnlyExample struct {
type SortWithOrderExample struct {
// not aligned but sorted, should not be reported
Foo int `xml:"baz" json:"foo,omitempty" yaml:"bar" binding:"required" gorm:"column:foo" validate:"required" zip:"foo" `
Bar int `xml:"bar" json:"bar,omitempty" yaml:"foo" gorm:"column:bar" validate:"required" zip:"bar" `
Expand Down

0 comments on commit ffa1884

Please sign in to comment.