summaryrefslogtreecommitdiffstats
path: root/src/test/CppTests/Config.test.ts
diff options
context:
space:
mode:
authorRowan Goemans <RB.Goemans@student.han.nl>2018-01-01 21:22:18 +0100
committerChristoph Schlosser <christophschlosser@users.noreply.github.com>2018-02-20 22:02:22 +0100
commit8711b0fb2c8f88a6864096de7813e63fd6cf9f7a (patch)
tree212fd2fb67cfd2f778e42ae955f869bc444afdb2 /src/test/CppTests/Config.test.ts
parentd9cef62f8778fcdc39d26802d5d7457c97e9dfc0 (diff)
downloaddoxdocgen-8711b0fb2c8f88a6864096de7813e63fd6cf9f7a.tar.gz
-- Added tests for the configuration options.
-- Expanded the mock classes to allow for more dynamic setting of the contents.
Diffstat (limited to 'src/test/CppTests/Config.test.ts')
-rw-r--r--src/test/CppTests/Config.test.ts83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/test/CppTests/Config.test.ts b/src/test/CppTests/Config.test.ts
new file mode 100644
index 0000000..d33b5c1
--- /dev/null
+++ b/src/test/CppTests/Config.test.ts
@@ -0,0 +1,83 @@
+//
+// Note: This example test is leveraging the Mocha test framework.
+// Please refer to their documentation on https://mochajs.org/ for help.
+//
+
+// The module 'assert' provides assertion methods from node
+import * as assert from "assert";
+
+// You can import and use all API from the 'vscode' module
+// as well as import your extension to test it
+import * as vscode from "vscode";
+import { Config } from "../../Config";
+import TestSetup from "./TestSetup";
+
+// Defines a Mocha test suite to group tests of similar kind together
+suite("C++ - Configuration Tests", () => {
+ const testSetup: TestSetup = new TestSetup("void foo();");
+
+ // Tests
+ test("Default config", () => {
+ testSetup.cfg = new Config();
+ const result = testSetup.SetLine("template<typename T> bool foo(T a);").GetResult();
+ assert.equal("/**\n * @brief \n * \n * @tparam T \n * @param a \n * "
+ + "@return true \n * @return false \n */", result);
+ });
+
+ test("Modified template", () => {
+ testSetup.cfg = new Config();
+
+ testSetup.cfg.firstLine = "";
+ testSetup.cfg.lastLine = "";
+ testSetup.cfg.commentPrefix = "/// ";
+ testSetup.cfg.briefTemplate = "\\brief ";
+ testSetup.cfg.paramTemplate = "\\param {param} ";
+ testSetup.cfg.tparamTemplate = "\\tparam {param} ";
+ testSetup.cfg.returnTemplate = "\\return {type} ";
+
+ const result = testSetup.SetLine("template<typename T> bool foo(T a);").GetResult();
+ assert.equal("/// \\brief \n/// \n/// \\tparam T \n/// \\param a \n"
+ + "/// \\return true \n/// \\return false ", result);
+
+ });
+
+ test("Disable true false on bool", () => {
+ testSetup.cfg = new Config();
+ testSetup.cfg.boolReturnsTrueFalse = false;
+ const result = testSetup.SetLine("template<typename T> bool foo(T a);").GetResult();
+ assert.equal("/**\n * @brief \n * \n * @tparam T \n * @param a \n"
+ + " * @return bool \n */", result);
+ });
+
+ test("Disable including return type.", () => {
+ testSetup.cfg = new Config();
+ testSetup.cfg.includeTypeAtReturn = false;
+
+ const result = testSetup.SetLine("template<typename T> bool foo(T a);").GetResult();
+ assert.equal("/**\n * @brief \n * \n * @tparam T \n * @param a \n"
+ + " * @return \n */", result);
+ });
+
+ test("Newlines after params and tparams but not after brief", () => {
+ testSetup.cfg = new Config();
+ testSetup.cfg.newLineAfterBrief = false;
+ testSetup.cfg.newLineAfterParams = true;
+ testSetup.cfg.newLineAfterTParams = true;
+
+ const result = testSetup.SetLine("template<typename T> bool foo(T a);").GetResult();
+ assert.equal("/**\n * @brief \n * @tparam T \n * \n * @param a \n * \n"
+ + " * @return true \n * @return false \n */", result);
+ });
+
+ test("Indentation test", () => {
+ testSetup.cfg = new Config();
+ let result = testSetup.SetLine("\ttemplate<typename T> bool foo(T a);").GetResult();
+ assert.equal("/**\n\t * @brief \n\t * \n\t * @tparam T \n\t * @param a \n\t * "
+ + "@return true \n\t * @return false \n\t */", result);
+
+ result = testSetup.SetLine(" template<typename T> bool foo(T a);").GetResult();
+ assert.equal("/**\n * @brief \n * \n * @tparam T "
+ + "\n * @param a \n * "
+ + "@return true \n * @return false \n */", result);
+ });
+});