PageRenderTime 25ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/upid/upid_test.go

https://gitlab.com/silenteh/mesos-go
Go | 64 lines | 52 code | 11 blank | 1 comment | 4 complexity | ed470bddcedba0cc92cb4786fc5f0465 MD5 | raw file
  1. package upid
  2. import (
  3. "math/rand"
  4. "strings"
  5. "testing"
  6. "github.com/stretchr/testify/assert"
  7. )
  8. func generateRandomString() string {
  9. b := make([]byte, rand.Intn(1024))
  10. for i := range b {
  11. b[i] = byte(rand.Int())
  12. }
  13. return strings.Replace(string(b), "@", "", -1)
  14. }
  15. func TestUPIDParse(t *testing.T) {
  16. u, err := Parse("mesos@foo:bar")
  17. assert.Nil(t, u)
  18. assert.Error(t, err)
  19. u, err = Parse("mesoslocalhost5050")
  20. assert.Nil(t, u)
  21. assert.Error(t, err)
  22. u, err = Parse("mesos@localhost")
  23. assert.Nil(t, u)
  24. assert.Error(t, err)
  25. // Simple fuzzy test.
  26. for i := 0; i < 100000; i++ {
  27. ra := generateRandomString()
  28. u, err = Parse(ra)
  29. if u != nil {
  30. println(ra)
  31. }
  32. assert.Nil(t, u)
  33. assert.Error(t, err)
  34. }
  35. }
  36. func TestUPIDString(t *testing.T) {
  37. u, err := Parse("mesos@localhost:5050")
  38. assert.NotNil(t, u)
  39. assert.NoError(t, err)
  40. assert.Equal(t, "mesos@localhost:5050", u.String())
  41. }
  42. func TestUPIDEqual(t *testing.T) {
  43. u1, err := Parse("mesos@localhost:5050")
  44. u2, err := Parse("mesos@localhost:5050")
  45. u3, err := Parse("mesos1@localhost:5050")
  46. u4, err := Parse("mesos@mesos.com:5050")
  47. u5, err := Parse("mesos@localhost:5051")
  48. assert.NoError(t, err)
  49. assert.True(t, u1.Equal(u2))
  50. assert.False(t, u1.Equal(u3))
  51. assert.False(t, u1.Equal(u4))
  52. assert.False(t, u1.Equal(u5))
  53. }