1;;; alchemist-complete-test.el ---
2
3;; Copyright © 2014-2015 Samuel Tonini
4;;
5;; Author: Samuel Tonini <tonini.samuel@gmail.com>
6
7;; This file is not part of GNU Emacs.
8
9;; This program is free software: you can redistribute it and/or modify
10;; it under the terms of the GNU General Public License as published by
11;; the Free Software Foundation, either version 3 of the License, or
12;; (at your option) any later version.
13
14;; This program is distributed in the hope that it will be useful,
15;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17;; GNU General Public License for more details.
18
19;; You should have received a copy of the GNU General Public License
20;; along with this program. If not, see <http://www.gnu.org/licenses/>.
21
22;;; Commentary:
23
24;;; Code:
25
26(require 'test-helper)
27
28(ert-deftest test-elixir-output/format-to-list ()
29  "Formats the output from elixir into a proper list"
30  (should (equal (alchemist-complete--output-to-list "List.
31delete/2
32to_string/1")
33                 '("List." "delete/2" "to_string/1"))))
34
35(ert-deftest test-complete-candidates/build-candidates ()
36  "Build a candidates list"
37  (setq alchemist-company-last-completion "Lis")
38  (should (equal (alchemist-complete--build-candidates '("List." "delete/2" "to_string/1"))
39                 '("List" "List.delete" "List.to_string")))
40  (setq alchemist-company-last-completion "Li")
41  (should (equal (alchemist-complete--build-candidates '("List." "delete/2" "delete/3" "to_string/1"))
42                 '("List" "List.delete" "List.delete" "List.to_string")))
43  (setq alchemist-company-last-completion "En")
44  (should (equal (alchemist-complete--build-candidates '("Enum" "Enum" "Enumerable"))
45                 '("Enum" "Enumerable")))
46  (setq alchemist-company-last-completion "Li")
47  (should (equal (alchemist-complete--build-candidates '("List" "List"))
48                 '("List")))
49  (setq alchemist-company-last-completion "List.")
50  (should (equal (alchemist-complete--build-candidates '("List.delete" "delete/2" "delete_at/2"))
51                 '("List.delete" "List.delete_at")))
52  (setq alchemist-company-last-completion ":file")
53  (should (equal (alchemist-complete--build-candidates '(":file" "filename" "file_server" "file_io_server"))
54                 '(":filename" ":file_server" ":file_io_server")))
55  (setq alchemist-company-last-completion ":file.")
56  (should (equal (alchemist-complete--build-candidates '(":file." "pid2name/1" "set_cwd/1" "rename/2"))
57                 '(":file.pid2name" ":file.set_cwd" ":file.rename")))
58  (setq alchemist-company-last-completion "pid2name")
59  (should (equal (alchemist-complete--build-candidates '("pid2name" "pid2name/1"))
60                 '("pid2name"))))
61
62(ert-deftest test-complete-candidates/build-help-candidates ()
63  "Build a candidates list"
64  (should (equal (alchemist-complete--build-help-candidates '("List." "delete/2" "delete/3" "to_string/1"))
65                 '("List" "List.delete/2" "List.delete/3" "List.to_string/1")))
66  (should (equal (alchemist-complete--build-help-candidates '("Enum" "Enum" "Enumerable"))
67                 '("Enum" "Enumerable")))
68  (should (equal (alchemist-complete--build-help-candidates '("List" "def/2" "defdelegate/2" "defexception/1"))
69                 '("List" "def/2" "defdelegate/2" "defexception/1")))
70  (should (equal (alchemist-complete--build-help-candidates '("List.delete" "delete/2" "delete_at/2"))
71                 '("List.delete/2" "List.delete_at/2")))
72  (should (equal (alchemist-complete--build-help-candidates '("String.Chars." "delete/2" "delete_at/2"))
73                 '("String.Chars" "String.Chars.delete/2" "String.Chars.delete_at/2")))
74  (should (equal (alchemist-complete--build-help-candidates '("String.Chars.Atom.to_string" "to_string/1"))
75                 '("String.Chars.Atom" "String.Chars.Atom.to_string/1"))))
76
77(provide 'alchemist-complete-test)
78