1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
//
// 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 TestSetup from "./TestSetup";
// Defines a Mocha test suite to group tests of similar kind together
suite("Smart Text Tests", () => {
const testSetup: TestSetup = new TestSetup("void foo();");
// Tests
test("Disable smart text Ctor", () => {
testSetup.cfg.Generic.generateSmartText = false;
const result = testSetup.SetLine("Foo();").GetResult();
assert.strictEqual(result, "/**\n * @brief \n * \n */");
});
test("Disable smart text Dtor", () => {
testSetup.cfg.Generic.generateSmartText = false;
const result = testSetup.SetLine("~Foo();").GetResult();
assert.strictEqual(result, "/**\n * @brief \n * \n */");
});
test("Disable smart text getter", () => {
testSetup.cfg.Generic.generateSmartText = false;
const result = testSetup.SetLine("int getFoo();").GetResult();
assert.strictEqual(result, "/**\n * @brief \n * \n * @return int \n */");
});
test("Disable smart text setter", () => {
testSetup.cfg.Generic.generateSmartText = false;
const result = testSetup.SetLine("void setFoo(int foo);").GetResult();
assert.strictEqual(result, "/**\n * @brief \n * \n * @param foo \n */");
});
test("Disable smart text factory method", () => {
testSetup.cfg.Generic.generateSmartText = false;
const result = testSetup.SetLine("int createFoo();").GetResult();
assert.strictEqual(result, "/**\n * @brief \n * \n * @return int \n */");
});
test("Standard smart text Ctor", () => {
testSetup.cfg.Generic.generateSmartText = true;
const result = testSetup.SetLine("Foo();").GetResult();
assert.strictEqual(result, "/**\n * @brief Construct a new Foo object\n * \n */");
});
test("Standard smart text Dtor", () => {
testSetup.cfg.Generic.generateSmartText = true;
const result = testSetup.SetLine("~Foo();").GetResult();
assert.strictEqual(result, "/**\n * @brief Destroy the Foo object\n * \n */");
});
test("Standard smart text getter", () => {
testSetup.cfg.Generic.generateSmartText = true;
const result = testSetup.SetLine("int getFoo();").GetResult();
assert.strictEqual(result, "/**\n * @brief Get the Foo object\n * \n * @return int \n */");
});
test("Standard smart text setter", () => {
testSetup.cfg.Generic.generateSmartText = true;
const result = testSetup.SetLine("void setFoo(int foo);").GetResult();
assert.strictEqual(result, "/**\n * @brief Set the Foo object\n * \n * @param foo \n */");
});
test("Standard smart text factory method", () => {
testSetup.cfg.Generic.generateSmartText = true;
const result = testSetup.SetLine("int createFoo();").GetResult();
assert.strictEqual(result, "/**\n * @brief Create a Foo object\n * \n * @return int \n */");
});
test("Casing text split: SCREAMING_SNAKE", () => {
testSetup.cfg.Generic.generateSmartText = true;
const result = testSetup.SetLine("int CREATE_FOO();").GetResult();
assert.strictEqual(result, "/**\n * @brief Create a foo object\n * \n * @return int \n */");
});
test("Casing text split: snake_case", () => {
testSetup.cfg.Generic.generateSmartText = true;
const result = testSetup.SetLine("int create_foo();").GetResult();
assert.strictEqual(result, "/**\n * @brief Create a foo object\n * \n * @return int \n */");
});
test("Casing text split: PascalCase", () => {
testSetup.cfg.Generic.generateSmartText = true;
const result = testSetup.SetLine("int CreateFoo();").GetResult();
assert.strictEqual(result, "/**\n * @brief Create a Foo object\n * \n * @return int \n */");
});
test("Casing text split: camelCase", () => {
testSetup.cfg.Generic.generateSmartText = true;
const result = testSetup.SetLine("int createFoo();").GetResult();
assert.strictEqual(result, "/**\n * @brief Create a Foo object\n * \n * @return int \n */");
});
test("Casing text split: UPPERCASE", () => {
testSetup.cfg.Generic.generateSmartText = true;
const result = testSetup.SetLine("int CREATEFOO();").GetResult();
assert.strictEqual(result, "/**\n * @brief Create a FOO object\n * \n * @return int \n */");
});
test("Casing text split: UnCertain_CASE", () => {
testSetup.cfg.Generic.generateSmartText = true;
const result = testSetup.SetLine("int Create_FOO();").GetResult();
assert.strictEqual(result, "/**\n * @brief \n * \n * @return int \n */");
});
test("Casing text split: unidentifieable", () => {
testSetup.cfg.Generic.generateSmartText = true;
// SCREAMING_SNAKE
let result = testSetup.SetLine("int CREATE_foo();").GetResult();
assert.strictEqual(result, "/**\n * @brief \n * \n * @return int \n */");
// snake_case
result = testSetup.SetLine("int create_FOO();").GetResult();
assert.strictEqual(result, "/**\n * @brief \n * \n * @return int \n */");
// Pascal
result = testSetup.SetLine("int Createfoo();").GetResult();
assert.strictEqual(result, "/**\n * @brief \n * \n * @return int \n */");
// camel
result = testSetup.SetLine("int createFOO();").GetResult();
assert.strictEqual(result, "/**\n * @brief \n * \n * @return int \n */");
// UPPER???
result = testSetup.SetLine("int CREATE_();").GetResult();
assert.strictEqual(result, "/**\n * @brief \n * \n * @return int \n */");
});
});
|