gorush/status/status_test.go

243 lines
6.1 KiB
Go

package status
import (
"log"
"testing"
"time"
"github.com/appleboy/gorush/config"
"github.com/appleboy/gorush/logx"
"github.com/stretchr/testify/assert"
)
func TestMain(m *testing.M) {
PushConf, _ := config.LoadConf("")
if err := logx.InitLog(
PushConf.Log.AccessLevel,
PushConf.Log.AccessLog,
PushConf.Log.ErrorLevel,
PushConf.Log.ErrorLog,
); err != nil {
log.Fatal(err)
}
m.Run()
}
func TestStorageDriverExist(t *testing.T) {
PushConf, _ := config.LoadConf("")
PushConf.Stat.Engine = "Test"
err := InitAppStatus(PushConf)
assert.Error(t, err)
}
func TestStatForMemoryEngine(t *testing.T) {
// wait android push notification response.
time.Sleep(5 * time.Second)
var val int64
PushConf, _ := config.LoadConf("")
PushConf.Stat.Engine = "memory"
err := InitAppStatus(PushConf)
assert.Nil(t, err)
StatStorage.AddTotalCount(100)
StatStorage.AddIosSuccess(200)
StatStorage.AddIosError(300)
StatStorage.AddAndroidSuccess(400)
StatStorage.AddAndroidError(500)
val = StatStorage.GetTotalCount()
assert.Equal(t, int64(100), val)
val = StatStorage.GetIosSuccess()
assert.Equal(t, int64(200), val)
val = StatStorage.GetIosError()
assert.Equal(t, int64(300), val)
val = StatStorage.GetAndroidSuccess()
assert.Equal(t, int64(400), val)
val = StatStorage.GetAndroidError()
assert.Equal(t, int64(500), val)
}
func TestRedisServerSuccess(t *testing.T) {
PushConf, _ := config.LoadConf("")
PushConf.Stat.Engine = "redis"
PushConf.Stat.Redis.Addr = "redis:6379"
err := InitAppStatus(PushConf)
assert.NoError(t, err)
}
func TestRedisServerError(t *testing.T) {
PushConf, _ := config.LoadConf("")
PushConf.Stat.Engine = "redis"
PushConf.Stat.Redis.Addr = "redis:6370"
err := InitAppStatus(PushConf)
assert.Error(t, err)
}
func TestStatForRedisEngine(t *testing.T) {
var val int64
PushConf, _ := config.LoadConf("")
PushConf.Stat.Engine = "redis"
PushConf.Stat.Redis.Addr = "redis:6379"
err := InitAppStatus(PushConf)
assert.Nil(t, err)
StatStorage.Init()
StatStorage.Reset()
StatStorage.AddTotalCount(100)
StatStorage.AddIosSuccess(200)
StatStorage.AddIosError(300)
StatStorage.AddAndroidSuccess(400)
StatStorage.AddAndroidError(500)
val = StatStorage.GetTotalCount()
assert.Equal(t, int64(100), val)
val = StatStorage.GetIosSuccess()
assert.Equal(t, int64(200), val)
val = StatStorage.GetIosError()
assert.Equal(t, int64(300), val)
val = StatStorage.GetAndroidSuccess()
assert.Equal(t, int64(400), val)
val = StatStorage.GetAndroidError()
assert.Equal(t, int64(500), val)
}
func TestDefaultEngine(t *testing.T) {
var val int64
// defaul engine as memory
PushConf, _ := config.LoadConf("")
err := InitAppStatus(PushConf)
assert.Nil(t, err)
StatStorage.Reset()
StatStorage.AddTotalCount(100)
StatStorage.AddIosSuccess(200)
StatStorage.AddIosError(300)
StatStorage.AddAndroidSuccess(400)
StatStorage.AddAndroidError(500)
val = StatStorage.GetTotalCount()
assert.Equal(t, int64(100), val)
val = StatStorage.GetIosSuccess()
assert.Equal(t, int64(200), val)
val = StatStorage.GetIosError()
assert.Equal(t, int64(300), val)
val = StatStorage.GetAndroidSuccess()
assert.Equal(t, int64(400), val)
val = StatStorage.GetAndroidError()
assert.Equal(t, int64(500), val)
}
func TestStatForBoltDBEngine(t *testing.T) {
var val int64
PushConf, _ := config.LoadConf("")
PushConf.Stat.Engine = "boltdb"
err := InitAppStatus(PushConf)
assert.Nil(t, err)
StatStorage.Reset()
StatStorage.AddTotalCount(100)
StatStorage.AddIosSuccess(200)
StatStorage.AddIosError(300)
StatStorage.AddAndroidSuccess(400)
StatStorage.AddAndroidError(500)
val = StatStorage.GetTotalCount()
assert.Equal(t, int64(100), val)
val = StatStorage.GetIosSuccess()
assert.Equal(t, int64(200), val)
val = StatStorage.GetIosError()
assert.Equal(t, int64(300), val)
val = StatStorage.GetAndroidSuccess()
assert.Equal(t, int64(400), val)
val = StatStorage.GetAndroidError()
assert.Equal(t, int64(500), val)
}
// func TestStatForBuntDBEngine(t *testing.T) {
// var val int64
// PushConf.Stat.Engine = "buntdb"
// err := InitAppStatus()
// assert.Nil(t, err)
// StatStorage.Reset()
// StatStorage.AddTotalCount(100)
// StatStorage.AddIosSuccess(200)
// StatStorage.AddIosError(300)
// StatStorage.AddAndroidSuccess(400)
// StatStorage.AddAndroidError(500)
// val = StatStorage.GetTotalCount()
// assert.Equal(t, int64(100), val)
// val = StatStorage.GetIosSuccess()
// assert.Equal(t, int64(200), val)
// val = StatStorage.GetIosError()
// assert.Equal(t, int64(300), val)
// val = StatStorage.GetAndroidSuccess()
// assert.Equal(t, int64(400), val)
// val = StatStorage.GetAndroidError()
// assert.Equal(t, int64(500), val)
// }
// func TestStatForLevelDBEngine(t *testing.T) {
// var val int64
// PushConf.Stat.Engine = "leveldb"
// err := InitAppStatus()
// assert.Nil(t, err)
// StatStorage.Reset()
// StatStorage.AddTotalCount(100)
// StatStorage.AddIosSuccess(200)
// StatStorage.AddIosError(300)
// StatStorage.AddAndroidSuccess(400)
// StatStorage.AddAndroidError(500)
// val = StatStorage.GetTotalCount()
// assert.Equal(t, int64(100), val)
// val = StatStorage.GetIosSuccess()
// assert.Equal(t, int64(200), val)
// val = StatStorage.GetIosError()
// assert.Equal(t, int64(300), val)
// val = StatStorage.GetAndroidSuccess()
// assert.Equal(t, int64(400), val)
// val = StatStorage.GetAndroidError()
// assert.Equal(t, int64(500), val)
// }
// func TestStatForBadgerEngine(t *testing.T) {
// var val int64
// PushConf.Stat.Engine = "badger"
// err := InitAppStatus()
// assert.Nil(t, err)
// StatStorage.Reset()
// StatStorage.AddTotalCount(100)
// StatStorage.AddIosSuccess(200)
// StatStorage.AddIosError(300)
// StatStorage.AddAndroidSuccess(400)
// StatStorage.AddAndroidError(500)
// val = StatStorage.GetTotalCount()
// assert.Equal(t, int64(100), val)
// val = StatStorage.GetIosSuccess()
// assert.Equal(t, int64(200), val)
// val = StatStorage.GetIosError()
// assert.Equal(t, int64(300), val)
// val = StatStorage.GetAndroidSuccess()
// assert.Equal(t, int64(400), val)
// val = StatStorage.GetAndroidError()
// assert.Equal(t, int64(500), val)
// }