From 90c960d94d5821c97125c3908adfee6337c2e707 Mon Sep 17 00:00:00 2001 From: andronache Date: Mon, 23 Nov 2020 17:23:53 +0200 Subject: [PATCH] Completed tests for /utils/reflect_test.go and modified some functions --- utils/reflect.go | 28 ++++--------------------- utils/reflect_test.go | 48 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 24 deletions(-) diff --git a/utils/reflect.go b/utils/reflect.go index 79de620f8..805723f3e 100644 --- a/utils/reflect.go +++ b/utils/reflect.go @@ -530,12 +530,7 @@ func Sum(items ...interface{}) (sum interface{}, err error) { } } case int: - // need explicit conversion for int - if firstItmVal, err := IfaceAsInt64(dt); err != nil { - return nil, err - } else { - sum = firstItmVal - } + sum = int64(dt) for _, item := range items[1:] { if itmVal, err := IfaceAsInt64(item); err != nil { return nil, err @@ -592,12 +587,7 @@ func Difference(items ...interface{}) (diff interface{}, err error) { } } case int: - // need explicit conversion for int - if firstItmVal, err := IfaceAsInt64(dt); err != nil { - return nil, err - } else { - diff = firstItmVal - } + diff = int64(dt) for _, item := range items[1:] { if itmVal, err := IfaceAsInt64(item); err != nil { return nil, err @@ -638,12 +628,7 @@ func Multiply(items ...interface{}) (mlt interface{}, err error) { } } case int: - // need explicit conversion for int - if firstItmVal, err := IfaceAsInt64(dt); err != nil { - return nil, err - } else { - mlt = firstItmVal - } + mlt = int64(dt) for _, item := range items[1:] { if itmVal, err := IfaceAsInt64(item); err != nil { return nil, err @@ -684,12 +669,7 @@ func Divide(items ...interface{}) (mlt interface{}, err error) { } } case int: - // need explicit conversion for int - if firstItmVal, err := IfaceAsInt64(dt); err != nil { - return nil, err - } else { - mlt = firstItmVal - } + mlt = int64(dt) for _, item := range items[1:] { if itmVal, err := IfaceAsInt64(item); err != nil { return nil, err diff --git a/utils/reflect_test.go b/utils/reflect_test.go index 84dd6e0b5..8a73a3af1 100644 --- a/utils/reflect_test.go +++ b/utils/reflect_test.go @@ -1637,3 +1637,51 @@ func TestReflectFieldMethodInterfaceElseError3(t *testing.T) { t.Errorf("Expected ,received: <%+v>", err) } } + +func TestSumTimeTimeError(t *testing.T) { + day1 := time.Now() + day2 := "testValue" + _, err := Sum(day1, day2) + if err == nil || err.Error() != "time: invalid duration \"testValue\"" { + t.Errorf("Expected ,received: <%+v>", err) + } + +} + +func TestSumTimeTime(t *testing.T) { + day1 := time.Now() + day2 := time.Hour + expected := day1.Add(day2) + sum, _ := Sum(day1, day2) + if !reflect.DeepEqual(sum, expected) { + t.Errorf("Expected <%+v> ,received: <%+v>", expected, sum) + } +} + +func TestDifferenceTimeTimeError(t *testing.T) { + _, err := Difference(time.Now(), "cat") + if err == nil || err.Error() != "time: invalid duration \"cat\"" { + t.Errorf("Expected ,received: <%+v>", err) + } +} + +func TestDifferenceInt64Error(t *testing.T) { + _, err := Difference(int64(2), "cat") + if err == nil || err.Error() != "strconv.ParseInt: parsing \"cat\": invalid syntax" { + t.Errorf("Expected ,received: <%+v>", err) + } +} + +func TestDivideInt64Error(t *testing.T) { + _, err := Divide(int64(2), "cat") + if err == nil || err.Error() != "strconv.ParseInt: parsing \"cat\": invalid syntax" { + t.Errorf("Expected ,received: <%+v>", err) + } +} + +func TestMultiplyInt64Error(t *testing.T) { + _, err := Multiply(int64(2), "cat") + if err == nil || err.Error() != "strconv.ParseInt: parsing \"cat\": invalid syntax" { + t.Errorf("Expected ,received: <%+v>", err) + } +}