Skip to content

Commit 6c5e51e

Browse files
authored
Giuliov/make affixes optional (#140)
* first attempt * fix test
1 parent 55ad070 commit 6c5e51e

File tree

3 files changed

+37
-7
lines changed

3 files changed

+37
-7
lines changed

src/aggregator-cli/Naming/FileNamingTemplates.cs

-4
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ internal class FileNamingTemplates : INamingTemplates
1111
internal FileNamingTemplates(string jsonData)
1212
{
1313
affixes = JsonConvert.DeserializeObject<NamingAffixes>(jsonData);
14-
// validate
15-
if (string.IsNullOrWhiteSpace(affixes.ResourceGroupPrefix)
16-
&& string.IsNullOrWhiteSpace(affixes.ResourceGroupSuffix))
17-
throw new ArgumentException("Must specify at least one affix for ResourceGroup");
1814
}
1915

2016
private class InstanceName_ : InstanceCreateNames

src/unittests-core/BuiltInNamingTemplateTests.cs

+26-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using Xunit;
1+
using Xunit;
22
using aggregator.cli;
33

44
namespace unittests_core
@@ -10,6 +10,7 @@ public void CustomResourceGroupName()
1010
{
1111
var templates = new BuiltInNamingTemplates();
1212
var names = templates.GetInstanceCreateNames("n", "rg");
13+
1314
Assert.Equal("n", names.PlainName);
1415
Assert.Equal("naggregator", names.FunctionAppName);
1516
Assert.Equal("rg", names.ResourceGroupName);
@@ -21,10 +22,33 @@ public void DefaultResourceGroupName()
2122
{
2223
var templates = new BuiltInNamingTemplates();
2324
var names = templates.GetInstanceCreateNames("n", null);
25+
2426
Assert.Equal("n", names.PlainName);
2527
Assert.Equal("naggregator", names.FunctionAppName);
2628
Assert.Equal("aggregator-n", names.ResourceGroupName);
2729
Assert.False(names.IsCustom);
2830
}
31+
32+
[Fact]
33+
public void FromResourceGroupName_CustomResourceGroupName()
34+
{
35+
var templates = new BuiltInNamingTemplates();
36+
37+
var actual = templates.FromResourceGroupName("aggregator-n");
38+
39+
Assert.Equal("n", actual.PlainName);
40+
Assert.Equal("aggregator-n", actual.ResourceGroupName);
41+
}
42+
43+
[Fact]
44+
public void FromResourceGroupName_DefaultResourceGroupName()
45+
{
46+
var templates = new BuiltInNamingTemplates();
47+
48+
var actual = templates.FromResourceGroupName("aggregator-n");
49+
50+
Assert.Equal("n", actual.PlainName);
51+
Assert.Equal("aggregator-n", actual.ResourceGroupName);
52+
}
2953
}
30-
}
54+
}

src/unittests-core/FileNamingTemplateTests.cs

+11-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ public class FileNamingTemplateTests
1010
public void CtorValidate_Fails()
1111
{
1212
//"Must specify at least one affix for ResourceGroup"
13-
Assert.Throws<ArgumentException>(() => new FileNamingTemplates("{}"));
13+
Assert.True(true);
14+
//Assert.Throws<ArgumentException>(() => new FileNamingTemplates("{}"));
1415
}
1516

1617
[Fact]
@@ -22,6 +23,7 @@ public void InstanceValidate_Fails_OnNullName()
2223
}
2324

2425
[Theory]
26+
[InlineData(@"{}", "n", "rg")]
2527
[InlineData(@"{""ResourceGroupPrefix"":""a""}", "n", "arg")]
2628
[InlineData(@"{""ResourceGroupSuffix"":""z""}", "n", "rgz")]
2729
[InlineData(@"{""ResourceGroupPrefix"":""p"",""ResourceGroupSuffix"":""s""}", "n", "prgs")]
@@ -34,6 +36,7 @@ public void ResourceGroupName_Succeeds(string jsonData, string plainName, string
3436
}
3537

3638
[Theory]
39+
[InlineData(@"{""FunctionAppPrefix"":""a""}", "n", "an")]
3740
[InlineData(@"{""ResourceGroupPrefix"":""a"",""FunctionAppPrefix"":""a""}", "n", "an")]
3841
[InlineData(@"{""ResourceGroupPrefix"":""a"",""FunctionAppSuffix"":""z""}", "n", "nz")]
3942
[InlineData(@"{""ResourceGroupPrefix"":""a"",""FunctionAppPrefix"":""p"",""FunctionAppSuffix"":""s""}", "n", "pns")]
@@ -46,6 +49,7 @@ public void FunctionAppName_Succeeds(string jsonData, string plainName, string f
4649
}
4750

4851
[Theory]
52+
[InlineData(@"{""HostingPlanPrefix"":""a""}", "n", "an")]
4953
[InlineData(@"{""ResourceGroupPrefix"":""a"",""HostingPlanPrefix"":""a""}", "n", "an")]
5054
[InlineData(@"{""ResourceGroupPrefix"":""a"",""HostingPlanSuffix"":""z""}", "n", "nz")]
5155
[InlineData(@"{""ResourceGroupPrefix"":""a"",""HostingPlanPrefix"":""p"",""HostingPlanSuffix"":""s""}", "n", "pns")]
@@ -58,6 +62,7 @@ public void HostingPlanName_Succeeds(string jsonData, string plainName, string h
5862
}
5963

6064
[Theory]
65+
[InlineData(@"{""AppInsightPrefix"":""a""}", "n", "an")]
6166
[InlineData(@"{""ResourceGroupPrefix"":""a"",""AppInsightPrefix"":""a""}", "n", "an")]
6267
[InlineData(@"{""ResourceGroupPrefix"":""a"",""AppInsightSuffix"":""z""}", "n", "nz")]
6368
[InlineData(@"{""ResourceGroupPrefix"":""a"",""AppInsightPrefix"":""p"",""AppInsightSuffix"":""s""}", "n", "pns")]
@@ -70,6 +75,7 @@ public void AppInsightName_Succeeds(string jsonData, string plainName, string ap
7075
}
7176

7277
[Theory]
78+
[InlineData(@"{""StorageAccountPrefix"":""a""}", "n", "an")]
7379
[InlineData(@"{""ResourceGroupPrefix"":""a"",""StorageAccountPrefix"":""a""}", "n", "an")]
7480
[InlineData(@"{""ResourceGroupPrefix"":""a"",""StorageAccountSuffix"":""z""}", "n", "nz")]
7581
[InlineData(@"{""ResourceGroupPrefix"":""a"",""StorageAccountPrefix"":""p"",""StorageAccountSuffix"":""s""}", "n", "pns")]
@@ -82,6 +88,7 @@ public void StorageAccountName_Succeeds(string jsonData, string plainName, strin
8288
}
8389

8490
[Theory]
91+
[InlineData(@"{}", "n", "n")]
8592
[InlineData(@"{""ResourceGroupPrefix"":""a""}", "an", "n")]
8693
[InlineData(@"{""ResourceGroupSuffix"":""z""}", "nz", "n")]
8794
[InlineData(@"{""ResourceGroupPrefix"":""p"",""ResourceGroupSuffix"":""s""}", "pns", "n")]
@@ -95,6 +102,7 @@ public void FromResourceGroupName_Succeeds(string jsonData, string rgName, strin
95102
}
96103

97104
[Theory]
105+
[InlineData(@"{}", "rg", "app", "app")]
98106
[InlineData(@"{""ResourceGroupPrefix"":""a""}", "arg", "app", "app")]
99107
[InlineData(@"{""ResourceGroupPrefix"":""a"",""FunctionAppPrefix"":""a""}", "arg", "an", "n")]
100108
[InlineData(@"{""ResourceGroupPrefix"":""a"",""FunctionAppSuffix"":""z""}", "arg", "nz", "n")]
@@ -109,6 +117,7 @@ public void FromFunctionAppName_Succeeds(string jsonData, string rgName, string
109117
}
110118

111119
[Theory]
120+
[InlineData(@"{}", "https://zorro.azure.net/pippo", "zorro")]
112121
[InlineData(@"{""ResourceGroupPrefix"":""a""}", "https://zorro.azure.net/pippo", "zorro")]
113122
[InlineData(@"{""ResourceGroupPrefix"":""a"",""FunctionAppPrefix"":""a""}", "https://an.azure.net/pippo", "n")]
114123
[InlineData(@"{""ResourceGroupPrefix"":""a"",""FunctionAppSuffix"":""z""}", "https://nz.azure.net/pippo", "n")]
@@ -123,6 +132,7 @@ public void FromFunctionAppUrl_Succeeds(string jsonData, string url, string expe
123132
}
124133

125134
[Theory]
135+
[InlineData(@"{}", "n", "n")]
126136
[InlineData(@"{""ResourceGroupPrefix"":""a""}", "n", "an")]
127137
[InlineData(@"{""ResourceGroupSuffix"":""z""}", "n", "nz")]
128138
[InlineData(@"{""ResourceGroupPrefix"":""p"",""ResourceGroupSuffix"":""s""}", "n", "pns")]

0 commit comments

Comments
 (0)