Add a GetTable helper.
This commit is contained in:
parent
231b45d57a
commit
bac9bb30ce
2 changed files with 45 additions and 2 deletions
17
bdb/table.go
17
bdb/table.go
|
@ -1,5 +1,7 @@
|
|||
package bdb
|
||||
|
||||
import "fmt"
|
||||
|
||||
// Table metadata from the database schema.
|
||||
type Table struct {
|
||||
Name string
|
||||
|
@ -11,7 +13,18 @@ type Table struct {
|
|||
IsJoinTable bool
|
||||
}
|
||||
|
||||
// GetColumn by name. Panics if not found (for use in templates).
|
||||
// GetTable by name. Panics if not found (for use in templates mostly).
|
||||
func GetTable(tables []Table, name string) (tbl Table) {
|
||||
for _, t := range tables {
|
||||
if t.Name == name {
|
||||
return t
|
||||
}
|
||||
}
|
||||
|
||||
panic(fmt.Sprintf("could not find table name: %s", name))
|
||||
}
|
||||
|
||||
// GetColumn by name. Panics if not found (for use in templates mostly).
|
||||
func (t Table) GetColumn(name string) (col Column) {
|
||||
for _, c := range t.Columns {
|
||||
if c.Name == name {
|
||||
|
@ -19,5 +32,5 @@ func (t Table) GetColumn(name string) (col Column) {
|
|||
}
|
||||
}
|
||||
|
||||
panic("hello")
|
||||
panic(fmt.Sprintf("could not find column name: %s", name))
|
||||
}
|
||||
|
|
|
@ -2,6 +2,36 @@ package bdb
|
|||
|
||||
import "testing"
|
||||
|
||||
func TestGetTable(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
tables := []Table{
|
||||
{Name: "one"},
|
||||
}
|
||||
|
||||
tbl := GetTable(tables, "one")
|
||||
|
||||
if tbl.Name != "one" {
|
||||
t.Error("didn't get column")
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetTableMissing(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
tables := []Table{
|
||||
{Name: "one"},
|
||||
}
|
||||
|
||||
defer func() {
|
||||
if r := recover(); r == nil {
|
||||
t.Error("expected a panic failure")
|
||||
}
|
||||
}()
|
||||
|
||||
GetTable(tables, "missing")
|
||||
}
|
||||
|
||||
func TestGetColumn(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
|
|
Loading…
Reference in a new issue