Skip to content

Commit adfe30b

Browse files
committed
test: Updated tests
1 parent e67af26 commit adfe30b

File tree

3 files changed

+426
-243
lines changed

3 files changed

+426
-243
lines changed

src/NetEvolve.CodeBuilder/CSharpCodeBuilder.Documentation.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -258,34 +258,34 @@ public CSharpCodeBuilder AppendXmlDocExample(IEnumerable<string>? exampleLines)
258258
/// Appends an XML documentation see element for cross-references.
259259
/// </summary>
260260
/// <param name="cref">The cross-reference to another member or type.</param>
261-
/// <param name="isHRef">If set to <c>true</c>, uses 'href' instead of 'cref' for external links.</param>
261+
/// <param name="isHref">If set to <c>true</c>, uses 'href' instead of 'cref' for external links.</param>
262262
/// <returns>The current <see cref="CSharpCodeBuilder"/> instance to allow for method chaining.</returns>
263263
/// <remarks>If the cref is null or empty, the method returns without appending anything.</remarks>
264-
public CSharpCodeBuilder AppendXmlDocSee(string? cref, bool isHRef = false)
264+
public CSharpCodeBuilder AppendXmlDocSee(string? cref, bool isHref = false)
265265
{
266266
if (string.IsNullOrEmpty(cref))
267267
{
268268
return this;
269269
}
270270

271-
return EnsureNewLineForXmlDoc().AppendLine($"/// <see {(isHRef ? "href" : "cref")}=\"{cref}\"/>");
271+
return EnsureNewLineForXmlDoc().AppendLine($"/// <see {(isHref ? "href" : "cref")}=\"{cref}\"/>");
272272
}
273273

274274
/// <summary>
275275
/// Appends an XML documentation seealso element for see-also references.
276276
/// </summary>
277277
/// <param name="cref">The cross-reference to another member or type.</param>
278-
/// <param name="isHRef">If set to <c>true</c>, uses 'href' instead of 'cref' for external links.</param>
278+
/// <param name="isHref">If set to <c>true</c>, uses 'href' instead of 'cref' for external links.</param>
279279
/// <returns>The current <see cref="CSharpCodeBuilder"/> instance to allow for method chaining.</returns>
280280
/// <remarks>If the cref is null or empty, the method returns without appending anything.</remarks>
281-
public CSharpCodeBuilder AppendXmlDocSeeAlso(string? cref, bool isHRef = false)
281+
public CSharpCodeBuilder AppendXmlDocSeeAlso(string? cref, bool isHref = false)
282282
{
283283
if (string.IsNullOrEmpty(cref))
284284
{
285285
return this;
286286
}
287287

288-
return EnsureNewLineForXmlDoc().AppendLine($"/// <seealso {(isHRef ? "href" : "cref")}=\"{cref}\"/>");
288+
return EnsureNewLineForXmlDoc().AppendLine($"/// <seealso {(isHref ? "href" : "cref")}=\"{cref}\"/>");
289289
}
290290

291291
/// <summary>

tests/NetEvolve.CodeBuilder.Tests.Unit/CSharpCodeBuilderTests.Append.cs

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,4 +244,184 @@ public async Task Append_With_Capacity_Expansion_Should_Work_Correctly()
244244

245245
_ = await Assert.That(builder.ToString()).IsEqualTo(longString);
246246
}
247+
248+
// New tests for missing branches in String Append method
249+
250+
[Test]
251+
public async Task Append_String_NullChar_Should_Not_Change_Builder()
252+
{
253+
var builder = new CSharpCodeBuilder();
254+
255+
_ = builder.Append("\0");
256+
257+
_ = await Assert.That(builder.ToString()).IsEqualTo(string.Empty);
258+
}
259+
260+
[Test]
261+
public async Task Append_String_NewLine_Should_Append_Line_Break()
262+
{
263+
var builder = new CSharpCodeBuilder();
264+
265+
_ = builder.Append("\n");
266+
267+
_ = await Assert.That(builder.ToString()).IsEqualTo(Environment.NewLine);
268+
}
269+
270+
[Test]
271+
public async Task Append_String_CarriageReturn_Should_Append_Line_Break()
272+
{
273+
var builder = new CSharpCodeBuilder();
274+
275+
_ = builder.Append("\r");
276+
277+
_ = await Assert.That(builder.ToString()).IsEqualTo(Environment.NewLine);
278+
}
279+
280+
[Test]
281+
public async Task Append_String_CRLF_Should_Append_Line_Break()
282+
{
283+
var builder = new CSharpCodeBuilder();
284+
285+
_ = builder.Append("\r\n");
286+
287+
_ = await Assert.That(builder.ToString()).IsEqualTo(Environment.NewLine);
288+
}
289+
290+
[Test]
291+
public async Task Append_String_OpeningBrace_Should_Increment_Indent_And_Append_Line()
292+
{
293+
var builder = new CSharpCodeBuilder();
294+
295+
_ = builder.Append("{");
296+
297+
_ = await Assert.That(builder.ToString()).IsEqualTo("{" + Environment.NewLine);
298+
299+
// Verify indent increased for next content
300+
_ = builder.Append("test");
301+
302+
_ = await Assert.That(builder.ToString()).IsEqualTo("{" + Environment.NewLine + " test");
303+
}
304+
305+
[Test]
306+
public async Task Append_String_OpeningBracket_Should_Increment_Indent_And_Append_Line()
307+
{
308+
var builder = new CSharpCodeBuilder();
309+
310+
_ = builder.Append("[");
311+
312+
_ = await Assert.That(builder.ToString()).IsEqualTo("[" + Environment.NewLine);
313+
314+
// Verify indent increased for next content
315+
_ = builder.Append("test");
316+
317+
_ = await Assert.That(builder.ToString()).IsEqualTo("[" + Environment.NewLine + " test");
318+
}
319+
320+
[Test]
321+
public async Task Append_String_ClosingBrace_Should_Decrement_Indent_And_Append_Line()
322+
{
323+
var builder = new CSharpCodeBuilder();
324+
325+
// First set indentation to 1
326+
_ = builder.Append("{").Append("test");
327+
328+
// Test closing brace
329+
_ = builder.Append("}");
330+
331+
_ = await Assert
332+
.That(builder.ToString())
333+
.IsEqualTo("{" + Environment.NewLine + " test" + Environment.NewLine + "}");
334+
335+
// Verify indent is decremented for next content
336+
_ = builder.Append("after");
337+
338+
_ = await Assert
339+
.That(builder.ToString())
340+
.IsEqualTo("{" + Environment.NewLine + " test" + Environment.NewLine + "}" + "after");
341+
}
342+
343+
[Test]
344+
public async Task Append_String_ClosingBracket_Should_Decrement_Indent_And_Append_Line()
345+
{
346+
var builder = new CSharpCodeBuilder();
347+
348+
// First set indentation to 1
349+
_ = builder.Append("[").Append("test");
350+
351+
// Test closing bracket
352+
_ = builder.Append("]");
353+
354+
_ = await Assert
355+
.That(builder.ToString())
356+
.IsEqualTo("[" + Environment.NewLine + " test" + Environment.NewLine + "]");
357+
358+
// Verify indent is decremented for next content
359+
_ = builder.Append("after");
360+
361+
_ = await Assert
362+
.That(builder.ToString())
363+
.IsEqualTo("[" + Environment.NewLine + " test" + Environment.NewLine + "]" + "after");
364+
}
365+
366+
// New tests for missing branches in Char Append method
367+
368+
[Test]
369+
public async Task Append_Char_NullChar_Should_Not_Change_Builder()
370+
{
371+
var builder = new CSharpCodeBuilder();
372+
373+
_ = builder.Append('\0');
374+
375+
_ = await Assert.That(builder.ToString()).IsEqualTo(string.Empty);
376+
}
377+
378+
[Test]
379+
public async Task Append_Char_NewLine_Should_Append_Line_Break()
380+
{
381+
var builder = new CSharpCodeBuilder();
382+
383+
_ = builder.Append('\n');
384+
385+
_ = await Assert.That(builder.ToString()).IsEqualTo(Environment.NewLine);
386+
}
387+
388+
[Test]
389+
public async Task Append_Char_CarriageReturn_Should_Append_Line_Break()
390+
{
391+
var builder = new CSharpCodeBuilder();
392+
393+
_ = builder.Append('\r');
394+
395+
_ = await Assert.That(builder.ToString()).IsEqualTo(Environment.NewLine);
396+
}
397+
398+
[Test]
399+
public async Task Append_Char_OpeningBrace_Should_Increment_Indent_And_Append_Line()
400+
{
401+
var builder = new CSharpCodeBuilder();
402+
403+
_ = builder.Append('{');
404+
405+
_ = await Assert.That(builder.ToString()).IsEqualTo("{" + Environment.NewLine);
406+
407+
// Verify indent increased for next content
408+
_ = builder.Append("test");
409+
410+
_ = await Assert.That(builder.ToString()).IsEqualTo("{" + Environment.NewLine + " test");
411+
}
412+
413+
[Test]
414+
public async Task Append_Char_OpeningBracket_Should_Increment_Indent_And_Append_Line()
415+
{
416+
var builder = new CSharpCodeBuilder();
417+
418+
_ = builder.Append('[');
419+
420+
_ = await Assert.That(builder.ToString()).IsEqualTo("[" + Environment.NewLine);
421+
422+
// Verify indent increased for next content
423+
_ = builder.Append("test");
424+
425+
_ = await Assert.That(builder.ToString()).IsEqualTo("[" + Environment.NewLine + " test");
426+
}
247427
}

0 commit comments

Comments
 (0)