2022-01-04 23:07:00 +05:30
|
|
|
package common
|
2019-05-27 14:45:54 +03:00
|
|
|
|
|
|
|
import (
|
|
|
|
"encoding/json"
|
|
|
|
"testing"
|
|
|
|
|
2020-10-07 11:12:31 -07:00
|
|
|
"github.com/kyverno/kyverno/pkg/engine/operator"
|
2022-10-02 20:45:03 +01:00
|
|
|
"github.com/kyverno/kyverno/pkg/logging"
|
2019-05-27 14:45:54 +03:00
|
|
|
"gotest.tools/assert"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestValidateValueWithPattern_Bool(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, ValidateValueWithPattern(logging.GlobalLogger(), true, true))
|
|
|
|
assert.Assert(t, !ValidateValueWithPattern(logging.GlobalLogger(), true, false))
|
|
|
|
assert.Assert(t, !ValidateValueWithPattern(logging.GlobalLogger(), false, true))
|
|
|
|
assert.Assert(t, ValidateValueWithPattern(logging.GlobalLogger(), false, false))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
2019-12-30 17:08:50 -08:00
|
|
|
func TestValidateString_AsteriskTest(t *testing.T) {
|
|
|
|
pattern := "*"
|
|
|
|
value := "anything"
|
|
|
|
empty := ""
|
|
|
|
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateString(logging.GlobalLogger(), value, pattern, operator.Equal))
|
|
|
|
assert.Assert(t, validateString(logging.GlobalLogger(), empty, pattern, operator.Equal))
|
2019-12-30 17:08:50 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateString_LeftAsteriskTest(t *testing.T) {
|
|
|
|
pattern := "*right"
|
|
|
|
value := "leftright"
|
|
|
|
right := "right"
|
|
|
|
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateString(logging.GlobalLogger(), value, pattern, operator.Equal))
|
|
|
|
assert.Assert(t, validateString(logging.GlobalLogger(), right, pattern, operator.Equal))
|
2019-12-30 17:08:50 -08:00
|
|
|
|
|
|
|
value = "leftmiddle"
|
|
|
|
middle := "middle"
|
|
|
|
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, !validateString(logging.GlobalLogger(), value, pattern, operator.Equal))
|
|
|
|
assert.Assert(t, !validateString(logging.GlobalLogger(), middle, pattern, operator.Equal))
|
2019-12-30 17:08:50 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateString_MiddleAsteriskTest(t *testing.T) {
|
|
|
|
pattern := "ab*ba"
|
|
|
|
value := "abbeba"
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateString(logging.GlobalLogger(), value, pattern, operator.Equal))
|
2019-12-30 17:08:50 -08:00
|
|
|
|
|
|
|
value = "abbca"
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, !validateString(logging.GlobalLogger(), value, pattern, operator.Equal))
|
2019-12-30 17:08:50 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateString_QuestionMark(t *testing.T) {
|
|
|
|
pattern := "ab?ba"
|
|
|
|
value := "abbba"
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateString(logging.GlobalLogger(), value, pattern, operator.Equal))
|
2019-12-30 17:08:50 -08:00
|
|
|
|
|
|
|
value = "abbbba"
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, !validateString(logging.GlobalLogger(), value, pattern, operator.Equal))
|
2019-12-30 17:08:50 -08:00
|
|
|
}
|
|
|
|
|
2019-05-27 14:45:54 +03:00
|
|
|
func TestValidateValueWithPattern_BoolInJson(t *testing.T) {
|
|
|
|
rawPattern := []byte(`
|
|
|
|
{
|
|
|
|
"key": true
|
|
|
|
}
|
|
|
|
`)
|
|
|
|
|
|
|
|
rawValue := []byte(`
|
|
|
|
{
|
|
|
|
"key": true
|
|
|
|
}
|
|
|
|
`)
|
|
|
|
|
|
|
|
var pattern, value map[string]interface{}
|
|
|
|
err := json.Unmarshal(rawPattern, &pattern)
|
|
|
|
assert.Assert(t, err)
|
|
|
|
err = json.Unmarshal(rawValue, &value)
|
|
|
|
assert.Assert(t, err)
|
|
|
|
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, ValidateValueWithPattern(logging.GlobalLogger(), value["key"], pattern["key"]))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithPattern_NullPatternStringValue(t *testing.T) {
|
|
|
|
rawPattern := []byte(`
|
|
|
|
{
|
|
|
|
"key": null
|
|
|
|
}
|
|
|
|
`)
|
|
|
|
|
|
|
|
rawValue := []byte(`
|
|
|
|
{
|
|
|
|
"key": "value"
|
|
|
|
}
|
|
|
|
`)
|
|
|
|
|
|
|
|
var pattern, value map[string]interface{}
|
|
|
|
err := json.Unmarshal(rawPattern, &pattern)
|
|
|
|
assert.Assert(t, err)
|
|
|
|
err = json.Unmarshal(rawValue, &value)
|
|
|
|
assert.Assert(t, err)
|
|
|
|
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, !ValidateValueWithPattern(logging.GlobalLogger(), value["key"], pattern["key"]))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithPattern_NullPatternDefaultString(t *testing.T) {
|
|
|
|
rawPattern := []byte(`
|
|
|
|
{
|
|
|
|
"key": null
|
|
|
|
}
|
|
|
|
`)
|
|
|
|
|
|
|
|
rawValue := []byte(`
|
|
|
|
{
|
|
|
|
"key": ""
|
|
|
|
}
|
|
|
|
`)
|
|
|
|
|
|
|
|
var pattern, value map[string]interface{}
|
|
|
|
err := json.Unmarshal(rawPattern, &pattern)
|
|
|
|
assert.Assert(t, err)
|
|
|
|
err = json.Unmarshal(rawValue, &value)
|
|
|
|
assert.Assert(t, err)
|
|
|
|
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, ValidateValueWithPattern(logging.GlobalLogger(), value["key"], pattern["key"]))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithPattern_NullPatternDefaultFloat(t *testing.T) {
|
|
|
|
rawPattern := []byte(`
|
|
|
|
{
|
|
|
|
"key": null
|
|
|
|
}
|
|
|
|
`)
|
|
|
|
|
|
|
|
rawValue := []byte(`
|
|
|
|
{
|
|
|
|
"key": 0.0
|
|
|
|
}
|
|
|
|
`)
|
|
|
|
|
|
|
|
var pattern, value map[string]interface{}
|
|
|
|
err := json.Unmarshal(rawPattern, &pattern)
|
|
|
|
assert.Assert(t, err)
|
|
|
|
err = json.Unmarshal(rawValue, &value)
|
|
|
|
assert.Assert(t, err)
|
|
|
|
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, ValidateValueWithPattern(logging.GlobalLogger(), value["key"], pattern["key"]))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithPattern_NullPatternDefaultInt(t *testing.T) {
|
|
|
|
rawPattern := []byte(`
|
|
|
|
{
|
|
|
|
"key": null
|
|
|
|
}
|
|
|
|
`)
|
|
|
|
|
|
|
|
rawValue := []byte(`
|
|
|
|
{
|
|
|
|
"key": 0
|
|
|
|
}
|
|
|
|
`)
|
|
|
|
|
|
|
|
var pattern, value map[string]interface{}
|
|
|
|
err := json.Unmarshal(rawPattern, &pattern)
|
|
|
|
assert.Assert(t, err)
|
|
|
|
err = json.Unmarshal(rawValue, &value)
|
|
|
|
assert.Assert(t, err)
|
|
|
|
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, ValidateValueWithPattern(logging.GlobalLogger(), value["key"], pattern["key"]))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithPattern_NullPatternDefaultBool(t *testing.T) {
|
|
|
|
rawPattern := []byte(`
|
|
|
|
{
|
|
|
|
"key": null
|
|
|
|
}
|
|
|
|
`)
|
|
|
|
|
|
|
|
rawValue := []byte(`
|
|
|
|
{
|
|
|
|
"key": false
|
|
|
|
}
|
|
|
|
`)
|
|
|
|
|
|
|
|
var pattern, value map[string]interface{}
|
|
|
|
err := json.Unmarshal(rawPattern, &pattern)
|
|
|
|
assert.Assert(t, err)
|
|
|
|
err = json.Unmarshal(rawValue, &value)
|
|
|
|
assert.Assert(t, err)
|
|
|
|
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, ValidateValueWithPattern(logging.GlobalLogger(), value["key"], pattern["key"]))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithPattern_StringsLogicalOr(t *testing.T) {
|
|
|
|
pattern := "192.168.88.1 | 10.100.11.*"
|
|
|
|
value := "10.100.11.54"
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, ValidateValueWithPattern(logging.GlobalLogger(), value, pattern))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
2021-02-06 03:52:31 +02:00
|
|
|
func TestValidateValueWithPattern_StringsLogicalAnd(t *testing.T) {
|
|
|
|
pattern := ">1 & <20"
|
|
|
|
value := "10"
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, ValidateValueWithPattern(logging.GlobalLogger(), value, pattern))
|
2021-02-06 03:52:31 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithPattern_StringsAllLogicalOperators(t *testing.T) {
|
|
|
|
pattern := ">1 & <20 | >31 & <33"
|
|
|
|
value := "10"
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, ValidateValueWithPattern(logging.GlobalLogger(), value, pattern))
|
2021-02-06 03:52:31 +02:00
|
|
|
value = "32"
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, ValidateValueWithPattern(logging.GlobalLogger(), value, pattern))
|
2021-02-06 03:52:31 +02:00
|
|
|
value = "21"
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, !ValidateValueWithPattern(logging.GlobalLogger(), value, pattern))
|
2021-02-06 03:52:31 +02:00
|
|
|
}
|
|
|
|
|
2019-12-13 13:17:22 -08:00
|
|
|
func TestValidateValueWithPattern_EqualTwoFloats(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, ValidateValueWithPattern(logging.GlobalLogger(), 7.0, 7.000))
|
2019-12-13 13:17:22 -08:00
|
|
|
}
|
|
|
|
|
2019-05-27 14:45:54 +03:00
|
|
|
func TestValidateValueWithNilPattern_NullPatternStringValue(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, !validateValueWithNilPattern(logging.GlobalLogger(), "value"))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithNilPattern_NullPatternDefaultString(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateValueWithNilPattern(logging.GlobalLogger(), ""))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithNilPattern_NullPatternDefaultFloat(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateValueWithNilPattern(logging.GlobalLogger(), 0.0))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithNilPattern_NullPatternFloat(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, !validateValueWithNilPattern(logging.GlobalLogger(), 0.1))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithNilPattern_NullPatternDefaultInt(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateValueWithNilPattern(logging.GlobalLogger(), 0))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithNilPattern_NullPatternInt(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, !validateValueWithNilPattern(logging.GlobalLogger(), 1))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithNilPattern_NullPatternDefaultBool(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateValueWithNilPattern(logging.GlobalLogger(), false))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithNilPattern_NullPatternTrueBool(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, !validateValueWithNilPattern(logging.GlobalLogger(), true))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithFloatPattern_FloatValue(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateValueWithFloatPattern(logging.GlobalLogger(), 7.9914, 7.9914))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithFloatPattern_FloatValueNotPass(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, !validateValueWithFloatPattern(logging.GlobalLogger(), 7.9914, 7.99141))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithFloatPattern_FloatPatternWithoutFractionIntValue(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateValueWithFloatPattern(logging.GlobalLogger(), 7, 7.000000))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithFloatPattern_FloatPatternWithoutFraction(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateValueWithFloatPattern(logging.GlobalLogger(), 7.000000, 7.000000))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithIntPattern_FloatValueWithoutFraction(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateValueWithFloatPattern(logging.GlobalLogger(), 7.000000, 7))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithIntPattern_FloatValueWitFraction(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, !validateValueWithFloatPattern(logging.GlobalLogger(), 7.000001, 7))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestValidateValueWithIntPattern_NotPass(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, !validateValueWithFloatPattern(logging.GlobalLogger(), 8, 7))
|
2019-05-27 14:45:54 +03:00
|
|
|
}
|
2019-05-27 18:07:24 +03:00
|
|
|
|
|
|
|
func TestGetNumberAndStringPartsFromPattern_NumberAndString(t *testing.T) {
|
|
|
|
number, str := getNumberAndStringPartsFromPattern("1024Gi")
|
|
|
|
assert.Equal(t, number, "1024")
|
|
|
|
assert.Equal(t, str, "Gi")
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestGetNumberAndStringPartsFromPattern_OnlyNumber(t *testing.T) {
|
|
|
|
number, str := getNumberAndStringPartsFromPattern("1024")
|
|
|
|
assert.Equal(t, number, "1024")
|
|
|
|
assert.Equal(t, str, "")
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestGetNumberAndStringPartsFromPattern_OnlyString(t *testing.T) {
|
|
|
|
number, str := getNumberAndStringPartsFromPattern("Gi")
|
|
|
|
assert.Equal(t, number, "")
|
|
|
|
assert.Equal(t, str, "Gi")
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestGetNumberAndStringPartsFromPattern_StringFirst(t *testing.T) {
|
|
|
|
number, str := getNumberAndStringPartsFromPattern("Gi1024")
|
|
|
|
assert.Equal(t, number, "")
|
|
|
|
assert.Equal(t, str, "Gi1024")
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestGetNumberAndStringPartsFromPattern_Empty(t *testing.T) {
|
|
|
|
number, str := getNumberAndStringPartsFromPattern("")
|
|
|
|
assert.Equal(t, number, "")
|
|
|
|
assert.Equal(t, str, "")
|
|
|
|
}
|
|
|
|
|
2021-06-03 11:16:50 +05:30
|
|
|
func TestValidateValueWithStringPattern_WithSpace(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), 4, ">= 3"))
|
2021-06-03 11:16:50 +05:30
|
|
|
}
|
|
|
|
|
2021-10-29 13:48:23 +02:00
|
|
|
func TestValidateValueWithStringPattern_Ranges(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), 0, "0-2"))
|
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), 1, "0-2"))
|
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), 2, "0-2"))
|
|
|
|
assert.Assert(t, !validateValueWithStringPattern(logging.GlobalLogger(), 3, "0-2"))
|
2021-10-29 13:48:23 +02:00
|
|
|
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), 0, "10!-20"))
|
|
|
|
assert.Assert(t, !validateValueWithStringPattern(logging.GlobalLogger(), 15, "10!-20"))
|
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), 25, "10!-20"))
|
2021-10-29 13:48:23 +02:00
|
|
|
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, !validateValueWithStringPattern(logging.GlobalLogger(), 0, "0.00001-2.00001"))
|
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), 1, "0.00001-2.00001"))
|
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), 2, "0.00001-2.00001"))
|
|
|
|
assert.Assert(t, !validateValueWithStringPattern(logging.GlobalLogger(), 2.0001, "0.00001-2.00001"))
|
2021-10-29 13:48:23 +02:00
|
|
|
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), 0, "0.00001!-2.00001"))
|
|
|
|
assert.Assert(t, !validateValueWithStringPattern(logging.GlobalLogger(), 1, "0.00001!-2.00001"))
|
|
|
|
assert.Assert(t, !validateValueWithStringPattern(logging.GlobalLogger(), 2, "0.00001!-2.00001"))
|
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), 2.0001, "0.00001!-2.00001"))
|
2021-10-29 13:48:23 +02:00
|
|
|
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), 2, "2-2"))
|
|
|
|
assert.Assert(t, !validateValueWithStringPattern(logging.GlobalLogger(), 2, "2!-2"))
|
2021-10-29 13:48:23 +02:00
|
|
|
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), 2.99999, "2.99998-3"))
|
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), 2.99997, "2.99998!-3"))
|
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), 3.00001, "2.99998!-3"))
|
2021-10-29 13:48:23 +02:00
|
|
|
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), "256Mi", "128Mi-512Mi"))
|
|
|
|
assert.Assert(t, !validateValueWithStringPattern(logging.GlobalLogger(), "1024Mi", "128Mi-512Mi"))
|
|
|
|
assert.Assert(t, !validateValueWithStringPattern(logging.GlobalLogger(), "64Mi", "128Mi-512Mi"))
|
2021-10-29 13:48:23 +02:00
|
|
|
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, !validateValueWithStringPattern(logging.GlobalLogger(), "256Mi", "128Mi!-512Mi"))
|
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), "1024Mi", "128Mi!-512Mi"))
|
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), "64Mi", "128Mi!-512Mi"))
|
2021-10-29 13:48:23 +02:00
|
|
|
}
|
|
|
|
|
2019-12-13 13:17:22 -08:00
|
|
|
func TestValidateNumberWithStr_LessFloatAndInt(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateNumberWithStr(logging.GlobalLogger(), 7.00001, "7.000001", operator.More))
|
|
|
|
assert.Assert(t, validateNumberWithStr(logging.GlobalLogger(), 7.00001, "7", operator.NotEqual))
|
2019-05-27 18:07:24 +03:00
|
|
|
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateNumberWithStr(logging.GlobalLogger(), 7.0000, "7", operator.Equal))
|
|
|
|
assert.Assert(t, !validateNumberWithStr(logging.GlobalLogger(), 6.000000001, "6", operator.Less))
|
2019-05-27 18:07:24 +03:00
|
|
|
}
|
|
|
|
|
2019-12-13 13:17:22 -08:00
|
|
|
func TestValidateQuantity_InvalidQuantity(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, !validateNumberWithStr(logging.GlobalLogger(), "1024Gi", "", operator.Equal))
|
|
|
|
assert.Assert(t, !validateNumberWithStr(logging.GlobalLogger(), "gii", "1024Gi", operator.Equal))
|
2019-05-27 18:07:24 +03:00
|
|
|
}
|
|
|
|
|
2019-12-13 13:17:22 -08:00
|
|
|
func TestValidateQuantity_Equal(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateNumberWithStr(logging.GlobalLogger(), "1024Gi", "1024Gi", operator.Equal))
|
|
|
|
assert.Assert(t, validateNumberWithStr(logging.GlobalLogger(), "1024Mi", "1Gi", operator.Equal))
|
|
|
|
assert.Assert(t, validateNumberWithStr(logging.GlobalLogger(), "0.2", "200m", operator.Equal))
|
|
|
|
assert.Assert(t, validateNumberWithStr(logging.GlobalLogger(), "500", "500", operator.Equal))
|
|
|
|
assert.Assert(t, !validateNumberWithStr(logging.GlobalLogger(), "2048", "1024", operator.Equal))
|
|
|
|
assert.Assert(t, validateNumberWithStr(logging.GlobalLogger(), 1024, "1024", operator.Equal))
|
2019-05-27 18:07:24 +03:00
|
|
|
}
|
|
|
|
|
2019-12-13 13:17:22 -08:00
|
|
|
func TestValidateQuantity_Operation(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateNumberWithStr(logging.GlobalLogger(), "1Gi", "1000Mi", operator.More))
|
|
|
|
assert.Assert(t, validateNumberWithStr(logging.GlobalLogger(), "1G", "1Gi", operator.Less))
|
|
|
|
assert.Assert(t, validateNumberWithStr(logging.GlobalLogger(), "500m", "0.5", operator.MoreEqual))
|
|
|
|
assert.Assert(t, validateNumberWithStr(logging.GlobalLogger(), "1", "500m", operator.MoreEqual))
|
|
|
|
assert.Assert(t, validateNumberWithStr(logging.GlobalLogger(), "0.5", ".5", operator.LessEqual))
|
|
|
|
assert.Assert(t, validateNumberWithStr(logging.GlobalLogger(), "0.2", ".5", operator.LessEqual))
|
|
|
|
assert.Assert(t, validateNumberWithStr(logging.GlobalLogger(), "0.2", ".5", operator.NotEqual))
|
2019-05-27 18:07:24 +03:00
|
|
|
}
|
2019-05-28 13:13:57 +03:00
|
|
|
|
|
|
|
func TestGetOperatorFromStringPattern_OneChar(t *testing.T) {
|
2019-12-30 17:08:50 -08:00
|
|
|
assert.Equal(t, operator.GetOperatorFromStringPattern("f"), operator.Equal)
|
2019-05-28 13:13:57 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestGetOperatorFromStringPattern_EmptyString(t *testing.T) {
|
2019-12-30 17:08:50 -08:00
|
|
|
assert.Equal(t, operator.GetOperatorFromStringPattern(""), operator.Equal)
|
2019-05-28 13:13:57 +03:00
|
|
|
}
|
2022-02-17 09:33:30 +05:30
|
|
|
|
|
|
|
func TestValidateKernelVersion_NotEquals(t *testing.T) {
|
2022-10-02 20:45:03 +01:00
|
|
|
assert.Assert(t, validateValueWithStringPattern(logging.GlobalLogger(), "5.16.5-arch1-1", "!5.10.84-1"))
|
|
|
|
assert.Assert(t, !validateValueWithStringPattern(logging.GlobalLogger(), "5.10.84-1", "!5.10.84-1"))
|
|
|
|
assert.Assert(t, validateValueWithStringPatterns(logging.GlobalLogger(), "5.16.5-arch1-1", "!5.10.84-1 & !5.15.2-1"))
|
|
|
|
assert.Assert(t, !validateValueWithStringPatterns(logging.GlobalLogger(), "5.10.84-1", "!5.10.84-1 & !5.15.2-1"))
|
|
|
|
assert.Assert(t, !validateValueWithStringPatterns(logging.GlobalLogger(), "5.15.2-1", "!5.10.84-1 & !5.15.2-1"))
|
2022-02-17 09:33:30 +05:30
|
|
|
}
|