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 }