add support for int pointer references
Signed-off-by: Evan Johnson <eljohn1014@gmail.com>
This commit is contained in:
parent
c8449480cf
commit
e8a5d63058
|
|
@ -60,6 +60,14 @@ func FromFloatPtrValue(v *float64) string {
|
|||
return strconv.FormatFloat(*v, 'f', 0, 64)
|
||||
}
|
||||
|
||||
// FromIntPtrValue adapts an int pointer field for use as a CurrentValue.
|
||||
func FromIntPtrValue(v *int64) string {
|
||||
if v == nil {
|
||||
return ""
|
||||
}
|
||||
return strconv.FormatInt(*v, 10)
|
||||
}
|
||||
|
||||
// ToPtrValue adapts a ResolvedValue for use as a string pointer field.
|
||||
func ToPtrValue(v string) *string {
|
||||
if v == "" {
|
||||
|
|
@ -80,6 +88,18 @@ func ToFloatPtrValue(v string) *float64 {
|
|||
return &vParsed
|
||||
}
|
||||
|
||||
// ToIntPtrValue adapts a ResolvedValue for use as an int pointer field.
|
||||
func ToIntPtrValue(v string) *int64 {
|
||||
if v == "" {
|
||||
return nil
|
||||
}
|
||||
vParsed, err := strconv.ParseInt(v, 10, 64)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
return &vParsed
|
||||
}
|
||||
|
||||
// FromPtrValues adapts a slice of string pointer fields for use as CurrentValues.
|
||||
// NOTE: Do not use this utility function unless you have to.
|
||||
// Using pointer slices does not adhere to our current API practices.
|
||||
|
|
@ -102,6 +122,15 @@ func FromFloatPtrValues(v []*float64) []string {
|
|||
return res
|
||||
}
|
||||
|
||||
// FromIntPtrValues adapts a slice of int64 pointer fields for use as CurrentValues.
|
||||
func FromIntPtrValues(v []*int64) []string {
|
||||
var res = make([]string, len(v))
|
||||
for i := 0; i < len(v); i++ {
|
||||
res[i] = FromIntPtrValue(v[i])
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
// ToPtrValues adapts ResolvedValues for use as a slice of string pointer fields.
|
||||
// NOTE: Do not use this utility function unless you have to.
|
||||
// Using pointer slices does not adhere to our current API practices.
|
||||
|
|
@ -124,6 +153,15 @@ func ToFloatPtrValues(v []string) []*float64 {
|
|||
return res
|
||||
}
|
||||
|
||||
// ToIntPtrValues adapts ResolvedValues for use as a slice of int64 pointer fields.
|
||||
func ToIntPtrValues(v []string) []*int64 {
|
||||
var res = make([]*int64, len(v))
|
||||
for i := 0; i < len(v); i++ {
|
||||
res[i] = ToIntPtrValue(v[i])
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
// To indicates the kind of managed resource a reference is to.
|
||||
type To struct {
|
||||
Managed resource.Managed
|
||||
|
|
|
|||
|
|
@ -125,6 +125,26 @@ func TestToAndFromFloatPtrValues(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestToAndFromIntPtrValues(t *testing.T) {
|
||||
cases := map[string]struct {
|
||||
want []string
|
||||
}{
|
||||
"Nil": {want: []string{}},
|
||||
"Zero": {want: []string{""}},
|
||||
"NonZero": {want: []string{"1123581321"}},
|
||||
"Multiple": {want: []string{"1123581321", "1234567890"}},
|
||||
}
|
||||
for name, tc := range cases {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
got := FromIntPtrValues(ToIntPtrValues(tc.want))
|
||||
if diff := cmp.Diff(tc.want, got); diff != "" {
|
||||
t.Errorf("FromIntPtrValues(ToIntPtrValues(%s): -want, +got: %s", tc.want, diff)
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestResolve(t *testing.T) {
|
||||
errBoom := errors.New("boom")
|
||||
now := metav1.Now()
|
||||
|
|
|
|||
Loading…
Reference in New Issue