129 lines
4.3 KiB
Go
129 lines
4.3 KiB
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
|
|
logger "git.site.quack-lab.dev/dave/cylogger"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestExpandGroupsIntoItemTypeIds(t *testing.T) {
|
|
t.Run("Expand 325", func(t *testing.T) {
|
|
db, err := GetDB()
|
|
require.NoError(t, err)
|
|
|
|
expected := []int64{3536, 11355, 11357, 11359, 16433, 16435, 16437, 16439, 16441, 16443, 16445, 16447, 16449, 16451, 16453, 16455, 18981, 18983, 18985, 18987, 18989, 18991, 19047, 19049, 19051, 19053, 19055, 19057, 22947, 22949, 22951, 23414, 23416, 24569, 26912, 26913, 26914, 32469, 41463, 41464, 41465, 41466, 41467, 41468, 84985, 84986, 84987, 84988}
|
|
|
|
groupID := int64(325)
|
|
types, err := db.ExpandGroupsIntoItemTypeIds([]int64{groupID})
|
|
require.NoError(t, err)
|
|
assert.ElementsMatch(t, expected, types)
|
|
})
|
|
t.Run("Expand 325 and 4", func(t *testing.T) {
|
|
db, err := GetDB()
|
|
require.NoError(t, err)
|
|
|
|
expected := []int64{3536, 11355, 11357, 11359, 16433, 16435, 16437, 16439, 16441, 16443, 16445, 16447, 16449, 16451, 16453, 16455, 18981, 18983, 18985, 18987, 18989, 18991, 19047, 19049, 19051, 19053, 19055, 19057, 22947, 22949, 22951, 23414, 23416, 24569, 26912, 26913, 26914, 32469, 41463, 41464, 41465, 41466, 41467, 41468, 84985, 84986, 84987, 84988, 4} // 4 -> 4 (1 item)
|
|
|
|
groupIDs := []int64{325, 4}
|
|
types, err := db.ExpandGroupsIntoItemTypeIds(groupIDs)
|
|
require.NoError(t, err)
|
|
assert.ElementsMatch(t, expected, types)
|
|
})
|
|
}
|
|
|
|
func TestGetModuleSlots(t *testing.T) {
|
|
logger.Init(logger.LevelDump)
|
|
t.Run("Get slots for 11357 -> High", func(t *testing.T) {
|
|
// Medium Remote Armor Repairer I
|
|
db, err := GetDB()
|
|
require.NoError(t, err)
|
|
slots, err := db.GetModuleSlots([]int64{11357})
|
|
require.NoError(t, err)
|
|
assert.Equal(t, ModuleSlotHigh, slots[11357])
|
|
})
|
|
t.Run("Get slots for 4391 -> Med", func(t *testing.T) {
|
|
// Large Ancillary Shield Booster
|
|
db, err := GetDB()
|
|
require.NoError(t, err)
|
|
slots, err := db.GetModuleSlots([]int64{4391})
|
|
require.NoError(t, err)
|
|
assert.Equal(t, ModuleSlotMid, slots[4391])
|
|
})
|
|
t.Run("Get slots for 4393-> Low", func(t *testing.T) {
|
|
// Drone Damage Amplifier I
|
|
db, err := GetDB()
|
|
require.NoError(t, err)
|
|
slots, err := db.GetModuleSlots([]int64{4393})
|
|
require.NoError(t, err)
|
|
assert.Equal(t, ModuleSlotLow, slots[4393])
|
|
})
|
|
t.Run("Get slots for 25908 -> Rig", func(t *testing.T) {
|
|
// Large Drone Control Range Augmentor I
|
|
db, err := GetDB()
|
|
require.NoError(t, err)
|
|
slots, err := db.GetModuleSlots([]int64{25908})
|
|
require.NoError(t, err)
|
|
assert.Equal(t, ModuleSlotRig, slots[25908])
|
|
})
|
|
t.Run("Get slots for all 3 combined -> High, Mid, Low, Rig", func(t *testing.T) {
|
|
db, err := GetDB()
|
|
require.NoError(t, err)
|
|
slots, err := db.GetModuleSlots([]int64{11357, 4391, 4393, 25908})
|
|
require.NoError(t, err)
|
|
assert.Equal(t, ModuleSlotHigh, slots[11357])
|
|
assert.Equal(t, ModuleSlotMid, slots[4391])
|
|
assert.Equal(t, ModuleSlotLow, slots[4393])
|
|
assert.Equal(t, ModuleSlotRig, slots[25908])
|
|
assert.Equal(t, 4, len(slots))
|
|
})
|
|
t.Run("Get slots for 2454 -> Drone", func(t *testing.T) {
|
|
// Hobgoblin I
|
|
db, err := GetDB()
|
|
require.NoError(t, err)
|
|
slots, err := db.GetModuleSlots([]int64{2454})
|
|
require.NoError(t, err)
|
|
assert.Equal(t, ModuleSlotDrone, slots[2454])
|
|
})
|
|
}
|
|
|
|
// TestCache disabled - cache methods not implemented in DB interface
|
|
// func TestCache(t *testing.T) {
|
|
// t.Run("Get non existent", func(t *testing.T) {
|
|
// db, err := GetDB()
|
|
// require.NoError(t, err)
|
|
// _, err = db.CacheGet("test")
|
|
// assert.ErrorIs(t, err, ErrCacheMiss)
|
|
// })
|
|
// t.Run("Set and get", func(t *testing.T) {
|
|
// db, err := GetDB()
|
|
// require.NoError(t, err)
|
|
//
|
|
// err = db.CacheSet("test", []byte("test"))
|
|
// require.NoError(t, err)
|
|
//
|
|
// cache, err := db.CacheGet("test")
|
|
// require.NoError(t, err)
|
|
// assert.Equal(t, []byte("test"), cache)
|
|
// })
|
|
// t.Run("Test clean", func(t *testing.T) {
|
|
// db, err := GetDB()
|
|
// require.NoError(t, err)
|
|
//
|
|
// err = db.CacheSet("test", []byte("test"))
|
|
// require.NoError(t, err)
|
|
//
|
|
// expiredTime := time.Now().Add(-4 * 24 * time.Hour)
|
|
// db.Get().
|
|
// Model(&CacheEntry{}).
|
|
// Update("created_at", expiredTime)
|
|
//
|
|
// err = db.CacheClean()
|
|
// require.NoError(t, err)
|
|
//
|
|
// _, err = db.CacheGet("test")
|
|
// assert.ErrorIs(t, err, ErrCacheMiss)
|
|
// })
|
|
// }
|