Fixed unit test comparison bug for Null types
* Set randomized field values to zero value for objects with Valid false This ensures the types will match the zero values returned from the db. * Reverted make statements to proper initialization format
This commit is contained in:
parent
ca9d296f99
commit
98e0b1f2ad
3 changed files with 79 additions and 17 deletions
|
@ -310,39 +310,100 @@ func randomizeField(field reflect.Value) error {
|
|||
var newVal interface{}
|
||||
|
||||
if kind == reflect.Struct {
|
||||
b := rand.Intn(2) == 1
|
||||
switch typ {
|
||||
case typeNullBool:
|
||||
newVal = null.NewBool(rand.Intn(2) == 1, rand.Intn(2) == 1)
|
||||
if b {
|
||||
newVal = null.NewBool(rand.Intn(2) == 1, b)
|
||||
} else {
|
||||
newVal = null.NewBool(false, false)
|
||||
}
|
||||
case typeNullString:
|
||||
newVal = null.NewString(randStr(5+rand.Intn(25)), rand.Intn(2) == 1)
|
||||
if b {
|
||||
newVal = null.NewString(randStr(5+rand.Intn(25)), b)
|
||||
} else {
|
||||
newVal = null.NewString("", false)
|
||||
}
|
||||
case typeNullTime:
|
||||
newVal = null.NewTime(randDate(), rand.Intn(2) == 1)
|
||||
if b {
|
||||
newVal = null.NewTime(randDate(), b)
|
||||
} else {
|
||||
newVal = null.NewTime(time.Time{}, false)
|
||||
}
|
||||
case typeTime:
|
||||
newVal = randDate()
|
||||
case typeNullFloat32:
|
||||
newVal = null.NewFloat32(float32(rand.Intn(9))/10.0+float32(rand.Intn(9)), rand.Intn(2) == 1)
|
||||
if b {
|
||||
newVal = null.NewFloat32(float32(rand.Intn(9))/10.0+float32(rand.Intn(9)), b)
|
||||
} else {
|
||||
newVal = null.NewFloat32(0.0, false)
|
||||
}
|
||||
case typeNullFloat64:
|
||||
newVal = null.NewFloat64(float64(rand.Intn(9))/10.0+float64(rand.Intn(9)), rand.Intn(2) == 1)
|
||||
if b {
|
||||
newVal = null.NewFloat64(float64(rand.Intn(9))/10.0+float64(rand.Intn(9)), b)
|
||||
} else {
|
||||
newVal = null.NewFloat64(0.0, false)
|
||||
}
|
||||
case typeNullInt:
|
||||
newVal = null.NewInt(rand.Int(), rand.Intn(2) == 1)
|
||||
if b {
|
||||
newVal = null.NewInt(rand.Int(), b)
|
||||
} else {
|
||||
newVal = null.NewInt(0, false)
|
||||
}
|
||||
case typeNullInt8:
|
||||
newVal = null.NewInt8(int8(rand.Intn(int(math.MaxInt8))), rand.Intn(2) == 1)
|
||||
if b {
|
||||
newVal = null.NewInt8(int8(rand.Intn(int(math.MaxInt8))), b)
|
||||
} else {
|
||||
newVal = null.NewInt8(0, false)
|
||||
}
|
||||
case typeNullInt16:
|
||||
newVal = null.NewInt16(int16(rand.Intn(int(math.MaxInt16))), rand.Intn(2) == 1)
|
||||
if b {
|
||||
newVal = null.NewInt16(int16(rand.Intn(int(math.MaxInt16))), b)
|
||||
} else {
|
||||
newVal = null.NewInt16(0, false)
|
||||
}
|
||||
case typeNullInt32:
|
||||
newVal = null.NewInt32(rand.Int31(), rand.Intn(2) == 1)
|
||||
if b {
|
||||
newVal = null.NewInt32(rand.Int31(), b)
|
||||
} else {
|
||||
newVal = null.NewInt32(0, false)
|
||||
}
|
||||
case typeNullInt64:
|
||||
newVal = null.NewInt64(rand.Int63(), rand.Intn(2) == 1)
|
||||
if b {
|
||||
newVal = null.NewInt64(rand.Int63(), b)
|
||||
} else {
|
||||
newVal = null.NewInt64(0, false)
|
||||
}
|
||||
case typeNullUint:
|
||||
newVal = null.NewUint(uint(rand.Int()), rand.Intn(2) == 1)
|
||||
if b {
|
||||
newVal = null.NewUint(uint(rand.Int()), b)
|
||||
} else {
|
||||
newVal = null.NewUint(0, false)
|
||||
}
|
||||
case typeNullUint8:
|
||||
newVal = null.NewUint8(uint8(rand.Intn(int(math.MaxInt8))), rand.Intn(2) == 1)
|
||||
if b {
|
||||
newVal = null.NewUint8(uint8(rand.Intn(int(math.MaxInt8))), b)
|
||||
} else {
|
||||
newVal = null.NewUint8(0, false)
|
||||
}
|
||||
case typeNullUint16:
|
||||
newVal = null.NewUint16(uint16(rand.Intn(int(math.MaxInt16))), rand.Intn(2) == 1)
|
||||
if b {
|
||||
newVal = null.NewUint16(uint16(rand.Intn(int(math.MaxInt16))), b)
|
||||
} else {
|
||||
newVal = null.NewUint16(0, false)
|
||||
}
|
||||
case typeNullUint32:
|
||||
newVal = null.NewUint32(uint32(rand.Int31()), rand.Intn(2) == 1)
|
||||
if b {
|
||||
newVal = null.NewUint32(uint32(rand.Int31()), b)
|
||||
} else {
|
||||
newVal = null.NewUint32(0, false)
|
||||
}
|
||||
case typeNullUint64:
|
||||
newVal = null.NewUint64(uint64(rand.Int63()), rand.Intn(2) == 1)
|
||||
if b {
|
||||
newVal = null.NewUint64(uint64(rand.Int63()), b)
|
||||
} else {
|
||||
newVal = null.NewUint64(0, false)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
switch kind {
|
||||
|
@ -388,6 +449,7 @@ func randomizeField(field reflect.Value) error {
|
|||
return fmt.Errorf("unsupported type: %T", typ.String())
|
||||
}
|
||||
}
|
||||
|
||||
field.Set(reflect.ValueOf(newVal))
|
||||
|
||||
return nil
|
||||
|
|
|
@ -19,7 +19,7 @@ func Test{{$tableNamePlural}}Find(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
j := make({{$varNameSingular}}Slice, 0, 3)
|
||||
j := make({{$varNameSingular}}Slice, 3)
|
||||
// Perform all Find queries and assign result objects to slice for comparison
|
||||
for i := 0; i < len(j); i++ {
|
||||
j[i], err = {{$tableNameSingular}}Find({{titleCaseCommaList "o[i]." .Table.PKey.Columns}})
|
||||
|
|
|
@ -94,7 +94,7 @@ func Test{{$tableNamePlural}}Count(t *testing.T) {
|
|||
|
||||
{{$varNamePlural}}DeleteAllRows(t)
|
||||
|
||||
o := make({{$varNameSingular}}Slice, 0, 3)
|
||||
o := make({{$varNameSingular}}Slice, 3)
|
||||
if err = boil.RandomizeSlice(&o); err != nil {
|
||||
t.Errorf("Unable to randomize {{$tableNameSingular}} slice: %s", err)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue