Sort Order for tasks #110

Merged
konrad merged 62 commits from feature/sort-order into master 2019-12-07 14:30:52 +00:00
1 changed files with 47 additions and 158 deletions
Showing only changes of commit c35eaf6950 - Show all commits

View File

@ -512,6 +512,53 @@ func TestTaskCollection_ReadAll(t *testing.T) {
},
wantErr: false,
},
{
// For more sorting tests see task_collection_sort_test.go
name: "ReadAll Tasks sorted by done asc and id desc",
fields: fields{
SortBy: []string{"done", "id"},
OrderBy: []string{"asc", "desc"},
},
args: args{
search: "",
a: &User{ID: 1},
page: 0,
},
want: []*Task{
task2,
task33,
task32,
task31,
task30,
task29,
task28,
task27,
task26,
task25,
task24,
task23,
task22,
task21,
task20,
task19,
task18,
task17,
task16,
task15,
task12,
task11,
task10,
task9,
task8,
task7,
task6,
task5,
task4,
task3,
task1,
},
wantErr: false,
},
{
name: "ReadAll Tasks with range",
fields: fields{
@ -564,164 +611,6 @@ func TestTaskCollection_ReadAll(t *testing.T) {
},
}
//sortByFields := []sortProperty{
// taskPropertyID,
// taskPropertyText,
// taskPropertyDescription,
// taskPropertyDone,
// taskPropertyDoneAtUnix,
// taskPropertyDueDateUnix,
// taskPropertyCreatedByID,
// taskPropertyListID,
// taskPropertyRepeatAfter,
// taskPropertyPriority,
// taskPropertyStartDateUnix,
// taskPropertyEndDateUnix,
// taskPropertyHexColor,
// taskPropertyPercentDone,
// taskPropertyUID,
// taskPropertyCreated,
// taskPropertyUpdated,
//}
//// Add more cases programatically
//// Simple cases
//for _, test := range sortByFields {
// tests = append(tests, []testcase{
// {
// name: "ReadAll Tasks sorted by " + test.String() + " default asc",
// fields: fields{
// SortBy: []string{test.String()},
// },
// args: args{
// search: "",
// a: &User{ID: 1},
// page: 0,
// },
// want: sortTasksForTesting([]*sortParam{
// {
// sortBy: test,
// orderBy: orderAscending,
// },
// }),
// wantErr: false,
// },
// {
// name: "ReadAll Tasks sorted by " + test.String() + " asc",
// fields: fields{
// SortBy: []string{test.String()},
// },
// args: args{
// search: "",
// a: &User{ID: 1},
// page: 0,
// },
// want: sortTasksForTesting([]*sortParam{
// {
// sortBy: test,
// orderBy: orderAscending,
// },
// }),
// wantErr: false,
// },
// {
// name: "ReadAll Tasks sorted by " + test.String() + " desc",
// fields: fields{
// SortBy: []string{test.String()},
// OrderBy: []string{orderDescending.String()},
// },
// args: args{
// search: "",
// a: &User{ID: 1},
// page: 0,
// },
// want: sortTasksForTesting([]*sortParam{
// {
// sortBy: test,
// orderBy: orderDescending,
// },
// }),
// wantErr: false,
// },
// }...)
//}
//
//// Cases with two parameters
//for _, outerTest := range sortByFields {
// // We don't test all cases with everything here because this would mean an enormous amount of test cases
// for _, test := range []sortProperty{"text", "done"} {
// tests = append(tests, []testcase{
// {
// name: "ReadAll Tasks sorted by " + outerTest.String() + " and " + test.String() + "default asc",
// fields: fields{
// SortBy: []string{outerTest.String(), test.String()},
// },
// args: args{
// search: "",
// a: &User{ID: 1},
// page: 0,
// },
// want: sortTasksForTesting([]*sortParam{
// {
// sortBy: outerTest,
// orderBy: orderAscending,
// },
// {
// sortBy: test,
// orderBy: orderAscending,
// },
// }),
// wantErr: false,
// },
// {
// name: "ReadAll Tasks sorted by " + outerTest.String() + " and " + test.String() + " asc",
// fields: fields{
// SortBy: []string{outerTest.String(), test.String()},
// OrderBy: []string{orderAscending.String(), orderAscending.String()},
// },
// args: args{
// search: "",
// a: &User{ID: 1},
// page: 0,
// },
// want: sortTasksForTesting([]*sortParam{
// {
// sortBy: outerTest,
// orderBy: orderAscending,
// },
// {
// sortBy: test,
// orderBy: orderAscending,
// },
// }),
// wantErr: false,
// },
// {
// name: "ReadAll Tasks sorted by " + outerTest.String() + " and " + test.String() + " desc",
// fields: fields{
// SortBy: []string{outerTest.String(), test.String()},
// OrderBy: []string{orderDescending.String(), orderDescending.String()},
// },
// args: args{
// search: "",
// a: &User{ID: 1},
// page: 0,
// },
// want: sortTasksForTesting([]*sortParam{
// {
// sortBy: outerTest,
// orderBy: orderDescending,
// },
// {
// sortBy: test,
// orderBy: orderDescending,
// },
// }),
// wantErr: false,
// },
// }...)
// }
//}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
lt := &TaskCollection{