Skip to content

Commit

Permalink
Add unit test for methods with generic receivers
Browse files Browse the repository at this point in the history
  • Loading branch information
ivanruski committed Jul 1, 2022
1 parent bf94da4 commit 92e616a
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
17 changes: 17 additions & 0 deletions gocognit118_test.go
@@ -0,0 +1,17 @@
//go:build go1.18
// +build go1.18

package gocognit_test

import (
"testing"

"github.com/uudashr/gocognit"
"golang.org/x/tools/go/analysis/analysistest"
)

func TestAnalyzer_Generic(t *testing.T) {
testdata := analysistest.TestData()
gocognit.Analyzer.Flags.Set("over", "0")
analysistest.Run(t, testdata, gocognit.Analyzer, "c")
}
36 changes: 36 additions & 0 deletions testdata/src/c/c.go
@@ -0,0 +1,36 @@
package testdata

type Node[T any] struct {
}

func (n *Node[T]) String() string { // want "cognitive complexity 1 of func \\(\\*Node\\[T\\]\\)\\.String is high \\(> 0\\)"
if n != nil { // +1
return "Node"
}

return ""
} // total complexity = 1

type Pair[K any, V any] struct {
Key K
Value V
}

func (p *Pair[K, V]) String() string { // want "cognitive complexity 1 of func \\(\\*Pair\\[K, V\\]\\)\\.String is high \\(> 0\\)"
if p != nil { // +1
return "Pair"
}

return ""
} // total complexity = 1

type Triple[K any, V any, T any] struct {
}

func (t *Triple[K, V, T]) String() string { // want "cognitive complexity 1 of func \\(\\*Triple\\[K, V, T\\]\\)\\.String is high \\(> 0\\)"
if t != nil { // +1 `
return "Triple"
}

return ""
} // total complexity = 1

0 comments on commit 92e616a

Please sign in to comment.