Fix sorting mode

First sort based on datetime, and then based on filename.
This commit is contained in:
Vishesh Handa
2020-03-08 00:41:20 +01:00
parent 56d8f635eb
commit 09ff8b2704
2 changed files with 62 additions and 4 deletions

View File

@ -61,8 +61,8 @@ class SortingMode {
if (aDt != null && bDt == null) {
return -1;
}
if (bDt == null || aDt == null) {
return b.fileName.compareTo(a.fileName);
if (bDt == null && aDt == null) {
return a.fileName.compareTo(b.fileName);
}
return bDt.compareTo(aDt);
};
@ -78,8 +78,8 @@ class SortingMode {
if (aDt != null && bDt == null) {
return -1;
}
if (bDt == null || aDt == null) {
return b.fileName.compareTo(a.fileName);
if (bDt == null && aDt == null) {
return a.fileName.compareTo(b.fileName);
}
return bDt.compareTo(aDt);
};

View File

@ -0,0 +1,58 @@
import 'dart:io';
import 'package:gitjournal/core/note.dart';
import 'package:gitjournal/core/notes_folder.dart';
import 'package:gitjournal/core/sorting_mode.dart';
import 'package:test/test.dart';
void main() {
group('Sorting Mode', () {
test('Created', () async {
var folder = NotesFolder(null, '/tmp/');
var n1 = Note(folder, '/tmp/1.md');
n1.created = DateTime(2020, 10, 01);
var n2 = Note(folder, '/tmp/2.md');
n2.created = DateTime(2020, 10, 02);
var n3 = Note(folder, '/tmp/3.md');
n3.created = null;
var n4 = Note(folder, '/tmp/4.md');
n4.created = null;
var notes = [n1, n2, n3, n4];
var sortFn = SortingMode.Created.sortingFunction();
notes.sort(sortFn);
expect(notes[0], n2);
expect(notes[1], n1);
expect(notes[2], n3);
expect(notes[3], n4);
});
test('Modified', () async {
var folder = NotesFolder(null, '/tmp/');
var n1 = Note(folder, '/tmp/1.md');
n1.modified = DateTime(2020, 10, 01);
var n2 = Note(folder, '/tmp/2.md');
n2.modified = DateTime(2020, 10, 02);
var n3 = Note(folder, '/tmp/3.md');
n3.modified = null;
var n4 = Note(folder, '/tmp/4.md');
n4.modified = null;
var notes = [n1, n2, n3, n4];
var sortFn = SortingMode.Modified.sortingFunction();
notes.sort(sortFn);
expect(notes[0], n2);
expect(notes[1], n1);
expect(notes[2], n3);
expect(notes[3], n4);
});
});
}