@@ -133,5 +133,74 @@ public static void OperationException_InnerExceptionIsOperationError()
133133 Assert . Equal ( "err.2" , innerError . Code ) ;
134134 Assert . Equal ( "biz" , innerError . Domain ) ;
135135 }
136- }
136+
137+ [ Fact ]
138+ public static void ValidationError_WithNullCode ( )
139+ {
140+ Assert . Throws < ArgumentNullException > ( ( ) => new OperationValidationError ( null , "biz" , Array . Empty < ValidationResult > ( ) ) ) ;
141+ }
142+
143+ [ Fact ]
144+ public static void ValidationError_WithNullDomain ( )
145+ {
146+ Assert . Throws < ArgumentNullException > ( ( ) => new OperationValidationError ( "err.1" , null , Array . Empty < ValidationResult > ( ) ) ) ;
147+ }
148+
149+ [ Fact ]
150+ public static void ValidationError_WithNullResults ( )
151+ {
152+ Assert . Throws < ArgumentNullException > ( ( ) => new OperationValidationError ( "err.1" , "biz" , null ) ) ;
153+ }
154+
155+ [ Fact ]
156+ public static void ValidationError_WithResults_GetMemberErrors ( )
157+ {
158+ var results = new [ ] {
159+ new ValidationResult ( "First error of the validation" , new [ ] { "Member1" } ) ,
160+ new ValidationResult ( "Second error of the validation" , new [ ] { "Member2" } )
161+ } ;
162+
163+ var error = new OperationValidationError ( "err.1" , "biz" , results ) ;
164+ var memberErrors = error . GetMemberErrors ( ) ;
165+ Assert . NotNull ( memberErrors ) ;
166+ Assert . Equal ( 2 , memberErrors . Count ) ;
167+ Assert . True ( memberErrors . TryGetValue ( "Member1" , out var member1Errors ) ) ;
168+ Assert . NotNull ( member1Errors ) ;
169+ Assert . Equal ( 1 , member1Errors . Length ) ;
170+ Assert . Equal ( "First error of the validation" , member1Errors [ 0 ] ) ;
171+ Assert . True ( memberErrors . TryGetValue ( "Member2" , out var member2Errors ) ) ;
172+ Assert . NotNull ( member2Errors ) ;
173+ Assert . Equal ( 1 , member2Errors . Length ) ;
174+ Assert . Equal ( "Second error of the validation" , member2Errors [ 0 ] ) ;
175+ }
176+
177+ [ Fact ]
178+ public static void ValidationError_WithResults_GetMemberErrors_Empty ( )
179+ {
180+ var error = new OperationValidationError ( "err.1" , "biz" , Array . Empty < ValidationResult > ( ) ) ;
181+ var memberErrors = error . GetMemberErrors ( ) ;
182+ Assert . NotNull ( memberErrors ) ;
183+ Assert . Empty ( memberErrors ) ;
184+ }
185+
186+ [ Fact ]
187+ public static void ValidationError_WithResultsForSameMember ( )
188+ {
189+ var results = new [ ] {
190+ new ValidationResult ( "First error of the validation" , new [ ] { "Member" } ) ,
191+ new ValidationResult ( "Second error of the validation" , new [ ] { "Member" } )
192+ } ;
193+
194+ var error = new OperationValidationError ( "err.1" , "biz" , results ) ;
195+ var memberErrors = error . GetMemberErrors ( ) ;
196+
197+ Assert . NotNull ( memberErrors ) ;
198+ Assert . Single ( memberErrors ) ;
199+ Assert . True ( memberErrors . TryGetValue ( "Member" , out var memberErrorsList ) ) ;
200+ Assert . NotNull ( memberErrorsList ) ;
201+ Assert . Equal ( 2 , memberErrorsList . Length ) ;
202+ Assert . Equal ( "First error of the validation" , memberErrorsList [ 0 ] ) ;
203+ Assert . Equal ( "Second error of the validation" , memberErrorsList [ 1 ] ) ;
204+ }
205+ }
137206}
0 commit comments