Files
GitJournal/test/sorting_mode_test.dart
Vishesh Handa 92e73c414d Move core Note classes into a separate file
I'm trying to get ride of this huge 'Note' class, and have it be quite
dumb. The idea is that we'll have separate Note subclasses - TxtNote,
MdNote, etc
2022-04-24 13:09:14 +02:00

93 lines
3.0 KiB
Dart

/*
* SPDX-FileCopyrightText: 2019-2021 Vishesh Handa <me@vhanda.in>
*
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import 'package:shared_preferences/shared_preferences.dart';
import 'package:test/test.dart';
import 'package:universal_io/io.dart' as io;
import 'package:gitjournal/core/file/file_storage.dart';
import 'package:gitjournal/core/folder/notes_folder_config.dart';
import 'package:gitjournal/core/folder/notes_folder_fs.dart';
import 'package:gitjournal/core/folder/sorting_mode.dart';
import 'package:gitjournal/core/note.dart';
import 'package:gitjournal/core/notes/note.dart';
import 'lib.dart';
void main() {
setUpAll(gjSetupAllTests);
group('Sorting Mode', () {
late NotesFolderConfig config;
late FileStorage fileStorage;
setUpAll(() async {
SharedPreferences.setMockInitialValues({});
config = NotesFolderConfig('', await SharedPreferences.getInstance());
var tempDir = await io.Directory.systemTemp.createTemp();
fileStorage = await FileStorage.fake(tempDir.path);
});
test('Created', () async {
var folder = NotesFolderFS.root(config, fileStorage);
var n1 = Note.newNote(folder,
fileName: '1.md', fileFormat: NoteFileFormat.Markdown);
n1 = n1.copyWith(created: DateTime(2020, 10, 01));
var n2 = Note.newNote(folder,
fileName: '2.md', fileFormat: NoteFileFormat.Markdown);
n2 = n2.copyWith(created: DateTime(2020, 10, 02));
var n3 = Note.newNote(folder,
fileName: '3.md', fileFormat: NoteFileFormat.Markdown);
n3 = n3.copyWith(created: DateTime(2020, 9, 04));
var n4 = Note.newNote(folder,
fileName: '4.md', fileFormat: NoteFileFormat.Markdown);
n4 = n4.copyWith(created: DateTime(2020, 9, 03));
var notes = [n1, n2, n3, n4];
var sortFn = SortingMode(SortingField.Created, SortingOrder.Descending)
.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 = NotesFolderFS.root(config, fileStorage);
var n1 = Note.newNote(folder,
fileName: '1.md', fileFormat: NoteFileFormat.Markdown);
n1 = n1.copyWith(modified: DateTime(2020, 10, 01));
var n2 = Note.newNote(folder,
fileName: '2.md', fileFormat: NoteFileFormat.Markdown);
n2 = n2.copyWith(modified: DateTime(2020, 10, 02));
var n3 = Note.newNote(folder,
fileName: '3.md', fileFormat: NoteFileFormat.Markdown);
n3 = n3.copyWith(modified: DateTime(2020, 9, 04));
var n4 = Note.newNote(folder,
fileName: '4.md', fileFormat: NoteFileFormat.Markdown);
n4 = n4.copyWith(modified: DateTime(2020, 9, 03));
var notes = [n1, n2, n3, n4];
var sortFn = SortingMode(SortingField.Modified, SortingOrder.Descending)
.sortingFunction();
notes.sort(sortFn);
expect(notes[0], n2);
expect(notes[1], n1);
expect(notes[2], n3);
expect(notes[3], n4);
});
});
}