databricks-cli/libs/dyn/value_test.go

51 lines
1.1 KiB
Go
Raw Normal View History

package dyn_test
2023-10-20 12:56:59 +00:00
import (
"testing"
"github.com/databricks/cli/libs/dyn"
2023-10-20 12:56:59 +00:00
"github.com/stretchr/testify/assert"
)
func TestInvalidValue(t *testing.T) {
// Assert that the zero value of [dyn.Value] is the invalid value.
var zero dyn.Value
assert.Equal(t, zero, dyn.InvalidValue)
}
2023-10-20 12:56:59 +00:00
func TestValueIsAnchor(t *testing.T) {
var zero dyn.Value
2023-10-20 12:56:59 +00:00
assert.False(t, zero.IsAnchor())
mark := zero.MarkAnchor()
assert.True(t, mark.IsAnchor())
}
func TestValueAsMap(t *testing.T) {
var zeroValue dyn.Value
2023-10-20 12:56:59 +00:00
m, ok := zeroValue.AsMap()
assert.False(t, ok)
assert.Nil(t, m)
var intValue = dyn.NewValue(1, dyn.Location{})
2023-10-20 12:56:59 +00:00
m, ok = intValue.AsMap()
assert.False(t, ok)
assert.Nil(t, m)
var mapValue = dyn.NewValue(
map[string]dyn.Value{
"key": dyn.NewValue("value", dyn.Location{File: "file", Line: 1, Column: 2}),
2023-10-20 12:56:59 +00:00
},
dyn.Location{File: "file", Line: 1, Column: 2},
2023-10-20 12:56:59 +00:00
)
m, ok = mapValue.AsMap()
assert.True(t, ok)
assert.Len(t, m, 1)
}
func TestValueIsValid(t *testing.T) {
var zeroValue dyn.Value
assert.False(t, zeroValue.IsValid())
var intValue = dyn.NewValue(1, dyn.Location{})
assert.True(t, intValue.IsValid())
}