Added test for JSONGetItemByType
This commit is contained in:
parent
3c56372a15
commit
7c3f19af98
41
unmarshall_test.go
Normal file
41
unmarshall_test.go
Normal file
|
@ -0,0 +1,41 @@
|
|||
package activitypub
|
||||
|
||||
import (
|
||||
as "github.com/go-ap/activitystreams"
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type testPairs map[as.ActivityVocabularyType]reflect.Type
|
||||
|
||||
var objectPtrType = reflect.TypeOf(new(*Object)).Elem()
|
||||
var actorPtrType = reflect.TypeOf(new(*actor)).Elem()
|
||||
var applicationPtrType = reflect.TypeOf(new(*Application)).Elem()
|
||||
var servicePtrType = reflect.TypeOf(new(*Service)).Elem()
|
||||
var personPtrType = reflect.TypeOf(new(*Person)).Elem()
|
||||
var groupPtrType = reflect.TypeOf(new(*Group)).Elem()
|
||||
var organizationPtrType = reflect.TypeOf(new(*Organization)).Elem()
|
||||
|
||||
var tests = testPairs{
|
||||
as.ObjectType: objectPtrType,
|
||||
as.ActorType: objectPtrType,
|
||||
as.ApplicationType: applicationPtrType,
|
||||
as.ServiceType: servicePtrType,
|
||||
as.PersonType: personPtrType,
|
||||
as.GroupType: groupPtrType,
|
||||
as.OrganizationType: organizationPtrType,
|
||||
}
|
||||
|
||||
func TestJSONGetItemByType(t *testing.T) {
|
||||
for typ, test := range tests {
|
||||
t.Run(string(typ), func(t *testing.T) {
|
||||
v, err := JSONGetItemByType(typ)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if reflect.TypeOf(v) != test {
|
||||
t.Errorf("Invalid type returned %T, expected %s", v, test.String())
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
Reference in a new issue