Skip to content

Commit 5958e03

Browse files
committed
Added test case for replacing the elements of an array
1 parent 095c4d6 commit 5958e03

2 files changed

Lines changed: 48 additions & 0 deletions

File tree

source/Calamari.Tests/Fixtures/JsonVariables/JsonConfigurationVariableReplacerFixture.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,36 @@ public void ShouldReplaceElementInArray()
233233
var replaced = Replace(variables, existingFile: "appsettings.array.json");
234234
AssertJsonEquivalent(replaced, expected);
235235
}
236+
237+
[Test]
238+
public void ShouldReplacePropertyOfAnElementInArray()
239+
{
240+
const string expected =
241+
"{" +
242+
" \"MyMessage\": \"Hello world\"," +
243+
" \"EmailSettings\": {" +
244+
" \"SmtpPort\": 23," +
245+
" \"UseProxy\": false," +
246+
" \"SmtpHost\": \"localhost\"," +
247+
" \"DefaultRecipients\": [" +
248+
" { " +
249+
" \"Email\":\"paul@octopus.com\"," +
250+
" \"Name\": \"Paul\"" +
251+
" }," +
252+
" { " +
253+
" \"Email\":\"henrik@octopus.com\"," +
254+
" \"Name\": \"Mike\"" +
255+
" }" +
256+
" ]" +
257+
" }" +
258+
"}";
259+
260+
var variables = new VariableDictionary();
261+
variables.Set("EmailSettings:DefaultRecipients:1:Email", "henrik@octopus.com");
262+
263+
var replaced = Replace(variables, existingFile: "appsettings.object-array.json");
264+
AssertJsonEquivalent(replaced, expected);
265+
}
236266

237267
[Test]
238268
public void ShouldReplaceEntireArray()
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"MyMessage": "Hello world",
3+
"EmailSettings": {
4+
"SmtpPort": 23,
5+
"UseProxy": false,
6+
"SmtpHost": "localhost",
7+
"DefaultRecipients": [
8+
{
9+
"Email": "paul@octopus.com",
10+
"Name": "Paul"
11+
},
12+
{
13+
"Email": "mike@octopus.com",
14+
"Name": "Mike"
15+
}
16+
]
17+
}
18+
}

0 commit comments

Comments
 (0)