1
0
Fork 0
golang-github-go-ap-activit.../encoding_json_test.go
Daniel Baumann c8085bda34
Adding upstream version 0.0~git20250501.71edba4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-05-18 22:06:39 +02:00

620 lines
13 KiB
Go

package activitypub
import (
"bytes"
"reflect"
"testing"
"time"
)
func Test_JSONWrite(t *testing.T) {
type args struct {
b *[]byte
c []byte
}
tests := []struct {
name string
args args
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
})
}
}
func Test_JSONWriteActivity(t *testing.T) {
type args struct {
b *[]byte
a Activity
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteActivityValue(tt.args.b, tt.args.a); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteActivityValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWriteBoolProp(t *testing.T) {
type args struct {
b *[]byte
n string
t bool
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteBoolProp(tt.args.b, tt.args.n, tt.args.t); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteBoolProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWriteComma(t *testing.T) {
type args struct {
b *[]byte
}
tests := []struct {
name string
args args
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
})
}
}
func Test_JSONWriteDurationProp(t *testing.T) {
type args struct {
b *[]byte
n string
d time.Duration
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteDurationProp(tt.args.b, tt.args.n, tt.args.d); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteDurationProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWriteFloatProp(t *testing.T) {
type args struct {
b *[]byte
n string
f float64
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteFloatProp(tt.args.b, tt.args.n, tt.args.f); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteFloatProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWriteIRIProp(t *testing.T) {
type args struct {
b *[]byte
n string
i LinkOrIRI
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteIRIProp(tt.args.b, tt.args.n, tt.args.i); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteIRIProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWriteIntProp(t *testing.T) {
type args struct {
b *[]byte
n string
d int64
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteIntProp(tt.args.b, tt.args.n, tt.args.d); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteIntProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWriteIntransitiveActivity(t *testing.T) {
type args struct {
b *[]byte
i IntransitiveActivity
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteIntransitiveActivityValue(tt.args.b, tt.args.i); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteIntransitiveActivityValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWriteItemCollection(t *testing.T) {
type args struct {
b *[]byte
col ItemCollection
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteItemCollectionValue(tt.args.b, tt.args.col, true); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteItemCollectionValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWriteItemCollectionProp(t *testing.T) {
type args struct {
b *[]byte
n string
col ItemCollection
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteItemCollectionProp(tt.args.b, tt.args.n, tt.args.col, true); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteItemCollectionProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWriteItemProp(t *testing.T) {
type args struct {
b *[]byte
n string
i Item
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteItemProp(tt.args.b, tt.args.n, tt.args.i); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteItemProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWriteNaturalLanguageProp(t *testing.T) {
type args struct {
b *[]byte
n string
nl NaturalLanguageValues
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteNaturalLanguageProp(tt.args.b, tt.args.n, tt.args.nl); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteNaturalLanguageProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWriteObjectValue(t *testing.T) {
type args struct {
b *[]byte
o Object
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteObjectValue(tt.args.b, tt.args.o); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteObjectValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWriteProp(t *testing.T) {
type args struct {
b *[]byte
name string
val []byte
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteProp(tt.args.b, tt.args.name, tt.args.val); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWritePropName(t *testing.T) {
type args struct {
b *[]byte
s string
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWritePropName(tt.args.b, tt.args.s); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWritePropName() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWriteQuestionValue(t *testing.T) {
type args struct {
b *[]byte
q Question
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteQuestionValue(tt.args.b, tt.args.q); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteQuestionValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWriteStringValue(t *testing.T) {
type args struct {
b *[]byte
s string
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteStringValue(tt.args.b, tt.args.s); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteStringValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWriteStringProp(t *testing.T) {
type args struct {
b *[]byte
n string
s string
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteStringProp(tt.args.b, tt.args.n, tt.args.s); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteStringProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWriteTimeProp(t *testing.T) {
type args struct {
b *[]byte
n string
t time.Time
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteTimeProp(tt.args.b, tt.args.n, tt.args.t); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteTimeProp() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func Test_JSONWriteValue(t *testing.T) {
type args struct {
b *[]byte
s []byte
}
tests := []struct {
name string
args args
wantNotEmpty bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if gotNotEmpty := JSONWriteValue(tt.args.b, tt.args.s); gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
})
}
}
func mockOb(id IRI, typ ActivityVocabularyType) LinkOrIRI {
ob := ObjectNew(typ)
ob.ID = id
return ob
}
func TestMarshalJSON(t *testing.T) {
tests := []struct {
name string
arg LinkOrIRI
want []byte
wantErr bool
}{
{
name: "empty",
arg: nil,
want: []byte("null"),
},
{
name: "Link to example.com",
arg: LinkNew("https://example.com", MentionType),
want: []byte(`{"id":"https://example.com","type":"Mention"}`),
},
{
name: "Note",
arg: mockOb("https://example.com", NoteType),
want: []byte(`{"id":"https://example.com","type":"Note"}`),
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := MarshalJSON(tt.arg)
if (err != nil) != tt.wantErr {
t.Errorf("MarshalJSON() error = %v, wantErr %v", err, tt.wantErr)
return
}
if !reflect.DeepEqual(got, tt.want) {
t.Errorf("MarshalJSON() got = %v, want %v", got, tt.want)
}
})
}
}
func TestJSONWriteValue(t *testing.T) {
buff := func(s int) *[]byte {
b := make([]byte, 0, s)
return &b
}
type args struct {
b *[]byte
s []byte
}
tests := []struct {
name string
args args
want []byte
wantNotEmpty bool
}{
{
name: "empty",
args: args{
b: buff(0),
},
wantNotEmpty: false,
},
{
name: "do not escape quotes at start-end",
args: args{
b: buff(20),
s: []byte(`"https://example.com"`),
},
want: []byte(`"https://example.com"`),
wantNotEmpty: true,
},
{
name: "escape quotes inside string",
args: args{
b: buff(80),
s: []byte(`"application/ld+json; profile="https://www.w3.org/ns/activitystreams""`),
},
want: []byte(`"application/ld+json; profile="https://www.w3.org/ns/activitystreams""`),
wantNotEmpty: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
gotNotEmpty := JSONWriteValue(tt.args.b, tt.args.s)
if gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteStringValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
if tt.wantNotEmpty && !bytes.Equal(*tt.args.b, tt.want) {
t.Errorf("JSONWriteValue() = %s, want %s", *tt.args.b, tt.want)
}
})
}
}
func buff(l int) *[]byte {
b := make([]byte, 0, l)
return &b
}
func TestJSONWriteStringValue(t *testing.T) {
type args struct {
b *[]byte
s string
}
tests := []struct {
name string
args args
want string
wantNotEmpty bool
}{
{
name: "empty",
args: args{},
want: "",
wantNotEmpty: false,
},
{
name: "escaped quote",
args: args{
b: buff(10),
s: `ana"are`,
},
want: `"ana\"are"`,
wantNotEmpty: true,
},
{
name: "already escaped quote",
args: args{
b: buff(10),
s: `ana\"are`,
},
want: `"ana\"are"`,
wantNotEmpty: true,
},
{
name: "already escaped quote and multiple other quotes",
args: args{
b: buff(10),
s: `ana\"""are`,
},
want: `"ana\"\"\"are"`,
wantNotEmpty: true,
},
{
name: "quote at the end",
args: args{
b: buff(10),
s: `anaare"`,
},
want: `"anaare\""`,
wantNotEmpty: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
gotNotEmpty := JSONWriteStringValue(tt.args.b, tt.args.s)
if gotNotEmpty != tt.wantNotEmpty {
t.Errorf("JSONWriteStringValue() = %v, want %v", gotNotEmpty, tt.wantNotEmpty)
}
if tt.wantNotEmpty && tt.want != string(*tt.args.b) {
t.Errorf("JSONWriteStringValue() = %s, want %s", *tt.args.b, tt.want)
}
})
}
}