zitadel/internal/eventstore/repository/search_query_test.go

147 lines
2.7 KiB
Go
Raw Normal View History

2020-09-30 08:00:05 +00:00
package repository
2020-09-24 06:52:10 +00:00
import (
"reflect"
"testing"
"github.com/zitadel/zitadel/internal/eventstore"
2020-09-24 06:52:10 +00:00
)
func TestNewFilter(t *testing.T) {
type args struct {
field Field
value interface{}
operation Operation
}
tests := []struct {
name string
args args
want *Filter
}{
{
name: "aggregateID equals",
args: args{
2020-10-06 19:28:09 +00:00
field: FieldAggregateID,
2020-09-24 06:52:10 +00:00
value: "hodor",
2020-10-06 19:28:09 +00:00
operation: OperationEquals,
2020-09-24 06:52:10 +00:00
},
2020-10-06 19:28:09 +00:00
want: &Filter{Field: FieldAggregateID, Operation: OperationEquals, Value: "hodor"},
2020-09-24 06:52:10 +00:00
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := NewFilter(tt.args.field, tt.args.value, tt.args.operation); !reflect.DeepEqual(got, tt.want) {
t.Errorf("NewFilter() = %v, want %v", got, tt.want)
}
})
}
}
func TestFilter_Validate(t *testing.T) {
type fields struct {
field Field
value interface{}
operation Operation
isNil bool
}
tests := []struct {
name string
fields fields
wantErr bool
}{
{
name: "correct filter",
fields: fields{
2020-10-06 19:28:09 +00:00
field: FieldSequence,
operation: OperationGreater,
2020-09-24 06:52:10 +00:00
value: uint64(235),
},
wantErr: false,
},
{
name: "filter is nil",
fields: fields{isNil: true},
wantErr: true,
},
{
name: "no field error",
fields: fields{
2020-10-06 19:28:09 +00:00
operation: OperationGreater,
2020-09-24 06:52:10 +00:00
value: uint64(235),
},
wantErr: true,
},
{
name: "no value error",
fields: fields{
2020-10-06 19:28:09 +00:00
field: FieldSequence,
operation: OperationGreater,
2020-09-24 06:52:10 +00:00
},
wantErr: true,
},
{
name: "no operation error",
fields: fields{
2020-10-06 19:28:09 +00:00
field: FieldSequence,
2020-09-24 06:52:10 +00:00
value: uint64(235),
},
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
var f *Filter
if !tt.fields.isNil {
f = &Filter{
2020-10-05 18:39:36 +00:00
Field: tt.fields.field,
Value: tt.fields.value,
Operation: tt.fields.operation,
2020-09-24 06:52:10 +00:00
}
}
if err := f.Validate(); (err != nil) != tt.wantErr {
t.Errorf("Filter.Validate() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
}
2020-10-06 19:28:09 +00:00
func TestColumns_Validate(t *testing.T) {
type fields struct {
columns eventstore.Columns
2020-10-06 19:28:09 +00:00
}
tests := []struct {
name string
fields fields
wantErr bool
}{
{
name: "correct filter",
fields: fields{
columns: eventstore.ColumnsEvent,
2020-10-06 19:28:09 +00:00
},
wantErr: false,
},
{
name: "columns too low",
fields: fields{
columns: 0,
},
wantErr: true,
},
{
name: "columns too high",
fields: fields{
columns: 100,
2020-10-06 19:28:09 +00:00
},
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if err := tt.fields.columns.Validate(); (err != nil) != tt.wantErr {
t.Errorf("Columns.Validate() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
}