109 lines
2.4 KiB
Go
109 lines
2.4 KiB
Go
package lifted
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
lua "github.com/yuin/gopher-lua"
|
|
)
|
|
|
|
func TestOpenSafeOs(t *testing.T) {
|
|
L := lua.NewState()
|
|
defer L.Close()
|
|
|
|
expect := 1
|
|
|
|
actual := OpenSafeOs(L)
|
|
|
|
if actual != expect {
|
|
t.Errorf("OpenSafeOs returned %v, expected %v", actual, expect)
|
|
}
|
|
}
|
|
|
|
func TestSafeOsLoader(t *testing.T) {
|
|
L := lua.NewState()
|
|
defer L.Close()
|
|
|
|
expect := 1
|
|
|
|
actual := SafeOsLoader(L)
|
|
|
|
if actual != expect {
|
|
t.Errorf("SafeOsLoader returned %v, expected %v", actual, expect)
|
|
}
|
|
}
|
|
|
|
func TestOsTime(t *testing.T) {
|
|
L := lua.NewState()
|
|
defer L.Close()
|
|
|
|
actual := osTime(L)
|
|
if actual != 1 {
|
|
t.Errorf("osTime returned %v, expected %v", actual, 1)
|
|
}
|
|
}
|
|
|
|
func TestGetIntField(t *testing.T) {
|
|
tb := &lua.LTable{}
|
|
tb.RawSetString("min", lua.LNumber(15))
|
|
tb.RawSetString("day", lua.LString("a"))
|
|
|
|
// Test with valid key
|
|
expected := 15
|
|
if v := getIntField(tb, "min", 0); v != expected {
|
|
t.Errorf("getIntField(tb, \"min\", 0) returned %d, expected %d", v, expected)
|
|
}
|
|
|
|
// Test with non-number value
|
|
expected = 0
|
|
if v := getIntField(tb, "day", 0); v != expected {
|
|
t.Errorf("getIntField(tb, \"day\", 0) returned %d, expected %d", v, expected)
|
|
}
|
|
}
|
|
|
|
func TestGetBoolField(t *testing.T) {
|
|
tb := &lua.LTable{}
|
|
tb.RawSetString("min", lua.LNumber(15))
|
|
tb.RawSetString("isdst", lua.LBool(false))
|
|
|
|
// Test with valid key
|
|
if v := getBoolField(tb, "isdst", false); v {
|
|
t.Errorf("getBoolField(tb, \"isdst\", false) returned %v, expected %v", v, false)
|
|
}
|
|
|
|
// Test with non-number value
|
|
if v := getBoolField(tb, "min", true); !v {
|
|
t.Errorf("getBoolField(tb, \"min\", true) returned %v, expected %v", v, true)
|
|
}
|
|
}
|
|
|
|
func TestStrftime(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
time time.Time
|
|
cfmt string
|
|
want string
|
|
}{
|
|
{
|
|
name: "character in cDateFlagToGo",
|
|
time: time.Date(2022, time.February, 16, 15, 45, 27, 0, time.UTC),
|
|
cfmt: "%Y/%m/%d %H:%M:%S",
|
|
want: "2022/02/16 15:45:27",
|
|
},
|
|
{
|
|
name: "character not in cDateFlagToGo",
|
|
time: time.Date(2022, time.February, 16, 15, 45, 27, 0, time.FixedZone("", -8*60*60)),
|
|
cfmt: "%A, %w %B %Y %I:%M:%S %p %Z %e",
|
|
want: "Wednesday, 3 February 2022 03:45:27 PM -0800 %e",
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := strftime(tt.time, tt.cfmt); got != tt.want {
|
|
t.Errorf("strftime(%v, %q) got %q, want %q", tt.time, tt.cfmt, got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|