@@ -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