What I really want to do are: hide mongdb connections stuffs(creation,clone..close) and error handling stuff like this:
func ExcuteQuery(collection string, query interface{}) []byte {
ses := ensureMongoConnection("ExcuteQuery")
defer ses.Close()
var result []interface{}
err := ses.DB(databaseName).C(collection).Find(query).All(&result)
if err != nil {
panic(err)
}
// check err
rawjson, err := json.Marshal(result)
// return result
if err != nil {
panic(err)
}
return rawjson
}
And test caller will like this:
func (s *MySuite) TestGetModel(c *C) {
res := mgd.ExcuteQuery(collection, nil)
//************************************here something get printed out***********************************
fmt.Println(res)
var list []MySuite
json.Unmarshal(res, list)
//************************************but why here is length of list 0?***********************************
c.Check(list[0].Value, Equals, value)