Skip to content

Commit 76b8f09

Browse files
committed
.
1 parent 97e5511 commit 76b8f09

File tree

2 files changed

+37
-41
lines changed

2 files changed

+37
-41
lines changed

src/Verify/Target.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public StringBuilder StringBuilderData
3838
}
3939
public bool IsStream => streamData is not null;
4040
public bool IsString => stringBuilderData is not null || objectData is not null;
41-
public bool IsObject => objectData is not null;
41+
public bool IsObject { get; }
4242

4343
internal bool TryGetStringBuilder([NotNullWhen(true)] out StringBuilder? value)
4444
{
@@ -100,7 +100,7 @@ public Target(string extension, StringBuilder data, string? name = null)
100100
stringBuilderData = data;
101101
}
102102

103-
public Target(object data, string extension, string? name = null)
103+
public Target(object? data, string extension, string? name = null)
104104
{
105105
Extension = extension;
106106
Name = FileNameCleaner.SanitizeFilePath(name);

src/Verify/Verifier/InnerVerifier_Inner.cs

Lines changed: 35 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,10 @@ async Task<VerifyResult> VerifyInner(object? root, Func<Task>? cleanup, IEnumera
3535
async Task<(Func<Task> cleanup, List<StringOrStream> stringOrStreams)> ProcessTargets(object? root, Func<Task>? cleanup, IEnumerable<Target> targets, bool doExtensionConversion, bool ignoreNullRoot)
3636
{
3737
var resultTargets = new List<Target>();
38-
if (TryGetRootTarget(root, ignoreNullRoot, out var rootTarget))
38+
if (ignoreNullRoot && root == null)
3939
{
40-
resultTargets.Add(rootTarget.Value);
40+
targets = [new((object?)null, settings.TxtOrJson, null), ..targets];
4141
}
42-
4342
cleanup ??= () => Task.CompletedTask;
4443

4544
List<Target> list = [..targets, ..VerifierSettings.GetFileAppenders(settings)];
@@ -76,6 +75,39 @@ async Task<VerifyResult> VerifyInner(object? root, Func<Task>? cleanup, IEnumera
7675

7776
resultTargets.AddRange(list);
7877

78+
var appends = VerifierSettings.GetJsonAppenders(settings);
79+
var hasAppends = appends.Count > 0;
80+
if (hasAppends)
81+
{
82+
var resultTarget = resultTargets[0];
83+
if (resultTarget.IsStream)
84+
{
85+
var target = new Target(new InfoBuilder(ignoreNullRoot, null, appends), settings.TxtOrJson);
86+
resultTargets.Insert(0, target);
87+
}
88+
else if (resultTarget.IsString)
89+
{
90+
var stringData = resultTarget.stringBuilderData!;
91+
string stringRoot;
92+
if (stringData.Length == 0)
93+
{
94+
stringRoot = "emptyString";
95+
}
96+
else
97+
{
98+
stringRoot = stringData.ToString();
99+
}
100+
101+
var target = new Target(new InfoBuilder(false, stringRoot, appends), settings.TxtOrJson);
102+
resultTargets.Insert(0, target);
103+
}
104+
else
105+
{
106+
var target = new Target(new InfoBuilder(ignoreNullRoot, resultTarget.objectData!, appends), settings.TxtOrJson);
107+
resultTargets.Insert(0, target);
108+
}
109+
}
110+
79111
foreach (var target in resultTargets)
80112
{
81113
if (target.TryGetStringBuilder(out var builder))
@@ -108,40 +140,4 @@ async Task<VerifyResult> VerifyInner(object? root, Func<Task>? cleanup, IEnumera
108140
.ToList();
109141
return (cleanup, stringOrStreams);
110142
}
111-
112-
bool TryGetRootTarget(object? root, bool ignoreNullRoot, [NotNullWhen(true)] out Target? target)
113-
{
114-
var appends = VerifierSettings.GetJsonAppenders(settings);
115-
116-
var hasAppends = appends.Count > 0;
117-
118-
if (ignoreNullRoot && root == null && !hasAppends)
119-
{
120-
target = null;
121-
return false;
122-
}
123-
124-
if (root is string stringRoot)
125-
{
126-
stringRoot = stringRoot.TrimPreamble();
127-
if (stringRoot.Length == 0)
128-
{
129-
stringRoot = "emptyString";
130-
}
131-
132-
if (hasAppends)
133-
{
134-
target = new(new InfoBuilder(false, stringRoot, appends), settings.TxtOrJson);
135-
}
136-
else
137-
{
138-
target = new("txt", new StringBuilder(stringRoot));
139-
}
140-
141-
return true;
142-
}
143-
144-
target = new(new InfoBuilder(ignoreNullRoot, root, appends), settings.TxtOrJson);
145-
return true;
146-
}
147143
}

0 commit comments

Comments
 (0)