kubemodel_codecs_test.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package kubemodel
  2. import (
  3. "bytes"
  4. "testing"
  5. "time"
  6. "github.com/stretchr/testify/require"
  7. )
  8. func TestKubeModelSetCodecRoundTrip(t *testing.T) {
  9. start := time.Now().UTC().Truncate(time.Hour)
  10. end := start.Add(time.Hour)
  11. t.Run("empty KubeModelSet", func(t *testing.T) {
  12. kms := NewKubeModelSet(start, end)
  13. b, err := kms.MarshalBinary()
  14. require.NoError(t, err)
  15. act := new(KubeModelSet)
  16. err = act.UnmarshalBinary(b)
  17. require.NoError(t, err)
  18. KubeModelSetEquals(t, kms, act)
  19. })
  20. t.Run("full KubeModelSet", func(t *testing.T) {
  21. kms := NewMockKubeModelSet(start, end)
  22. b, err := kms.MarshalBinary()
  23. require.NoError(t, err)
  24. act := new(KubeModelSet)
  25. err = act.UnmarshalBinary(b)
  26. require.NoError(t, err)
  27. KubeModelSetEquals(t, kms, act)
  28. })
  29. t.Run("full KubeModelSet streaming (MarshalBinaryTo/UnmarshalBinaryFromReader)", func(t *testing.T) {
  30. kms := NewMockKubeModelSet(start, end)
  31. var buf bytes.Buffer
  32. err := kms.MarshalBinaryTo(&buf)
  33. require.NoError(t, err)
  34. act := new(KubeModelSet)
  35. err = act.UnmarshalBinaryFromReader(&buf)
  36. require.NoError(t, err)
  37. KubeModelSetEquals(t, kms, act)
  38. })
  39. }