1234567891011121314151617181920212223242526272829303132333435 |
- package urn
- import (
- "testing"
- "github.com/stretchr/testify/assert"
- )
- func exec(t *testing.T, testCases []testCase) {
- for ii, tt := range testCases {
- urn, err := NewMachine().Parse([]byte(tt.in))
- ok := err == nil
- if ok {
- assert.True(t, tt.ok, herror(ii, tt))
- assert.Equal(t, tt.obj.prefix, urn.prefix, herror(ii, tt))
- assert.Equal(t, tt.obj.ID, urn.ID, herror(ii, tt))
- assert.Equal(t, tt.obj.SS, urn.SS, herror(ii, tt))
- assert.Equal(t, tt.str, urn.String(), herror(ii, tt))
- assert.Equal(t, tt.norm, urn.Normalize().String(), herror(ii, tt))
- } else {
- assert.False(t, tt.ok, herror(ii, tt))
- assert.Empty(t, urn, herror(ii, tt))
- assert.Equal(t, tt.estr, err.Error())
- }
- }
- }
- func TestParse(t *testing.T) {
- exec(t, genericTestCases)
- }
- func TestParseUrnLex(t *testing.T) {
- exec(t, urnlexTestCases)
- }
|