machine_test.go 842 B

1234567891011121314151617181920212223242526272829303132333435
  1. package urn
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func exec(t *testing.T, testCases []testCase) {
  7. for ii, tt := range testCases {
  8. urn, err := NewMachine().Parse([]byte(tt.in))
  9. ok := err == nil
  10. if ok {
  11. assert.True(t, tt.ok, herror(ii, tt))
  12. assert.Equal(t, tt.obj.prefix, urn.prefix, herror(ii, tt))
  13. assert.Equal(t, tt.obj.ID, urn.ID, herror(ii, tt))
  14. assert.Equal(t, tt.obj.SS, urn.SS, herror(ii, tt))
  15. assert.Equal(t, tt.str, urn.String(), herror(ii, tt))
  16. assert.Equal(t, tt.norm, urn.Normalize().String(), herror(ii, tt))
  17. } else {
  18. assert.False(t, tt.ok, herror(ii, tt))
  19. assert.Empty(t, urn, herror(ii, tt))
  20. assert.Equal(t, tt.estr, err.Error())
  21. }
  22. }
  23. }
  24. func TestParse(t *testing.T) {
  25. exec(t, genericTestCases)
  26. }
  27. func TestParseUrnLex(t *testing.T) {
  28. exec(t, urnlexTestCases)
  29. }