Completed tests for /utils/reflect_test.go and modified some functions

This commit is contained in:
andronache
2020-11-23 17:23:53 +02:00
committed by Dan Christian Bogos
parent 7a16c29e11
commit 90c960d94d
2 changed files with 52 additions and 24 deletions

View File

@@ -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

View File

@@ -1637,3 +1637,51 @@ func TestReflectFieldMethodInterfaceElseError3(t *testing.T) {
t.Errorf("Expected <invalid function called> ,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 <time: invalid duration testValue> ,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 <time: invalid duration \"cat\"> ,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 <strconv.ParseInt: parsing \"cat\": invalid syntax> ,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 <strconv.ParseInt: parsing \"cat\": invalid syntax> ,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 <strconv.ParseInt: parsing \"cat\": invalid syntax> ,received: <%+v>", err)
}
}