github.com/eris-ltd/erisdb@v0.25.0/deploy/def/rule/rules_test.go (about)

     1  package rule
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestMatchPlaceholders(t *testing.T) {
    10  	assert.True(t, PlaceholderRegex.MatchString("$foo"))
    11  	assert.True(t, PlaceholderRegex.MatchString("   $foo"))
    12  	assert.True(t, PlaceholderRegex.MatchString("$foo"))
    13  	assert.True(t, PlaceholderRegex.MatchString("asdas:$foo"))
    14  	assert.True(t, PlaceholderRegex.MatchString("Set.$AddValidator.Address.Power"))
    15  	// Placeholder match
    16  	assert.Equal(t, PlaceholderMatch{"$AddValidator.foobar", "AddValidator", "foobar"}, MatchPlaceholders("$AddValidator.foobar")[0])
    17  	assert.Equal(t, PlaceholderMatch{"$AddValidator.foobar", "AddValidator", "foobar"}, MatchPlaceholders("set.$AddValidator.foobar")[0])
    18  	// With brackets
    19  	assert.Equal(t, PlaceholderMatch{"${AddValidator}", "AddValidator", ""}, MatchPlaceholders("set.${AddValidator}.foobar")[0])
    20  	assert.Equal(t, PlaceholderMatch{"${AddValidator.baz}", "AddValidator", "baz"}, MatchPlaceholders("set.${AddValidator.baz}.foobar")[0])
    21  	assert.Equal(t, PlaceholderMatch{"${Add_Validator.baz}", "Add_Validator", "baz"}, MatchPlaceholders("set.${Add_Validator.baz}.foobar")[0])
    22  	// Non-matches
    23  	assert.Len(t, MatchPlaceholders("set.${AddValidator.baz.foobar}"), 0)
    24  	assert.Len(t, MatchPlaceholders("set.${}AddValidator.baz.foobar}"), 0)
    25  	assert.Len(t, MatchPlaceholders(""), 0)
    26  	assert.Len(t, MatchPlaceholders("set.${{foo.bar}}"), 0)
    27  	assert.Len(t, MatchPlaceholders("set.${{foo.bar}"), 0)
    28  	assert.Len(t, MatchPlaceholders("set.${foo,bar}"), 0)
    29  
    30  	assert.Equal(t, PlaceholderMatch{"${foo.bar}", "foo", "bar"}, MatchPlaceholders("set.${foo.bar}}.foobar")[0])
    31  }
    32  
    33  func TestStripBraces(t *testing.T) {
    34  	assert.Equal(t, `\$foo`, stripBraces(`\${foo}.bar`))
    35  	assert.Equal(t, `\$foo.bar`, stripBraces(`\${foo.bar}`))
    36  	assert.Equal(t, `\$foo.bar.baz`, stripBraces(`\${foo.bar.baz}`))
    37  }