host_source_test.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package gocql
  2. import "testing"
  3. func TestUnmarshalCassVersion(t *testing.T) {
  4. tests := [...]struct {
  5. data string
  6. version cassVersion
  7. }{
  8. {"3.2", cassVersion{3, 2, 0}},
  9. {"2.10.1-SNAPSHOT", cassVersion{2, 10, 1}},
  10. {"1.2.3", cassVersion{1, 2, 3}},
  11. }
  12. for i, test := range tests {
  13. v := &cassVersion{}
  14. if err := v.UnmarshalCQL(nil, []byte(test.data)); err != nil {
  15. t.Errorf("%d: %v", i, err)
  16. } else if *v != test.version {
  17. t.Errorf("%d: expected %#+v got %#+v", i, test.version, *v)
  18. }
  19. }
  20. }
  21. func TestCassVersionBefore(t *testing.T) {
  22. tests := [...]struct {
  23. version cassVersion
  24. major, minor, patch int
  25. }{
  26. {cassVersion{1, 0, 0}, 0, 0, 0},
  27. {cassVersion{0, 1, 0}, 0, 0, 0},
  28. {cassVersion{0, 0, 1}, 0, 0, 0},
  29. {cassVersion{1, 0, 0}, 0, 1, 0},
  30. {cassVersion{0, 1, 0}, 0, 0, 1},
  31. }
  32. for i, test := range tests {
  33. if !test.version.Before(test.major, test.minor, test.patch) {
  34. t.Errorf("%d: expected v%d.%d.%d to be before %v", i, test.major, test.minor, test.patch, test.version)
  35. }
  36. }
  37. }