diff options
| author | Rowan Goemans <RB.Goemans@student.han.nl> | 2018-01-01 21:22:18 +0100 |
|---|---|---|
| committer | Christoph Schlosser <christophschlosser@users.noreply.github.com> | 2018-02-20 22:02:22 +0100 |
| commit | 8711b0fb2c8f88a6864096de7813e63fd6cf9f7a (patch) | |
| tree | 212fd2fb67cfd2f778e42ae955f869bc444afdb2 /src/test/CppTests/Config.test.ts | |
| parent | d9cef62f8778fcdc39d26802d5d7457c97e9dfc0 (diff) | |
| download | doxdocgen-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.ts | 83 |
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); + }); +}); |