Added helpers tests

* Added slice and singular object helper for primaryKeyArgs
This commit is contained in:
Patrick O'brien 2016-06-10 14:40:02 +10:00
parent ecb20cca4a
commit c34f09aa55
5 changed files with 96 additions and 26 deletions

View file

@ -79,6 +79,9 @@ func (o {{$varNameSingular}}Slice) DeleteAllX(exec boil.Executor) error {
if err != nil {
return fmt.Errorf("{{.PkgName}}: unable to delete all from {{$varNameSingular}} slice: %s", err)
}
if boil.DebugMode {
fmt.Fprintln(boil.DebugWriter, args)
}
return nil
}

View file

@ -8,6 +8,16 @@ var {{$varNameSingular}}AutoIncPrimaryKey = "{{autoIncPrimaryKey .Table.Columns
{{if hasPrimaryKey .Table.PKey -}}
{{- $tableNameSingular := titleCaseSingular .Table.Name -}}
func (o {{$tableNameSingular}}) inPrimaryKeyArgs() []interface{} {
var args []interface{}
{{- range $key, $value := .Table.PKey.Columns }}
args = append(args, o.{{titleCase $value}})
{{ end -}}
return args
}
func (o {{$varNameSingular}}Slice) inPrimaryKeyArgs() []interface{} {
var args []interface{}

View file

@ -9,16 +9,16 @@ func Test{{$tableNamePlural}}All(t *testing.T) {
// Start from a clean slate
{{$varNamePlural}}DeleteAllRows(t)
r := make({{$varNameSingular}}Slice, 2)
if err = boil.RandomizeSlice(&r); err != nil {
o := make({{$varNameSingular}}Slice, 2)
if err = boil.RandomizeSlice(&o); err != nil {
t.Errorf("%d: Unable to randomize {{$tableNameSingular}} slice: %s", err)
}
// insert two random columns to test DeleteAll
for i := 0; i < len(r); i++ {
err = r[i].Insert()
for i := 0; i < len(o); i++ {
err = o[i].Insert()
if err != nil {
t.Errorf("Unable to insert {{$tableNameSingular}}:\n%#v\nErr: %s", r[i], err)
t.Errorf("Unable to insert {{$tableNameSingular}}:\n%#v\nErr: %s", o[i], err)
}
}
@ -36,7 +36,7 @@ func Test{{$tableNamePlural}}All(t *testing.T) {
t.Errorf("Expected {{.Table.Name}} table to be empty, but got %d rows", c)
}
o := make({{$varNameSingular}}Slice, 3)
o = make({{$varNameSingular}}Slice, 3)
if err = boil.RandomizeSlice(&o); err != nil {
t.Errorf("%d: Unable to randomize {{$tableNameSingular}} slice: %s", err)
}

View file

@ -13,22 +13,28 @@ func {{$varNamePlural}}DeleteAllRows(t *testing.T) {
func Test{{$tableNamePlural}}Delete(t *testing.T) {
var err error
var c int64
// Start from a clean slate
{{$varNamePlural}}DeleteAllRows(t)
r := make({{$varNameSingular}}Slice, 3)
// Check number of rows in table to ensure DeleteAll was successful
c, err = {{$tableNamePlural}}().Count()
if c != 0 {
t.Errorf("Expected 0 rows after ObjDeleteAllRows() call, but got %d rows", c)
}
o := make({{$varNameSingular}}Slice, 3)
if err = boil.RandomizeSlice(&o); err != nil {
t.Errorf("%d: Unable to randomize {{$tableNameSingular}} slice: %s", err)
}
// insert random columns to test DeleteAll
for i := 0; i < len(r); i++ {
err = boil.RandomizeStruct(r[i])
for i := 0; i < len(o); i++ {
err = o[i].Insert()
if err != nil {
t.Errorf("%d: Unable to randomize {{$tableNameSingular}} struct: %s", i, err)
}
err = r[i].Insert()
if err != nil {
t.Errorf("Unable to insert {{$tableNameSingular}}:\n%#v\nErr: %s", r[i], err)
t.Errorf("Unable to insert {{$tableNameSingular}}:\n%#v\nErr: %s", o[i], err)
}
}
@ -39,21 +45,19 @@ func Test{{$tableNamePlural}}Delete(t *testing.T) {
}
// Check number of rows in table to ensure DeleteAll was successful
var c int64
c, err = {{$tableNamePlural}}().Count()
if c != 0 {
t.Errorf("Expected {{.Table.Name}} table to be empty, but got %d rows", c)
t.Errorf("Expected 0 rows after Obj().DeleteAll() call, but got %d rows", c)
}
// insert random columns to test DeleteAll
o := make({{$varNameSingular}}Slice, 3)
for i := 0; i < len(o); i++ {
err = boil.RandomizeStruct(o[i])
if err != nil {
t.Errorf("%d: Unable to randomize {{$tableNameSingular}} struct: %s", i, err)
}
o = make({{$varNameSingular}}Slice, 3)
if err = boil.RandomizeSlice(&o); err != nil {
t.Errorf("%d: Unable to randomize {{$tableNameSingular}} slice: %s", err)
}
for i := 0; i < len(o); i++ {
err = o[i].Insert()
if err != nil {
t.Errorf("Unable to insert {{$tableNameSingular}}:\n%#v\nErr: %s", o[i], err)
@ -67,11 +71,15 @@ func Test{{$tableNamePlural}}Delete(t *testing.T) {
c, err = {{$tableNamePlural}}().Count()
if c != 0 {
t.Errorf("Expected {{.Table.Name}} table to be empty, but got %d rows", c)
t.Errorf("Expected 0 rows after objSlice.DeleteAll() call, but got %d rows", c)
}
// insert random columns to test Delete
o = make({{$varNameSingular}}Slice, 3)
if err = boil.RandomizeSlice(&o); err != nil {
t.Errorf("%d: Unable to randomize {{$tableNameSingular}} slice: %s", err)
}
for i := 0; i < len(o); i++ {
err = boil.RandomizeStruct(o[i])
if err != nil {
@ -84,12 +92,12 @@ func Test{{$tableNamePlural}}Delete(t *testing.T) {
}
}
//o[0].Delete()
o[0].Delete()
// Check number of rows in table to ensure DeleteAll was successful
c, err = {{$tableNamePlural}}().Count()
if c != 2 {
t.Errorf("Expected {{.Table.Name}} table to have 2 rows, but got %d rows", c)
t.Errorf("Expected 2 rows after obj.Delete() call, but got %d rows", c)
}
}

View file

@ -0,0 +1,49 @@
{{- $tableNameSingular := titleCaseSingular .Table.Name -}}
{{- $dbName := singular .Table.Name -}}
{{- $tableNamePlural := titleCasePlural .Table.Name -}}
{{- $varNamePlural := camelCasePlural .Table.Name -}}
{{- $varNameSingular := camelCaseSingular .Table.Name -}}
func Test{{$tableNamePlural}}InPrimaryKeyArgs(t *testing.T) {
var err error
var o {{$tableNameSingular}}
o = {{$tableNameSingular}}{}
if err = boil.RandomizeStruct(&o); err != nil {
t.Errorf("Could not randomize struct: %s", err)
}
args := o.inPrimaryKeyArgs()
if len(args) != len({{$varNameSingular}}PrimaryKeyColumns) {
t.Errorf("Expected args to be len %d, but got %d", len({{$varNameSingular}}PrimaryKeyColumns), len(args))
}
{{range $key, $value := .Table.PKey.Columns -}}
if o.{{titleCase $value}} != args[{{$key}}] {
t.Errorf("Expected args[{{$key}}] to be value of o.{{titleCase $value}}, but got %#v", args[{{$key}}])
}
{{- end}}
}
func Test{{$tableNamePlural}}SliceInPrimaryKeyArgs(t *testing.T) {
var err error
o := make({{$varNameSingular}}Slice, 3)
if err = boil.RandomizeSlice(&o); err != nil {
t.Errorf("Could not randomize slice: %s", err)
}
args := o.inPrimaryKeyArgs()
if len(args) != len({{$varNameSingular}}PrimaryKeyColumns) * 3 {
t.Errorf("Expected args to be len %d, but got %d", len({{$varNameSingular}}PrimaryKeyColumns) * 3, len(args))
}
for i := 0; i < len({{$varNameSingular}}PrimaryKeyColumns) * 3; i++ {
{{range $key, $value := .Table.PKey.Columns -}}
if o[i].{{titleCase $value}} != args[i] {
t.Errorf("Expected args[%d] to be value of o.{{titleCase $value}}, but got %#v", i, args[i])
}
}
{{- end}}
}