good morning!!!!

Skip to content
Snippets Groups Projects
Commit 4120127d authored by Carlos Nieto's avatar Carlos Nieto
Browse files

Adding tests for filter count.

parent 43a5bee3
Branches
Tags
No related merge requests found
...@@ -220,7 +220,7 @@ type Result interface { ...@@ -220,7 +220,7 @@ type Result interface {
Update(interface{}) error Update(interface{}) error
// Counts all items within the result set. // Counts all items within the result set.
Count() (int, error) Count() (uint64, error)
// Fetches all the results of the query into the given pointer. // Fetches all the results of the query into the given pointer.
// //
......
...@@ -41,8 +41,6 @@ type Table struct { ...@@ -41,8 +41,6 @@ type Table struct {
// Creates a filter with the given terms. // Creates a filter with the given terms.
func (self *Table) Filter(terms ...interface{}) (db.Result, error) { func (self *Table) Filter(terms ...interface{}) (db.Result, error) {
var err error
queryChunks := sqlutil.NewQueryChunks() queryChunks := sqlutil.NewQueryChunks()
// Analyzing given terms. // Analyzing given terms.
...@@ -95,6 +93,7 @@ func (self *Table) Filter(terms ...interface{}) (db.Result, error) { ...@@ -95,6 +93,7 @@ func (self *Table) Filter(terms ...interface{}) (db.Result, error) {
queryChunks.Conditions = `1 = 1` queryChunks.Conditions = `1 = 1`
} }
/*
// Actually executing query. // Actually executing query.
rows, err := self.source.doQuery( rows, err := self.source.doQuery(
// Mandatory // Mandatory
...@@ -107,10 +106,14 @@ func (self *Table) Filter(terms ...interface{}) (db.Result, error) { ...@@ -107,10 +106,14 @@ func (self *Table) Filter(terms ...interface{}) (db.Result, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
*/
result := &Result{ result := &Result{
self,
queryChunks,
sqlutil.Result{ sqlutil.Result{
Rows: rows, //Rows: rows,
Table: &self.T, Table: &self.T,
}, },
} }
......
...@@ -104,6 +104,7 @@ func TestTruncate(t *testing.T) { ...@@ -104,6 +104,7 @@ func TestTruncate(t *testing.T) {
// Appends some artists, albums and tracks. // Appends some artists, albums and tracks.
func TestAppend(t *testing.T) { func TestAppend(t *testing.T) {
var err error var err error
var id interface{} var id interface{}
...@@ -154,6 +155,39 @@ func TestAppend(t *testing.T) { ...@@ -154,6 +155,39 @@ func TestAppend(t *testing.T) {
} }
func TestResult(t *testing.T) {
var err error
var res db.Result
sess, err := db.Open(wrapperName, settings)
if err != nil {
t.Fatalf(err.Error())
}
defer sess.Close()
artist, _ := sess.Collection("artist")
res, err = artist.Filter()
if err != nil {
t.Fatalf(err.Error())
}
total, err := res.Count()
if err != nil {
t.Fatalf(err.Error())
}
if total == 0 {
t.Fatalf("Should not be empty, we've just added some rows.")
}
}
/* /*
// Appends maps and structs. // Appends maps and structs.
func TestAppend(t *testing.T) { func TestAppend(t *testing.T) {
......
...@@ -24,10 +24,17 @@ ...@@ -24,10 +24,17 @@
package sqlite package sqlite
import ( import (
"fmt"
"menteslibres.net/gosexy/db/util/sqlutil" "menteslibres.net/gosexy/db/util/sqlutil"
) )
type counter struct {
Total uint64 `field:"total"`
}
type Result struct { type Result struct {
t *Table
queryChunks *sqlutil.QueryChunks
sqlutil.Result sqlutil.Result
} }
...@@ -51,6 +58,23 @@ func (self *Result) Update(terms interface{}) error { ...@@ -51,6 +58,23 @@ func (self *Result) Update(terms interface{}) error {
return nil return nil
} }
func (self *Result) Count() (int, error) { func (self *Result) Count() (uint64, error) {
return 0, nil
rows, err := self.t.source.doQuery(
fmt.Sprintf(
`SELECT COUNT(1) AS total FROM %s WHERE %s`,
self.t.Name(),
self.queryChunks.Conditions,
),
self.queryChunks.Arguments,
)
if err != nil {
return 0, err
}
dst := counter{}
self.Table.FetchRow(&dst, rows)
return dst.Total, nil
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment