Added test for JSONGetItemByType

This commit is contained in:
Marius Orcsik 2019-02-19 11:22:41 +01:00
parent 3c56372a15
commit 7c3f19af98
No known key found for this signature in database
GPG key ID: 889CE8E4FB2D877A

41
unmarshall_test.go Normal file
View 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())
}
})
}
}