add unit test

This commit is contained in:
chenghonour
2020-07-21 12:37:04 +08:00
parent 534cd3be1c
commit 2f44d9ae18
2 changed files with 40 additions and 5 deletions

View File

@ -7,6 +7,7 @@
package gdb
import (
"errors"
"fmt"
"github.com/gogf/gf/container/gset"
"github.com/gogf/gf/text/gstr"
@ -129,13 +130,13 @@ func (m *Model) FieldsExStr(fields string, prefix ...string) string {
}
// HasField determine whether the field exists in the table.
func (m *Model) HasField(field string) bool {
func (m *Model) HasField(field string) (bool, error) {
tableFields, err := m.db.TableFields(m.tables)
if err != nil {
panic(err)
return false, err
}
if len(tableFields) == 0 {
panic(fmt.Sprintf(`empty table fields for table "%s"`, m.tables))
return false, errors.New(fmt.Sprintf(`empty table fields for table "%s"`, m.tables))
}
fieldsArray := make([]string, len(tableFields))
for k, v := range tableFields {
@ -143,8 +144,8 @@ func (m *Model) HasField(field string) bool {
}
for _, f := range fieldsArray {
if f == field {
return true
return true, nil
}
}
return false
return false, nil
}

View File

@ -2437,3 +2437,37 @@ func Test_Model_Empty_Slice_Argument(t *testing.T) {
t.Assert(len(result), 0)
})
}
func Test_Model_HasTable(t *testing.T) {
table := createTable()
defer dropTable(table)
gtest.C(t, func(t *gtest.T) {
result, err := db.HasTable(table)
t.Assert(result, true)
t.Assert(err, nil)
})
gtest.C(t, func(t *gtest.T) {
result, err := db.HasTable("table12321")
t.Assert(result, false)
t.Assert(err, nil)
})
}
func Test_Model_HasField(t *testing.T) {
table := createTable()
defer dropTable(table)
gtest.C(t, func(t *gtest.T) {
result, err := db.Table(table).HasField("id")
t.Assert(result, true)
t.Assert(err, nil)
})
gtest.C(t, func(t *gtest.T) {
result, err := db.Table(table).HasField("id123")
t.Assert(result, false)
t.Assert(err, nil)
})
}