-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain-module.bicep
81 lines (61 loc) · 1.95 KB
/
main-module.bicep
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
// create a hello world bicep module
var module = new BicepFile("module.bicep", @"
param message string = 'hello world'
output result string = message");
// create a main bicep file that uses the module
var main = new BicepFile("main.bicep", @"
module module 'module.bicep' = {
name: 'module'
params: {
message: 'hello world'
}
}
output result string = module.outputs.result");
var (template, _) = CompilationHelper.CompileFiles(module, main);
var output = template.ToJToken();
output.Should().HaveValueAtPath("$.outputs['result'].value", "hello world");
}
[TestMethod]
public void Module_with_missing_required_parameter_should_be_an_error()
{
var module = new BicepFile("module.bicep", @"
param message string
output result string = message");
var main = new BicepFile("main.bicep", @"
module module 'module.bicep' = {
name: 'module'
params: {
}
}
output result string = module.outputs.result");
var (template, _) = CompilationHelper.CompileFiles(module, main);
var output = template.ToJToken();
output.Should().NotHaveValueAtPath("$.outputs['result'].value");
}
[TestMethod]
public void Module_with_extra_parameter_should_be_an_error()
{
var module = new BicepFile("module.bicep", @"
param message string
output result string = message");
var main = new BicepFile("main.bicep", @"
module module 'module.bicep' = {
name: 'module'
params: {
message: 'hello world'
extra: 'extra'
}
}
output result string = module.outputs.result");
var (template, _) = CompilationHelper.CompileFiles(module, main);
var output = template.ToJToken();
output.Should().NotHaveValueAtPath("$.outputs['result'].value");
}
[TestMethod]
public void Module_with_missing_required_object_parameter_should_be_an_error()
{
var module = new BicepFile("module.bicep", @"
param message object
output result string = message.name");
var main = new BicepFile("main.bicep", @"
module module 'module.b