Skip to content

Commit

Permalink
Fix examples to check output
Browse files Browse the repository at this point in the history
  • Loading branch information
willfaught committed Jun 23, 2016
1 parent a6720bd commit ff00a06
Showing 1 changed file with 64 additions and 27 deletions.
91 changes: 64 additions & 27 deletions examples_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,48 +8,85 @@ import (

var mySession = &SessionMock{}

func ExampleBatch() {
var b = mySession.Batch(BatchLogged)
func ExampleIteratorScanMap() {
var iteratorMock = &IteratorMock{}

b.Add("insert into users (id, name) values (123, 'me')")
b.Add("insert into users (id, name) values (456, 'you')")
iteratorMock.When("ScanMap", mock.Any).Call(func(m map[string]interface{}) bool {
m["id"] = 1
m["name"] = "alex"

b.Exec()
}
return false
})

iteratorMock.When("Close").Return(nil)

var sessionMock = &SessionMock{}

const query = "select * from users"

func ExampleIterator() {
var i = mySession.ScanIterator("select * from users")
sessionMock.When("ScanIterator", query, mock.Any).Return(iteratorMock)
sessionMock.When("Close").Return()

for done := false; !done; {
var m = map[string]interface{}{}
var session Session = sessionMock
var iterator = session.ScanIterator(query)
var row = map[string]interface{}{}

done = i.ScanMap(m)
for more := true; more; {
more = iterator.ScanMap(row)

fmt.Println(m)
fmt.Printf("id = %v, name = %v\n", row["id"], row["name"])
}

if err := iterator.Close(); err != nil {
fmt.Println(err)
}

session.Close()

// Output: id = 1, name = alex
}

func ExampleSession() {
var rows, _ = mySession.ScanMapSlice("select * from users")
func ExampleSessionBatch() {
var batchMock = &BatchMock{}

for _, row := range rows {
fmt.Println(row)
batchMock.When("Add", "insert into users (id, name) values (1, 'alex')", mock.Any).Return()
batchMock.When("Exec").Return(fmt.Errorf("invalid"))

var sessionMock = &SessionMock{}

sessionMock.When("Batch", BatchLogged).Return(batchMock)
sessionMock.When("Close").Return()

var session Session = sessionMock
var batch = session.Batch(BatchLogged)

batch.Add("insert into users (id, name) values (1, 'alex')")

if err := batch.Exec(); err != nil {
fmt.Println(err)
}

session.Close()

// Output: invalid
}

func init() {
var i = &IteratorMock{}
func ExampleSessionScanMapSlice() {
var sessionMock = &SessionMock{}

i.When("ScanMap", mock.Any).Call(func(m map[string]interface{}) bool {
m["id"] = 123
m["name"] = "me"
const query = "select * from users"

return false
})
sessionMock.When("ScanMapSlice", query, mock.Any).Return([]map[string]interface{}{{"id": 1, "name": "alex"}}, nil)
sessionMock.When("Close").Return()

var session Session = sessionMock
var rows, _ = session.ScanMapSlice(query)

for _, row := range rows {
fmt.Printf("id = %v, name = %v\n", row["id"], row["name"])
}

i.When("Close").Return(nil)
session.Close()

mySession.When("Exec", mock.Any).Return(nil)
mySession.When("ScanIterator", mock.Any).Return(i)
mySession.When("ScanMap", mock.Any).Return(map[string]interface{}{"id": 1, "name": "me"}, nil)
// Output: id = 1, name = alex
}

0 comments on commit ff00a06

Please sign in to comment.