in asserts/asserts.go [94:120]
func doStringAssert(value string, rule specs.StringAssert) string {
if rule.Exactly != nil && value != *rule.Exactly {
return fmt.Sprintf("Should have matched exactly:\n%s\n... but was:\n%s", *rule.Exactly, value)
}
if rule.NotContains != nil && strings.Contains(value, *rule.NotContains) {
return fmt.Sprintf("Should have not contained:\n%s\n... but was:\n%s", *rule.NotContains, value)
}
if rule.Equals != nil {
trimmed := strings.TrimSpace(value)
if trimmed != *rule.Equals {
return fmt.Sprintf("Should have been:\n%s\n... but was:\n%s", *rule.Equals, trimmed)
}
}
if rule.Contains != nil && !strings.Contains(value, *rule.Contains) {
return fmt.Sprintf("Should have contained:\n%s\n... but was:\n%s", *rule.Contains, value)
}
if rule.Matches != nil {
r, err := regexp.Compile(*rule.Matches)
if err != nil {
return fmt.Sprintf("Regex failed to compile: %s", *rule.Matches)
}
if !r.MatchString(value) {
return fmt.Sprintf("Should have matched regex:\n%s\n... but was:\n%s", *rule.Matches, value)
}
}
return ""
}