248 lines
4 KiB
Go
248 lines
4 KiB
Go
package activitypub
|
|
|
|
import "testing"
|
|
|
|
func TestFlatten(t *testing.T) {
|
|
t.Skipf("TODO")
|
|
}
|
|
|
|
func TestItemsEqual(t *testing.T) {
|
|
type args struct {
|
|
it Item
|
|
with Item
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want bool
|
|
}{
|
|
{
|
|
name: "nil_items_equal",
|
|
args: args{nil, nil},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "nil_item_with_object",
|
|
args: args{nil, &Object{}},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "nil_item_with_object#1",
|
|
args: args{&Object{}, nil},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "empty_objects",
|
|
args: args{&Object{}, &Object{}},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "empty_objects_different_alias_type",
|
|
args: args{&Activity{}, &Object{}},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "empty_objects_different_alias_type#1",
|
|
args: args{&Actor{}, &Object{}},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "same_id_object",
|
|
args: args{&Object{ID: "test"}, &Object{ID: "test"}},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "same_id_object_different_alias",
|
|
args: args{&Activity{ID: "test"}, &Object{ID: "test"}},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "same_id_object_different_alias#1",
|
|
args: args{&Activity{ID: "test"}, &Actor{ID: "test"}},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "different_id_objects",
|
|
args: args{&Object{ID: "test1"}, &Object{ID: "test"}},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "different_id_types",
|
|
args: args{&Object{ID: "test", Type: NoteType}, &Object{ID: "test", Type: ArticleType}},
|
|
want: false,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := ItemsEqual(tt.args.it, tt.args.with); got != tt.want {
|
|
t.Errorf("ItemsEqual() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestIsNil(t *testing.T) {
|
|
type args struct {
|
|
it Item
|
|
}
|
|
var (
|
|
o *Object
|
|
col *ItemCollection
|
|
obNil Item = o
|
|
colNil Item = col
|
|
)
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want bool
|
|
}{
|
|
{
|
|
name: "plain-nil",
|
|
args: args{
|
|
it: nil,
|
|
},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "interface-nil",
|
|
args: args{
|
|
it: Item(nil),
|
|
},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "object-nil",
|
|
args: args{
|
|
it: obNil,
|
|
},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "collection-nil",
|
|
args: args{
|
|
it: colNil,
|
|
},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "collection-not-nil",
|
|
args: args{
|
|
it: ItemCollection{},
|
|
},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "object-not-nil",
|
|
args: args{
|
|
it: &Object{},
|
|
},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "place-not-nil",
|
|
args: args{
|
|
it: &Place{},
|
|
},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "tombstone-not-nil",
|
|
args: args{
|
|
it: &Tombstone{},
|
|
},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "collection-not-nil",
|
|
args: args{
|
|
it: &Collection{},
|
|
},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "activity-not-nil",
|
|
args: args{
|
|
it: &Activity{},
|
|
},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "intransitive-activity-not-nil",
|
|
args: args{
|
|
it: &IntransitiveActivity{},
|
|
},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "actor-not-nil",
|
|
args: args{
|
|
it: &Actor{},
|
|
},
|
|
want: false,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := IsNil(tt.args.it); got != tt.want {
|
|
t.Errorf("IsNil() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestItemsEqual1(t *testing.T) {
|
|
type args struct {
|
|
it Item
|
|
with Item
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
want bool
|
|
}{
|
|
{
|
|
name: "nil",
|
|
args: args{},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "equal empty items",
|
|
args: args{
|
|
it: &Object{},
|
|
with: &Actor{},
|
|
},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "equal same ID items",
|
|
args: args{
|
|
it: &Object{ID: "example-1"},
|
|
with: &Object{ID: "example-1"},
|
|
},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "different IDs",
|
|
args: args{
|
|
it: &Object{ID: "example-1"},
|
|
with: &Object{ID: "example-2"},
|
|
},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "different properties",
|
|
args: args{
|
|
it: &Object{ID: "example-1"},
|
|
with: &Object{Type: ArticleType},
|
|
},
|
|
want: false,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := ItemsEqual(tt.args.it, tt.args.with); got != tt.want {
|
|
t.Errorf("ItemsEqual() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|