From 8711b0fb2c8f88a6864096de7813e63fd6cf9f7a Mon Sep 17 00:00:00 2001 From: Rowan Goemans Date: Mon, 1 Jan 2018 21:22:18 +0100 Subject: -- Added tests for the configuration options. -- Expanded the mock classes to allow for more dynamic setting of the contents. --- src/test/CppTests/Config.test.ts | 83 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 src/test/CppTests/Config.test.ts (limited to 'src/test/CppTests/Config.test.ts') 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 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 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 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 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 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 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 bool foo(T a);").GetResult(); + assert.equal("/**\n * @brief \n * \n * @tparam T " + + "\n * @param a \n * " + + "@return true \n * @return false \n */", result); + }); +}); -- cgit v1.2.3