Skip to content

Commit 7fdaf25

Browse files
committed
should clone settings data
1 parent 1205835 commit 7fdaf25

File tree

5 files changed

+45
-12
lines changed

5 files changed

+45
-12
lines changed

docs/named-tuples.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ static (bool Member1, string Member2, string Member3) MethodWithNamedTuple()
2121
return (true, "A", "B");
2222
}
2323
```
24-
<sup><a href='/src/Verify.Tests/Tests.cs#L304-L311' title='File snippet `methodwithnamedtuple` was extracted from'>snippet source</a> | <a href='#snippet-methodwithnamedtuple' title='Navigate to start of snippet `methodwithnamedtuple`'>anchor</a></sup>
24+
<sup><a href='/src/Verify.Tests/Tests.cs#L306-L313' title='File snippet `methodwithnamedtuple` was extracted from'>snippet source</a> | <a href='#snippet-methodwithnamedtuple' title='Navigate to start of snippet `methodwithnamedtuple`'>anchor</a></sup>
2525
<!-- endsnippet -->
2626

2727
Can be verified:
@@ -31,7 +31,7 @@ Can be verified:
3131
```cs
3232
await Verify(() => MethodWithNamedTuple());
3333
```
34-
<sup><a href='/src/Verify.Tests/Tests.cs#L297-L301' title='File snippet `verifytuple` was extracted from'>snippet source</a> | <a href='#snippet-verifytuple' title='Navigate to start of snippet `verifytuple`'>anchor</a></sup>
34+
<sup><a href='/src/Verify.Tests/Tests.cs#L299-L303' title='File snippet `verifytuple` was extracted from'>snippet source</a> | <a href='#snippet-verifytuple' title='Navigate to start of snippet `verifytuple`'>anchor</a></sup>
3535
<!-- endsnippet -->
3636

3737
Resulting in:

docs/serializer-settings.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ var target = new GuidTarget
9494

9595
await Verify(target);
9696
```
97-
<sup><a href='/src/Verify.Tests/Tests.cs#L261-L274' title='File snippet `guid` was extracted from'>snippet source</a> | <a href='#snippet-guid' title='Navigate to start of snippet `guid`'>anchor</a></sup>
97+
<sup><a href='/src/Verify.Tests/Tests.cs#L263-L276' title='File snippet `guid` was extracted from'>snippet source</a> | <a href='#snippet-guid' title='Navigate to start of snippet `guid`'>anchor</a></sup>
9898
<!-- endsnippet -->
9999

100100
Results in the following:
@@ -144,7 +144,7 @@ var target = new DateTimeTarget
144144

145145
await Verify(target);
146146
```
147-
<sup><a href='/src/Verify.Tests/Tests.cs#L768-L784' title='File snippet `date` was extracted from'>snippet source</a> | <a href='#snippet-date' title='Navigate to start of snippet `date`'>anchor</a></sup>
147+
<sup><a href='/src/Verify.Tests/Tests.cs#L770-L786' title='File snippet `date` was extracted from'>snippet source</a> | <a href='#snippet-date' title='Navigate to start of snippet `date`'>anchor</a></sup>
148148
<!-- endsnippet -->
149149

150150
Results in the following:
@@ -300,7 +300,7 @@ var target = new IgnoreTypeTarget
300300
};
301301
await Verify(target, settings);
302302
```
303-
<sup><a href='/src/Verify.Tests/Tests.cs#L364-L381' title='File snippet `addignoretype` was extracted from'>snippet source</a> | <a href='#snippet-addignoretype' title='Navigate to start of snippet `addignoretype`'>anchor</a></sup>
303+
<sup><a href='/src/Verify.Tests/Tests.cs#L366-L383' title='File snippet `addignoretype` was extracted from'>snippet source</a> | <a href='#snippet-addignoretype' title='Navigate to start of snippet `addignoretype`'>anchor</a></sup>
304304
<!-- endsnippet -->
305305

306306
Result:
@@ -342,7 +342,7 @@ var target = new IgnoreInstanceTarget
342342
};
343343
await Verify(target, settings);
344344
```
345-
<sup><a href='/src/Verify.Tests/Tests.cs#L329-L347' title='File snippet `addignoreinstance` was extracted from'>snippet source</a> | <a href='#snippet-addignoreinstance' title='Navigate to start of snippet `addignoreinstance`'>anchor</a></sup>
345+
<sup><a href='/src/Verify.Tests/Tests.cs#L331-L349' title='File snippet `addignoreinstance` was extracted from'>snippet source</a> | <a href='#snippet-addignoreinstance' title='Navigate to start of snippet `addignoreinstance`'>anchor</a></sup>
346346
<!-- endsnippet -->
347347

348348
Result:
@@ -384,7 +384,7 @@ var target = new IgnoreExplicitTarget
384384
};
385385
await Verify(target, settings);
386386
```
387-
<sup><a href='/src/Verify.Tests/Tests.cs#L403-L421' title='File snippet `ignorememberbyexpression` was extracted from'>snippet source</a> | <a href='#snippet-ignorememberbyexpression' title='Navigate to start of snippet `ignorememberbyexpression`'>anchor</a></sup>
387+
<sup><a href='/src/Verify.Tests/Tests.cs#L405-L423' title='File snippet `ignorememberbyexpression` was extracted from'>snippet source</a> | <a href='#snippet-ignorememberbyexpression' title='Navigate to start of snippet `ignorememberbyexpression`'>anchor</a></sup>
388388
<!-- endsnippet -->
389389

390390
Result:
@@ -425,7 +425,7 @@ var target = new IgnoreExplicitTarget
425425
};
426426
await Verify(target, settings);
427427
```
428-
<sup><a href='/src/Verify.Tests/Tests.cs#L427-L446' title='File snippet `ignorememberbyname` was extracted from'>snippet source</a> | <a href='#snippet-ignorememberbyname' title='Navigate to start of snippet `ignorememberbyname`'>anchor</a></sup>
428+
<sup><a href='/src/Verify.Tests/Tests.cs#L429-L448' title='File snippet `ignorememberbyname` was extracted from'>snippet source</a> | <a href='#snippet-ignorememberbyname' title='Navigate to start of snippet `ignorememberbyname`'>anchor</a></sup>
429429
<!-- endsnippet -->
430430

431431
Result:
@@ -460,7 +460,7 @@ settings.ModifySerialization(_ => _.IgnoreMembersThatThrow<CustomException>());
460460
var target = new WithCustomException();
461461
await Verify(target, settings);
462462
```
463-
<sup><a href='/src/Verify.Tests/Tests.cs#L473-L480' title='File snippet `ignoremembersthatthrow` was extracted from'>snippet source</a> | <a href='#snippet-ignoremembersthatthrow' title='Navigate to start of snippet `ignoremembersthatthrow`'>anchor</a></sup>
463+
<sup><a href='/src/Verify.Tests/Tests.cs#L475-L482' title='File snippet `ignoremembersthatthrow` was extracted from'>snippet source</a> | <a href='#snippet-ignoremembersthatthrow' title='Navigate to start of snippet `ignoremembersthatthrow`'>anchor</a></sup>
464464
<!-- endsnippet -->
465465

466466
Result:
@@ -485,7 +485,7 @@ settings.ModifySerialization(
485485
var target = new WithExceptionIgnoreMessage();
486486
await Verify(target, settings);
487487
```
488-
<sup><a href='/src/Verify.Tests/Tests.cs#L537-L545' title='File snippet `ignoremembersthatthrowexpression` was extracted from'>snippet source</a> | <a href='#snippet-ignoremembersthatthrowexpression' title='Navigate to start of snippet `ignoremembersthatthrowexpression`'>anchor</a></sup>
488+
<sup><a href='/src/Verify.Tests/Tests.cs#L539-L547' title='File snippet `ignoremembersthatthrowexpression` was extracted from'>snippet source</a> | <a href='#snippet-ignoremembersthatthrowexpression' title='Navigate to start of snippet `ignoremembersthatthrowexpression`'>anchor</a></sup>
489489
<!-- endsnippet -->
490490

491491
Result:

src/Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<Project>
33
<PropertyGroup>
44
<NoWarn>CS1591;CS0649</NoWarn>
5-
<Version>1.11.0</Version>
5+
<Version>1.11.1</Version>
66
<PackageTags>Json, Testing, Verify</PackageTags>
77
<Description>Enables simple verification of complex models and documents.</Description>
88
</PropertyGroup>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using System;
2+
using System.Linq;
3+
using System.Threading.Tasks;
4+
using Verify;
5+
using VerifyXunit;
6+
using Xunit;
7+
using Xunit.Abstractions;
8+
9+
public class VerifySettingsTests :
10+
VerifyBase
11+
{
12+
[Fact]
13+
public void DataIsCloned()
14+
{
15+
var originalSettings = new VerifySettings();
16+
originalSettings.Data.Add("clonable", new MyClonable());
17+
var newSettings = new VerifySettings(originalSettings);
18+
Assert.NotSame(originalSettings.Data.Single().Value, newSettings.Data.Single().Value);
19+
}
20+
21+
public VerifySettingsTests(ITestOutputHelper output) :
22+
base(output)
23+
{
24+
}
25+
26+
public class MyClonable : ICloneable
27+
{
28+
public object Clone()
29+
{
30+
return new MyClonable();
31+
}
32+
}
33+
}

src/Verify/VerifySettings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public VerifySettings(VerifySettings? settingsToClone)
2424
{
2525
if (pair.Value is ICloneable cloneable)
2626
{
27-
Data.Add(pair.Key, cloneable);
27+
Data.Add(pair.Key, cloneable.Clone());
2828
}
2929
else
3030
{

0 commit comments

Comments
 (0)