From dcdbcbeef97055a89c834b9c5e04d72610a7e306 Mon Sep 17 00:00:00 2001 From: Michael James Gratton Date: Wed, 6 Dec 2017 16:23:31 +1100 Subject: [PATCH] Add some useful Engine API mock objects. --- test/CMakeLists.txt | 3 + .../api/geary-email-identifier-test.vala | 24 ++++ test/engine/api/geary-folder-path-test.vala | 14 +++ test/engine/api/geary-folder-test.vala | 119 ++++++++++++++++++ test/test-engine.vala | 4 +- 5 files changed, 162 insertions(+), 2 deletions(-) create mode 100644 test/engine/api/geary-email-identifier-test.vala create mode 100644 test/engine/api/geary-folder-path-test.vala create mode 100644 test/engine/api/geary-folder-test.vala diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 8c95e6cd..1ffdba7b 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -8,6 +8,9 @@ set(TEST_ENGINE_SRC engine/api/geary-attachment-test.vala engine/api/geary-engine-test.vala + engine/api/geary-email-identifier-test.vala + engine/api/geary-folder-test.vala + engine/api/geary-folder-path-test.vala engine/imap/command/imap-create-command-test.vala engine/imap/response/imap-namespace-response-test.vala engine/imap/transport/imap-deserializer-test.vala diff --git a/test/engine/api/geary-email-identifier-test.vala b/test/engine/api/geary-email-identifier-test.vala new file mode 100644 index 00000000..adda6ed4 --- /dev/null +++ b/test/engine/api/geary-email-identifier-test.vala @@ -0,0 +1,24 @@ +/* + * Copyright 2017 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +public class Geary.MockEmailIdentifer : EmailIdentifier { + + + private int id; + + + public MockEmailIdentifer(int id) { + base(id.to_string()); + this.id = id; + } + + public override int natural_sort_comparator(Geary.EmailIdentifier other) { + MockEmailIdentifer? other_mock = other as MockEmailIdentifer; + return (other_mock == null) ? -1 : other_mock.id - this.id; + } + +} diff --git a/test/engine/api/geary-folder-path-test.vala b/test/engine/api/geary-folder-path-test.vala new file mode 100644 index 00000000..c9048aec --- /dev/null +++ b/test/engine/api/geary-folder-path-test.vala @@ -0,0 +1,14 @@ +/* + * Copyright 2017 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +public class Geary.MockFolderRoot : FolderRoot { + + public MockFolderRoot(string name) { + base(name, false, false); + } + +} diff --git a/test/engine/api/geary-folder-test.vala b/test/engine/api/geary-folder-test.vala new file mode 100644 index 00000000..718e4915 --- /dev/null +++ b/test/engine/api/geary-folder-test.vala @@ -0,0 +1,119 @@ +/* + * Copyright 2017 Michael Gratton + * + * This software is licensed under the GNU Lesser General Public License + * (version 2.1 or later). See the COPYING file in this distribution. + */ + +public class Geary.MockFolder : Folder { + + public override Account account { + get { return this._account; } + } + + public override FolderProperties properties { + get { return this._properties; } + } + + public override FolderPath path { + get { return this._path; } + } + + public override SpecialFolderType special_folder_type { + get { return this._type; } + } + + public override ProgressMonitor opening_monitor { + get { return this._opening_monitor; } + } + + private Account _account; + private FolderProperties _properties; + private FolderPath _path; + private SpecialFolderType _type; + private ProgressMonitor _opening_monitor; + + + public MockFolder(Account? account, + FolderProperties? properties, + FolderPath? path, + SpecialFolderType type, + ProgressMonitor? monitor) { + this._account = account; + this._properties = properties; + this._path = path; + this._type = type; + this._opening_monitor = monitor; + } + + public override Folder.OpenState get_open_state() { + return OpenState.CLOSED; + } + + public override async bool open_async(Folder.OpenFlags open_flags, + Cancellable? cancellable = null) + throws Error { + throw new EngineError.UNSUPPORTED("Mock method"); + } + + public override async void wait_for_open_async(Cancellable? cancellable = null) + throws Error { + throw new EngineError.UNSUPPORTED("Mock method"); + } + + public override async bool close_async(Cancellable? cancellable = null) + throws Error { + throw new EngineError.UNSUPPORTED("Mock method"); + } + + public override async void wait_for_close_async(Cancellable? cancellable = null) + throws Error { + throw new EngineError.UNSUPPORTED("Mock method"); + } + + public override async void + find_boundaries_async(Gee.Collection ids, + out Geary.EmailIdentifier? low, + out Geary.EmailIdentifier? high, + Cancellable? cancellable = null) + throws Error { + throw new EngineError.UNSUPPORTED("Mock method"); + } + + + public override async Gee.List? + list_email_by_id_async(Geary.EmailIdentifier? initial_id, + int count, + Geary.Email.Field required_fields, + Folder.ListFlags flags, + Cancellable? cancellable = null) + throws Error { + throw new EngineError.UNSUPPORTED("Mock method"); + } + + public override async Gee.List? + list_email_by_sparse_id_async(Gee.Collection ids, + Geary.Email.Field required_fields, + Folder.ListFlags flags, + Cancellable? cancellable = null) + throws Error { + throw new EngineError.UNSUPPORTED("Mock method"); + } + + public override async Gee.Map? + list_local_email_fields_async(Gee.Collection ids, + Cancellable? cancellable = null) + throws Error { + throw new EngineError.UNSUPPORTED("Mock method"); + } + + public override async Geary.Email + fetch_email_async(Geary.EmailIdentifier email_id, + Geary.Email.Field required_fields, + Folder.ListFlags flags, + Cancellable? cancellable = null) + throws Error { + throw new EngineError.UNSUPPORTED("Mock method"); + } + +} diff --git a/test/test-engine.vala b/test/test-engine.vala index 31c59dbc..f9534dbe 100644 --- a/test/test-engine.vala +++ b/test/test-engine.vala @@ -24,8 +24,9 @@ int main(string[] args) { engine.add_suite(new Geary.AttachmentTest().get_suite()); engine.add_suite(new Geary.EngineTest().get_suite()); - engine.add_suite(new Geary.HTML.UtilTest().get_suite()); engine.add_suite(new Geary.IdleManagerTest().get_suite()); + engine.add_suite(new Geary.TimeoutManagerTest().get_suite()); + engine.add_suite(new Geary.HTML.UtilTest().get_suite()); engine.add_suite(new Geary.Imap.DeserializerTest().get_suite()); engine.add_suite(new Geary.Imap.CreateCommandTest().get_suite()); engine.add_suite(new Geary.Imap.NamespaceResponseTest().get_suite()); @@ -37,7 +38,6 @@ int main(string[] args) { engine.add_suite(new Geary.RFC822.MessageTest().get_suite()); engine.add_suite(new Geary.RFC822.MessageDataTest().get_suite()); engine.add_suite(new Geary.RFC822.Utils.Test().get_suite()); - engine.add_suite(new Geary.TimeoutManagerTest().get_suite()); /* * Run the tests