1+ using Api . Framework . Exceptions ;
2+ using Api . Framework . Helper ;
3+
4+ namespace Api . Framework . Tests ;
5+
6+ [ TestFixture ]
7+ public class CustomExceptionTests
8+ {
9+ [ Test ]
10+ public void CustomException_WithMessage_SetsCorrectExceptionMessage ( )
11+ {
12+ // Arrange
13+ const string expectedMessage = "Test error message" ;
14+
15+ // Act
16+ var exception = new CustomException < object > ( expectedMessage ) ;
17+
18+ // Assert
19+ Assert . That ( exception . Message , Is . EqualTo ( expectedMessage ) ) ;
20+ }
21+
22+ [ Test ]
23+ public void CustomException_WithNullMessage_UsesDefaultMessage ( )
24+ {
25+ // Arrange & Act
26+ var exception = new CustomException < object > ( ) ;
27+
28+ // Assert
29+ Assert . That ( exception . Message , Is . EqualTo ( "A custom exception happened" ) ) ;
30+ }
31+
32+ [ Test ]
33+ public void CustomException_WithInnerExceptionButNoMessage_UsesInnerExceptionMessage ( )
34+ {
35+ // Arrange
36+ const string innerMessage = "Inner exception message" ;
37+ var innerException = new InvalidOperationException ( innerMessage ) ;
38+
39+ // Act
40+ var exception = new CustomException < object > ( null , innerException ) ;
41+
42+ // Assert
43+ Assert . That ( exception . Message , Is . EqualTo ( innerMessage ) ) ;
44+ Assert . That ( exception . InnerException , Is . EqualTo ( innerException ) ) ;
45+ }
46+
47+ [ Test ]
48+ public void CustomExceptionHelper_New_CreatesExceptionWithCorrectMessage ( )
49+ {
50+ // Arrange
51+ const string errorMessage = "Note with id {0} not found" ;
52+ const long noteId = 123L ;
53+ const string expectedMessage = "Note with id 123 not found" ;
54+
55+ // Act
56+ var exception = CustomExceptionHelper . New ( "test data" , errorMessage , noteId ) ;
57+
58+ // Assert
59+ Assert . That ( exception . Message , Is . EqualTo ( expectedMessage ) ) ;
60+ Assert . That ( exception . CustomData ? . Message , Is . EqualTo ( expectedMessage ) ) ;
61+ }
62+
63+ [ Test ]
64+ public void CustomExceptionHelper_NewWithErrorCode_CreatesExceptionWithCorrectMessage ( )
65+ {
66+ // Arrange
67+ const string errorMessage = "User {0} has {1} notes" ;
68+ const int errorCode = 100 ;
69+ const string userName = "testuser" ;
70+ const int noteCount = 5 ;
71+ const string expectedMessage = "User testuser has 5 notes" ;
72+
73+ // Act
74+ var exception = CustomExceptionHelper . New ( "test data" , errorCode , errorMessage , userName , noteCount ) ;
75+
76+ // Assert
77+ Assert . That ( exception . Message , Is . EqualTo ( expectedMessage ) ) ;
78+ Assert . That ( exception . CustomData ? . Message , Is . EqualTo ( expectedMessage ) ) ;
79+ Assert . That ( exception . CustomData ? . ErrorCode , Is . EqualTo ( errorCode ) ) ;
80+ }
81+ }
0 commit comments