Skip to content

Commit 40cf679

Browse files
committed
tests: more tests && docs
api: changes
1 parent aaf5673 commit 40cf679

File tree

10 files changed

+735
-89
lines changed

10 files changed

+735
-89
lines changed

api_test.go

Lines changed: 377 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package v8
22

33
import (
4+
"github.com/stretchr/testify/assert"
45
"github.com/v8platform/designer"
56
"github.com/v8platform/runner"
67
"reflect"
@@ -54,3 +55,379 @@ func TestCreateInfobase(t *testing.T) {
5455
})
5556
}
5657
}
58+
59+
func TestApiConfig(t *testing.T) {
60+
61+
ib := NewFileInfobase("./test_ib")
62+
63+
tests := []struct {
64+
name string
65+
where ConnectionString
66+
want Command
67+
opts []interface{}
68+
wantArgs []string
69+
}{
70+
{
71+
"LoadCfg",
72+
ib,
73+
LoadCfg("./1cv8.cf"),
74+
nil,
75+
[]string{
76+
"DESIGNER",
77+
"/IBConnectionString File='./test_ib';",
78+
"/DisableStartupDialogs",
79+
"/LoadCfg ./1cv8.cf",
80+
},
81+
},
82+
{
83+
"LoadCfg_UpdateDBCfg",
84+
ib,
85+
LoadCfg("./1cv8.cf", UpdateDBCfg(true, true)),
86+
nil,
87+
[]string{
88+
"DESIGNER",
89+
"/IBConnectionString File='./test_ib';",
90+
"/DisableStartupDialogs",
91+
"/LoadCfg ./1cv8.cf",
92+
"/UpdateDBCfg",
93+
"-Dynamic+",
94+
"-Server",
95+
},
96+
},
97+
{
98+
"LoadConfigFromFiles",
99+
ib,
100+
LoadConfigFromFiles("./src"),
101+
nil,
102+
[]string{
103+
"DESIGNER",
104+
"/IBConnectionString File='./test_ib';",
105+
"/DisableStartupDialogs",
106+
"/LoadConfigFromFiles ./src",
107+
},
108+
},
109+
{
110+
"LoadConfigFromFiles_WithFiles",
111+
ib,
112+
LoadConfigFromFiles("./src").WithFiles("./src/file1.xml", "./src/file2.xml"),
113+
nil,
114+
[]string{
115+
"DESIGNER",
116+
"/IBConnectionString File='./test_ib';",
117+
"/DisableStartupDialogs",
118+
"/LoadConfigFromFiles ./src",
119+
"-files ./src/file1.xml,./src/file2.xml",
120+
},
121+
},
122+
{
123+
"LoadConfigFromFiles_WithListFile",
124+
ib,
125+
LoadConfigFromFiles("./src").WithListFile("./file_list.xml"),
126+
nil,
127+
[]string{
128+
"DESIGNER",
129+
"/IBConnectionString File='./test_ib';",
130+
"/DisableStartupDialogs",
131+
"/LoadConfigFromFiles ./src",
132+
"-listFile ./file_list.xml",
133+
},
134+
},
135+
{
136+
"LoadConfigFromFiles_WithUpdateDumpInfo",
137+
ib,
138+
LoadConfigFromFiles("./src").WithUpdateDumpInfo(),
139+
nil,
140+
[]string{
141+
"DESIGNER",
142+
"/IBConnectionString File='./test_ib';",
143+
"/DisableStartupDialogs",
144+
"/LoadConfigFromFiles ./src",
145+
"-updateConfigDumpInfo",
146+
},
147+
},
148+
{
149+
"LoadConfigFromFiles_UpdateDBCfg",
150+
ib,
151+
LoadConfigFromFiles("./src", UpdateDBCfg(true, true)),
152+
nil,
153+
[]string{
154+
"DESIGNER",
155+
"/IBConnectionString File='./test_ib';",
156+
"/DisableStartupDialogs",
157+
"/LoadConfigFromFiles ./src",
158+
"/UpdateDBCfg",
159+
"-Dynamic+",
160+
"-Server",
161+
},
162+
},
163+
{
164+
"UpdateCfg",
165+
ib,
166+
UpdateCfg("./1cv8.cf", false),
167+
nil,
168+
[]string{
169+
"DESIGNER",
170+
"/IBConnectionString File='./test_ib';",
171+
"/DisableStartupDialogs",
172+
"/UpdateCfg ./1cv8.cf",
173+
},
174+
},
175+
{
176+
"UpdateCfg_force",
177+
ib,
178+
UpdateCfg("./1cv8.cf", true),
179+
nil,
180+
[]string{
181+
"DESIGNER",
182+
"/IBConnectionString File='./test_ib';",
183+
"/DisableStartupDialogs",
184+
"/UpdateCfg ./1cv8.cf",
185+
"-Force",
186+
},
187+
},
188+
{
189+
"UpdateCfg_UpdateDBCfg",
190+
ib,
191+
UpdateCfg("./1cv8.cf", true, UpdateDBCfg(true, true)),
192+
nil,
193+
[]string{
194+
"DESIGNER",
195+
"/IBConnectionString File='./test_ib';",
196+
"/DisableStartupDialogs",
197+
"/UpdateCfg ./1cv8.cf",
198+
"-Force",
199+
"/UpdateDBCfg",
200+
"-Dynamic+",
201+
"-Server",
202+
},
203+
},
204+
{
205+
"DumpCfg",
206+
ib,
207+
DumpCfg("./1cv8.cf"),
208+
nil,
209+
[]string{
210+
"DESIGNER",
211+
"/IBConnectionString File='./test_ib';",
212+
"/DisableStartupDialogs",
213+
"/DumpCfg ./1cv8.cf",
214+
},
215+
},
216+
{
217+
"DumpConfigToFiles",
218+
ib,
219+
DumpConfigToFiles("./src", false),
220+
nil,
221+
[]string{
222+
"DESIGNER",
223+
"/IBConnectionString File='./test_ib';",
224+
"/DisableStartupDialogs",
225+
"/DumpConfigToFiles ./src",
226+
},
227+
},
228+
{
229+
"DumpConfigToFiles_force",
230+
ib,
231+
DumpConfigToFiles("./src", true),
232+
nil,
233+
[]string{
234+
"DESIGNER",
235+
"/IBConnectionString File='./test_ib';",
236+
"/DisableStartupDialogs",
237+
"/DumpConfigToFiles ./src",
238+
"-Force",
239+
},
240+
},
241+
{
242+
"DumpConfigToFiles_update",
243+
ib,
244+
DumpConfigToFiles("./src", false).WithUpdate(false, ""),
245+
nil,
246+
[]string{
247+
"DESIGNER",
248+
"/IBConnectionString File='./test_ib';",
249+
"/DisableStartupDialogs",
250+
"/DumpConfigToFiles ./src",
251+
"-update",
252+
},
253+
},
254+
{
255+
"DumpConfigToFiles_configDumpInfo",
256+
ib,
257+
DumpConfigToFiles("./src", false).WithUpdate(false, "./dumpInfo.xml"),
258+
nil,
259+
[]string{
260+
"DESIGNER",
261+
"/IBConnectionString File='./test_ib';",
262+
"/DisableStartupDialogs",
263+
"/DumpConfigToFiles ./src",
264+
"-update",
265+
"-configDumpInfoForChanges ./dumpInfo.xml",
266+
},
267+
},
268+
{
269+
"GetChangesForConfigDump",
270+
ib,
271+
GetChangesForConfigDump("./src", "./dumpInfo.xml", false),
272+
nil,
273+
[]string{
274+
"DESIGNER",
275+
"/IBConnectionString File='./test_ib';",
276+
"/DisableStartupDialogs",
277+
"/DumpConfigToFiles ./src",
278+
"-getChanges ./dumpInfo.xml",
279+
},
280+
},
281+
{
282+
"GetChangesForConfigDump_force",
283+
ib,
284+
GetChangesForConfigDump("./src", "./dumpInfo.xml", true),
285+
nil,
286+
[]string{
287+
"DESIGNER",
288+
"/IBConnectionString File='./test_ib';",
289+
"/DisableStartupDialogs",
290+
"/DumpConfigToFiles ./src",
291+
"-getChanges ./dumpInfo.xml",
292+
"-force",
293+
},
294+
},
295+
{
296+
"GetChangesForConfigDump_WithConfigDumpInfo",
297+
ib,
298+
GetChangesForConfigDump("./src", "./dumpInfo.xml", false).
299+
WithConfigDumpInfo("./old_dumpInfo.xml"),
300+
nil,
301+
[]string{
302+
"DESIGNER",
303+
"/IBConnectionString File='./test_ib';",
304+
"/DisableStartupDialogs",
305+
"/DumpConfigToFiles ./src",
306+
"-getChanges ./dumpInfo.xml",
307+
"-configDumpInfoForChanges ./old_dumpInfo.xml",
308+
},
309+
},
310+
{
311+
"DisableCfgSupport",
312+
ib,
313+
DisableCfgSupport(),
314+
nil,
315+
[]string{
316+
"DESIGNER",
317+
"/IBConnectionString File='./test_ib';",
318+
"/DisableStartupDialogs",
319+
"/ManageCfgSupport",
320+
"-disableSupport",
321+
},
322+
},
323+
{
324+
"DisableCfgSupport_force",
325+
ib,
326+
DisableCfgSupport(true),
327+
nil,
328+
[]string{
329+
"DESIGNER",
330+
"/IBConnectionString File='./test_ib';",
331+
"/DisableStartupDialogs",
332+
"/ManageCfgSupport",
333+
"-disableSupport",
334+
"-force",
335+
},
336+
},
337+
{
338+
"RollbackCfg",
339+
ib,
340+
RollbackCfg(),
341+
nil,
342+
[]string{
343+
"DESIGNER",
344+
"/IBConnectionString File='./test_ib';",
345+
"/DisableStartupDialogs",
346+
"/RollbackCfg",
347+
},
348+
},
349+
}
350+
351+
for _, tt := range tests {
352+
t.Run(tt.name, func(t *testing.T) {
353+
354+
runTestCase(t, tt)
355+
356+
})
357+
}
358+
359+
}
360+
361+
func TestApiOptions(t *testing.T) {
362+
363+
//ib := NewFileInfobase("./test_ib")
364+
365+
tests := []struct {
366+
name string
367+
where ConnectionString
368+
want Command
369+
opts []interface{}
370+
wantArgs []string
371+
}{
372+
{
373+
"options",
374+
Infobase{
375+
Connect: ServerPath{
376+
Server: "app-server",
377+
Ref: "ib_name",
378+
},
379+
User: "administrator",
380+
Password: "password",
381+
AllowServerLicenses: true,
382+
SeparatorList: DatabaseSeparatorList{DatabaseSeparator{
383+
Use: true,
384+
Value: "sep1",
385+
}},
386+
UsePrivilegedMode: true,
387+
Locale: "ru_RU",
388+
},
389+
designer.LoadCfgOptions{
390+
File: "./1cv8.cf",
391+
Designer: designer.NewDesigner(),
392+
},
393+
[]interface{}{
394+
WithCredentials("admin", "pwd"),
395+
WithOut("./out_file", true),
396+
WithUC("UnlockCode"),
397+
},
398+
[]string{
399+
"DESIGNER",
400+
"/IBConnectionString Srvr=app-server;Ref='ib_name';Usr=administrator;Pwd=password;LicDstr=Y;ZN=+sep1;Prmod=1;Locale=ru_RU",
401+
"/DisableStartupDialogs",
402+
"/LoadCfg ./1cv8.cf",
403+
"/Out ./out_file -NoTruncate",
404+
"/UC UnlockCode",
405+
},
406+
},
407+
}
408+
409+
for _, tt := range tests {
410+
t.Run(tt.name, func(t *testing.T) {
411+
412+
runTestCase(t, tt)
413+
414+
})
415+
}
416+
417+
}
418+
419+
func runTestCase(t *testing.T, tt struct {
420+
name string
421+
where ConnectionString
422+
want Command
423+
opts []interface{}
424+
wantArgs []string
425+
}) {
426+
v8run := runner.NewPlatformRunner(tt.where, tt.want, tt.opts...)
427+
got := v8run.Args()
428+
429+
for _, arg := range tt.wantArgs {
430+
assert.Contains(t, got, arg)
431+
}
432+
433+
}

0 commit comments

Comments
 (0)