piwigo-cli/internal/debug/dump_test.go
2022-01-02 17:46:18 +01:00

72 lines
1.4 KiB
Go

package debug_test
import (
"fmt"
"math"
"testing"
"time"
"github.com/celogeek/piwigo-cli/internal/debug"
"github.com/celogeek/piwigo-cli/internal/piwigo/piwigotools"
)
func TestHelloWorldDump(t *testing.T) {
var test struct {
Hello string `json:"hello"`
World string `json:"world"`
}
test.Hello = "abc"
test.World = "def"
want := `{
"hello": "abc",
"world": "def"
}`
received := debug.Dump(test)
if received != want {
t.Fatalf("Dump hello world failed!\nReceive:\n\"%s\"\nWant:\n\"%s\"\n", received, want)
}
}
func TestDumpTimeResult(t *testing.T) {
var test struct {
CreatedAt *piwigotools.TimeResult
}
now := time.Now()
tr := piwigotools.TimeResult(now)
test.CreatedAt = &tr
want := fmt.Sprintf(`{
"CreatedAt": "%s"
}`, now.Format("2006-01-02 15:04:05"))
received := debug.Dump(test)
if received != want {
t.Fatalf("Dump TimeResult failed!\nReceive:\n\"%s\"\nWant:\n\"%s\"\n", received, want)
}
}
func TestDumpNullTimeResult(t *testing.T) {
var test struct {
CreatedAt *piwigotools.TimeResult
}
want := fmt.Sprint(`{
"CreatedAt": null
}`)
received := debug.Dump(test)
if received != want {
t.Fatalf("Dump TimeResult failed!\nReceive:\n\"%s\"\nWant:\n\"%s\"\n", received, want)
}
}
func TestDumpError(t *testing.T) {
test := math.Inf(1)
want := ""
received := debug.Dump(test)
if received != want {
t.Fatalf("Dump TimeResult failed!\nReceive:\n\"%s\"\nWant:\n\"%s\"\n", received, want)
}
}