blob: ed7523af1ec06671594333c8c060b4bb74852a66 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package utils
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestUpcastReaderArgs(t *testing.T) {
type args struct {
args []WithReaderArgs
}
tests := []struct {
name string
args args
want []WithReaderWriterArgs
}{
{
name: "nothing results in nothing",
want: []WithReaderWriterArgs{},
},
{
name: "only a reader arg",
args: args{
[]WithReaderArgs{readerArg{}},
},
want: []WithReaderWriterArgs{readerWriterArg{readerArg{}, writerArg{}}},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, UpcastReaderArgs(tt.args.args...), "UpcastReaderArgs(%v)", tt.args.args)
})
}
}
func TestUpcastWriterArgs(t *testing.T) {
type args struct {
args []WithWriterArgs
}
tests := []struct {
name string
args args
want []WithReaderWriterArgs
}{
{
name: "nothing results in nothing",
want: []WithReaderWriterArgs{},
},
{
name: "only a reader arg",
args: args{
[]WithWriterArgs{writerArg{}},
},
want: []WithReaderWriterArgs{readerWriterArg{readerArg{}, writerArg{}}},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, UpcastWriterArgs(tt.args.args...), "UpcastWriterArgs(%v)", tt.args.args)
})
}
}
func TestWithAdditionalStringRepresentation(t *testing.T) {
type args struct {
stringRepresentation string
}
tests := []struct {
name string
args args
want WithReaderWriterArgs
}{
{
name: "some string representation",
want: withAdditionalStringRepresentation{readerWriterArg: readerWriterArg{readerArg{}, writerArg{}}, stringRepresentation: ""},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, WithAdditionalStringRepresentation(tt.args.stringRepresentation), "WithAdditionalStringRepresentation(%v)", tt.args.stringRepresentation)
})
}
}
func TestWithRenderAsList(t *testing.T) {
type args struct {
renderAsList bool
}
tests := []struct {
name string
args args
want WithReaderWriterArgs
}{
{
name: "render as list",
args: args{renderAsList: true},
want: withRenderAsList{readerWriterArg: readerWriterArg{readerArg{}, writerArg{}}, renderAsList: true},
},
{
name: "render not as list",
args: args{renderAsList: false},
want: withRenderAsList{readerWriterArg: readerWriterArg{readerArg{}, writerArg{}}, renderAsList: false},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, WithRenderAsList(tt.args.renderAsList), "WithRenderAsList(%v)", tt.args.renderAsList)
})
}
}
func Test_readerWriterArg_isReaderArgs(t *testing.T) {
type fields struct {
readerArg WithReaderArgs
writerArg WithWriterArgs
}
tests := []struct {
name string
fields fields
want bool
}{
{
name: "it is",
fields: fields{
readerArg: readerArg{},
},
want: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
re := readerWriterArg{
WithReaderArgs: tt.fields.readerArg,
WithWriterArgs: tt.fields.writerArg,
}
assert.Equalf(t, tt.want, re.isReaderArgs(), "isReaderArgs()")
})
}
}
func Test_readerWriterArg_isWriterArgs(t *testing.T) {
type fields struct {
readerArg WithReaderArgs
writerArg WithWriterArgs
}
tests := []struct {
name string
fields fields
want bool
}{
{
name: "it is",
fields: fields{
writerArg: writerArg{},
},
want: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
re := readerWriterArg{
WithReaderArgs: tt.fields.readerArg,
WithWriterArgs: tt.fields.writerArg,
}
assert.Equalf(t, tt.want, re.isWriterArgs(), "IsWriterArgs()")
})
}
}