Skip to content

Commit e8b82d9

Browse files
committed
refactor tests and add more tests to cover muitlple scenarios
1 parent 276340a commit e8b82d9

File tree

3 files changed

+42
-32
lines changed

3 files changed

+42
-32
lines changed

test/Amazon.Extensions.Configuration.SystemsManager.Tests/DefaultParameterProcessorTests.cs

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,44 @@
11
using System.Collections.Generic;
22
using Amazon.SimpleSystemsManagement;
33
using Amazon.SimpleSystemsManagement.Model;
4-
using Moq;
54
using Xunit;
65

76
namespace Amazon.Extensions.Configuration.SystemsManager.Tests
87
{
98
public class DefaultParameterProcessorTests
109
{
11-
private readonly IParameterProcessor _parameterProcessor;
10+
private readonly IParameterProcessor _parameterProcessor = new DefaultParameterProcessor();
1211

13-
public DefaultParameterProcessorTests()
12+
[Fact]
13+
public void ExtractConfigurationKeyFromParameter()
1414
{
15-
_parameterProcessor = new DefaultParameterProcessor();
15+
var processor = new DefaultParameterProcessor();
16+
17+
Assert.Equal("level1:level2", processor.GetKey(new Parameter() { Name = "/level1/level2" }, ""));
18+
Assert.Equal("level1:level2", processor.GetKey(new Parameter() { Name = "/level1/level2" }, "/"));
19+
Assert.Equal("level1:level2", processor.GetKey(new Parameter() { Name = "/level1/level2" }, "/someotherlevel"));
20+
21+
Assert.Equal("level2:level3", processor.GetKey(new Parameter() { Name = "/level1/level2/level3" }, "/level1"));
22+
Assert.Equal("level2", processor.GetKey(new Parameter() { Name = "/level1/level2" }, "/LEVEL1"));
23+
}
24+
25+
[Fact]
26+
public void ExtractConfigurationValueFromParameter()
27+
{
28+
var processor = new DefaultParameterProcessor();
29+
30+
Assert.Equal("Some value", processor.GetValue(new Parameter() { Value = "Some value" }, null));
1631
}
1732

1833
[Fact]
1934
public void ProcessParametersTest()
2035
{
2136
var parameters = new List<Parameter>
2237
{
23-
new Parameter {Name = "/start/path/p1/p2-1", Value = "p1:p2-1"},
24-
new Parameter {Name = "/start/path/p1/p2-2", Value = "p1:p2-2"},
25-
new Parameter {Name = "/start/path/p1/p2/p3-1", Value = "p1:p2:p3-1"},
26-
new Parameter {Name = "/start/path/p1/p2/p3-2", Value = "p1:p2:p3-2"},
38+
new Parameter { Name = "/start/path/p1/p2-1", Value = "p1:p2-1" },
39+
new Parameter { Name = "/start/path/p1/p2-2", Value = "p1:p2-2" },
40+
new Parameter { Name = "/start/path/p1/p2/p3-1", Value = "p1:p2:p3-1" },
41+
new Parameter { Name = "/start/path/p1/p2/p3-2", Value = "p1:p2:p3-2" },
2742
};
2843

2944
const string path = "/start/path";
@@ -38,9 +53,9 @@ public void ProcessParametersStringListTest()
3853
{
3954
var parameters = new List<Parameter>
4055
{
41-
new Parameter {Name = "/string-list/single", Value = "p1", Type = ParameterType.StringList},
42-
new Parameter {Name = "/string-list/multiple", Value = "p1,p2,p3", Type = ParameterType.StringList},
43-
new Parameter {Name = "/string-list/empty", Value = "", Type = ParameterType.StringList},
56+
new Parameter { Name = "/string-list/single", Value = "p1", Type = ParameterType.StringList },
57+
new Parameter { Name = "/string-list/multiple", Value = "p1,p2,p3", Type = ParameterType.StringList },
58+
new Parameter { Name = "/string-list/empty", Value = "", Type = ParameterType.StringList },
4459
};
4560

4661
const string path = "/string-list";
@@ -55,14 +70,14 @@ public void ProcessParametersStringListTest()
5570
Assert.Equal("", data["empty:0"]);
5671
}
5772

58-
73+
5974
[Fact]
6075
public void ProcessParametersRootTest()
6176
{
6277
var parameters = new List<Parameter>
6378
{
64-
new Parameter {Name = "/p1", Value = "p1"},
65-
new Parameter {Name = "p2", Value = "p2"},
79+
new Parameter { Name = "/p1", Value = "p1" },
80+
new Parameter { Name = "p2", Value = "p2" },
6681
};
6782

6883
const string path = "/";
@@ -77,8 +92,8 @@ public void DuplicateSimpleParametersTest()
7792
{
7893
var parameters = new List<Parameter>
7994
{
80-
new Parameter {Name = "/start/path/p1", Value = "p1:1"},
81-
new Parameter {Name = "/start/path/P1", Value = "p1:2"}
95+
new Parameter { Name = "/start/path/p1", Value = "p1:1" },
96+
new Parameter { Name = "/start/path/P1", Value = "p1:2" }
8297
};
8398

8499
const string path = "/start/path";
@@ -90,8 +105,8 @@ public void DuplicateStringListParametersTest()
90105
{
91106
var parameters = new List<Parameter>
92107
{
93-
new Parameter {Name = "/string-list/multiple", Value = "p1,p2,p3", Type = ParameterType.StringList},
94-
new Parameter {Name = "/string-list/MULTIPLE", Value = "p3,p5,p6", Type = ParameterType.StringList}
108+
new Parameter { Name = "/string-list/multiple", Value = "p1,p2,p3", Type = ParameterType.StringList },
109+
new Parameter { Name = "/string-list/MULTIPLE", Value = "p3,p5,p6", Type = ParameterType.StringList }
95110
};
96111

97112
const string path = "/string-list";

test/Amazon.Extensions.Configuration.SystemsManager.Tests/JsonOrStringParameterProcessorTest.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace Amazon.Extensions.Configuration.SystemsManager.Tests
77
{
88
public class JsonOrStringParameterProcessorTest
99
{
10-
private readonly JsonOrStringParameterProcessor _processor = new JsonOrStringParameterProcessor();
10+
private readonly IParameterProcessor _parameterProcessor = new JsonOrStringParameterProcessor();
1111

1212
[Fact]
1313
public void ParsesJsonParametersSuccessfully()
@@ -17,7 +17,7 @@ public void ParsesJsonParametersSuccessfully()
1717
new Parameter() { Name = "/test/level1/level2", Type = ParameterType.String, Value = "{\"level1Key\":\"level1value\"}" },
1818
new Parameter() { Name = "/test/level1", Type = ParameterType.String, Value = "{\"level1Key\" : {\"level2key\" : \"level2value\"}}" }
1919
};
20-
var result = _processor.ProcessParameters(parameters, "/test");
20+
var result = _parameterProcessor.ProcessParameters(parameters, "/test");
2121

2222
Assert.Equal(2, result.Count);
2323
Assert.True(result.ContainsKey("level1:level2:level1Key"));
@@ -41,7 +41,7 @@ public void ProcessParameters_ParsesJsonParametersWithoutPrefixSuccessfully()
4141
Value = "{\"level1Key\" : {\"level2key\" : \"level2value\"}}"
4242
}
4343
};
44-
var result = _processor.ProcessParameters(parameters, "");
44+
var result = _parameterProcessor.ProcessParameters(parameters, "");
4545

4646
Assert.Equal(2, result.Count);
4747
Assert.True(result.ContainsKey("test:level1:level2:level1Key"));
@@ -58,7 +58,7 @@ public void ProcessParameters_FallsBackOnString()
5858
{
5959
new Parameter() { Name = "/test/stringParam", Type = ParameterType.String, Value = "some string" }
6060
};
61-
var result = _processor.ProcessParameters(parameters, "/test");
61+
var result = _parameterProcessor.ProcessParameters(parameters, "/test");
6262

6363
Assert.Equal(1, result.Count);
6464
Assert.True(result.ContainsKey("stringParam"));
@@ -73,7 +73,7 @@ public void ProcessParameters_ThrowsOnDuplicateParameter()
7373
new Parameter() { Name = "/test/Duplicate", Type = ParameterType.String, Value = "value1" },
7474
new Parameter() { Name = "/test/duplicate", Type = ParameterType.String, Value = "value2" }
7575
};
76-
var duplicateParameterException = Assert.Throws<DuplicateParameterException>(() => _processor.ProcessParameters(parameters, "/test"));
76+
var duplicateParameterException = Assert.Throws<DuplicateParameterException>(() => _parameterProcessor.ProcessParameters(parameters, "/test"));
7777
Assert.Equal("Duplicate parameter 'duplicate' found. Parameter keys are case-insensitive.", duplicateParameterException.Message);
7878
}
7979

@@ -86,7 +86,7 @@ public void ProcessParameters_ThrowsOnDuplicateParameterAtMultiLevel()
8686
new Parameter() { Name = "/test/level1/level1key", Type = ParameterType.String, Value = "level1valueOverriden" },
8787
};
8888

89-
var duplicateParameterException = Assert.Throws<DuplicateParameterException>(() => _processor.ProcessParameters(parameters, "/test"));
89+
var duplicateParameterException = Assert.Throws<DuplicateParameterException>(() => _parameterProcessor.ProcessParameters(parameters, "/test"));
9090
Assert.Equal("Duplicate parameter 'level1:level1key' found. Parameter keys are case-insensitive.", duplicateParameterException.Message);
9191
}
9292

@@ -99,7 +99,7 @@ public void ProcessParameters_ThrowsOnDuplicateParameterAtMultilevelForJsonArray
9999
new Parameter() { Name = "/test/level1/Level1key", Type = ParameterType.StringList, Value = "level1valueOverriden" },
100100
};
101101

102-
var duplicateParameterException = Assert.Throws<DuplicateParameterException>(() => _processor.ProcessParameters(parameters, "/test"));
102+
var duplicateParameterException = Assert.Throws<DuplicateParameterException>(() => _parameterProcessor.ProcessParameters(parameters, "/test"));
103103
Assert.Equal("Duplicate parameter 'level1:Level1key:0' found. Parameter keys are case-insensitive.", duplicateParameterException.Message);
104104
}
105105

@@ -111,7 +111,7 @@ public void ProcessParameters_ProcessesStringListParameters()
111111
{
112112
new Parameter() { Name = "/test/stringList", Type = ParameterType.StringList, Value = "value1,value2" }
113113
};
114-
var result = _processor.ProcessParameters(parameters, "/test");
114+
var result = _parameterProcessor.ProcessParameters(parameters, "/test");
115115

116116
Assert.Equal(2, result.Count);
117117
Assert.True(result.ContainsKey("stringList:0"));

test/Amazon.Extensions.Configuration.SystemsManager.Tests/JsonParameterProcessorTests.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,7 @@ namespace Amazon.Extensions.Configuration.SystemsManager.Tests
77
{
88
public class JsonParameterProcessorTests
99
{
10-
private readonly IParameterProcessor _parameterProcessor;
11-
12-
public JsonParameterProcessorTests()
13-
{
14-
_parameterProcessor = new JsonParameterProcessor();
15-
}
10+
private readonly IParameterProcessor _parameterProcessor = new JsonParameterProcessor();
1611

1712
[Fact]
1813
public void ProcessParametersTest()

0 commit comments

Comments
 (0)