281 lines
5.4 KiB
Go
281 lines
5.4 KiB
Go
package mongodb
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
"go.mongodb.org/mongo-driver/mongo"
|
|
"pet-house.com/core/g"
|
|
"pet-house.com/core/server/cache"
|
|
_ "pet-house.com/core/server/cache"
|
|
)
|
|
|
|
func TestGetClient(t *testing.T) {
|
|
CONFIG.Addr = g.TestMongoAddr
|
|
defer Remove()
|
|
defer cache.Remove()
|
|
t.Run("test mongodb getClient", func(t *testing.T) {
|
|
client, err := GetClient()
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
return
|
|
}
|
|
if client == nil {
|
|
t.Error("mongodb clinet is nil")
|
|
}
|
|
defer func() {
|
|
if err = client.Disconnect(); err != nil {
|
|
t.Error(err)
|
|
}
|
|
}()
|
|
})
|
|
|
|
}
|
|
func TestPing(t *testing.T) {
|
|
CONFIG.Addr = g.TestMongoAddr
|
|
defer Remove()
|
|
defer cache.Remove()
|
|
t.Run("test mongodb ping", func(t *testing.T) {
|
|
client, err := GetClient()
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
return
|
|
}
|
|
if client == nil {
|
|
t.Error("mongodb clinet is nil")
|
|
}
|
|
defer func() {
|
|
if err = client.Disconnect(); err != nil {
|
|
t.Error(err)
|
|
}
|
|
}()
|
|
err = client.Ping()
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
return
|
|
}
|
|
})
|
|
}
|
|
func TestInsertOne(t *testing.T) {
|
|
CONFIG.Addr = g.TestMongoAddr
|
|
defer Remove()
|
|
defer cache.Remove()
|
|
t.Run("test mongodb InsertOne", func(t *testing.T) {
|
|
client, err := GetClient()
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
return
|
|
}
|
|
if client == nil {
|
|
t.Error("mongodb clinet is nil")
|
|
}
|
|
defer func() {
|
|
if err = client.Disconnect(); err != nil {
|
|
t.Error(err)
|
|
}
|
|
}()
|
|
res, err := client.InsertOne("testing", bson.D{
|
|
{Key: "name", Value: "pi"}, {Key: "value", Value: 3.14159},
|
|
})
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
return
|
|
}
|
|
if res == "" {
|
|
t.Error("inserted id is empty")
|
|
}
|
|
})
|
|
}
|
|
func TestGetCollection(t *testing.T) {
|
|
CONFIG.Addr = g.TestMongoAddr
|
|
defer Remove()
|
|
defer cache.Remove()
|
|
t.Run("test mongodb GetCollection", func(t *testing.T) {
|
|
client, err := GetClient()
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
return
|
|
}
|
|
if client == nil {
|
|
t.Error("mongodb clinet is nil")
|
|
}
|
|
defer func() {
|
|
if err = client.Disconnect(); err != nil {
|
|
t.Error(err)
|
|
}
|
|
}()
|
|
res := client.getCollection("testing")
|
|
if res == nil {
|
|
t.Error("Collection return empty")
|
|
}
|
|
})
|
|
}
|
|
|
|
func TestGetAggregate(t *testing.T) {
|
|
CONFIG.Addr = g.TestMongoAddr
|
|
defer Remove()
|
|
defer cache.Remove()
|
|
t.Run("test mongodb Aggregate", func(t *testing.T) {
|
|
client, err := GetClient()
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
return
|
|
}
|
|
if client == nil {
|
|
t.Error("mongodb clinet is nil")
|
|
return
|
|
}
|
|
defer func() {
|
|
if err = client.Disconnect(); err != nil {
|
|
t.Error(err)
|
|
}
|
|
}()
|
|
pipeline := mongo.Pipeline{
|
|
{
|
|
{"$match", bson.D{
|
|
{"items.fruit", "banana"},
|
|
}},
|
|
},
|
|
{
|
|
{"$sort", bson.D{
|
|
{"date", 1},
|
|
}},
|
|
},
|
|
}
|
|
res, err := client.Aggregate("testing", pipeline)
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
return
|
|
}
|
|
if res == nil {
|
|
t.Error("Collection return empty")
|
|
}
|
|
})
|
|
}
|
|
|
|
func TestFind(t *testing.T) {
|
|
CONFIG.Addr = g.TestMongoAddr
|
|
defer Remove()
|
|
defer cache.Remove()
|
|
t.Run("test mongodb Find", func(t *testing.T) {
|
|
client, err := GetClient()
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
return
|
|
}
|
|
if client == nil {
|
|
t.Error("mongodb clinet is nil")
|
|
return
|
|
}
|
|
defer func() {
|
|
if err = client.Disconnect(); err != nil {
|
|
t.Error(err)
|
|
}
|
|
}()
|
|
res, err := client.Find("testing", bson.D{{"end", nil}})
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
return
|
|
}
|
|
if res == nil {
|
|
t.Error("Collection return empty")
|
|
}
|
|
})
|
|
}
|
|
|
|
func TestFindOne(t *testing.T) {
|
|
CONFIG.Addr = g.TestMongoAddr
|
|
defer Remove()
|
|
defer cache.Remove()
|
|
t.Run("test mongodb FindOne", func(t *testing.T) {
|
|
client, err := GetClient()
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
return
|
|
}
|
|
if client == nil {
|
|
t.Error("mongodb clinet is nil")
|
|
return
|
|
}
|
|
defer func() {
|
|
if err = client.Disconnect(); err != nil {
|
|
t.Error(err)
|
|
}
|
|
}()
|
|
res := client.FindOne("testing", bson.D{{"end", nil}})
|
|
if res == nil {
|
|
t.Error("Collection return empty")
|
|
}
|
|
})
|
|
}
|
|
|
|
func TestDeleteOne(t *testing.T) {
|
|
CONFIG.Addr = g.TestMongoAddr
|
|
defer Remove()
|
|
defer cache.Remove()
|
|
t.Run("test mongodb DeleteOne", func(t *testing.T) {
|
|
client, err := GetClient()
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
return
|
|
}
|
|
if client == nil {
|
|
t.Error("mongodb clinet is nil")
|
|
return
|
|
}
|
|
defer func() {
|
|
if err = client.Disconnect(); err != nil {
|
|
t.Error(err)
|
|
}
|
|
}()
|
|
err = client.DeleteOne("testing", bson.D{{"end", nil}})
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
return
|
|
}
|
|
})
|
|
}
|
|
|
|
func TestUpdateOne(t *testing.T) {
|
|
CONFIG.Addr = g.TestMongoAddr
|
|
defer Remove()
|
|
defer cache.Remove()
|
|
t.Run("test mongodb UpdateOne", func(t *testing.T) {
|
|
client, err := GetClient()
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
return
|
|
}
|
|
if client == nil {
|
|
t.Error("mongodb clinet is nil")
|
|
return
|
|
}
|
|
defer func() {
|
|
if err = client.Disconnect(); err != nil {
|
|
t.Error(err)
|
|
}
|
|
}()
|
|
id, err := client.InsertOne("testing", bson.D{
|
|
{Key: "name", Value: "pi"}, {Key: "value", Value: 3.14159},
|
|
})
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
return
|
|
}
|
|
b := bson.D{
|
|
{Key: "$set", Value: bson.D{
|
|
{Key: "name", Value: "pi"},
|
|
{Key: "value", Value: 3.1415926},
|
|
}},
|
|
}
|
|
res, err := client.UpdateOne("testing", bson.D{{"_id", id}}, b)
|
|
if err != nil {
|
|
t.Error(err.Error())
|
|
return
|
|
}
|
|
if res == nil {
|
|
t.Error("Collection return empty")
|
|
}
|
|
})
|
|
}
|