github.com/jimmyx0x/go-ethereum@v1.10.28/cmd/abigen/namefilter_test.go (about)

     1  package main
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestNameFilter(t *testing.T) {
    11  	_, err := newNameFilter("Foo")
    12  	require.Error(t, err)
    13  	_, err = newNameFilter("too/many:colons:Foo")
    14  	require.Error(t, err)
    15  
    16  	f, err := newNameFilter("a/path:A", "*:B", "c/path:*")
    17  	require.NoError(t, err)
    18  
    19  	for _, tt := range []struct {
    20  		name  string
    21  		match bool
    22  	}{
    23  		{"a/path:A", true},
    24  		{"unknown/path:A", false},
    25  		{"a/path:X", false},
    26  		{"unknown/path:X", false},
    27  		{"any/path:B", true},
    28  		{"c/path:X", true},
    29  		{"c/path:foo:B", false},
    30  	} {
    31  		match := f.Matches(tt.name)
    32  		if tt.match {
    33  			assert.True(t, match, "expected match")
    34  		} else {
    35  			assert.False(t, match, "expected no match")
    36  		}
    37  	}
    38  }