| Conditions | 2 | 
| Total Lines | 23 | 
| Code Lines | 17 | 
| Lines | 0 | 
| Ratio | 0 % | 
| Changes | 0 | ||
| 1 | package validation_test  | 
            ||
| 17 | func ExampleValidator_Validate_structValidationWithConditionalConstraint() { | 
            ||
| 18 | 	file := File{ | 
            ||
| 19 | IsDocument: true,  | 
            ||
| 20 | Name: "file name",  | 
            ||
| 21 | }  | 
            ||
| 22 | |||
| 23 | err := validator.Validate(  | 
            ||
| 24 | validation.StringProperty(  | 
            ||
| 25 | "name",  | 
            ||
| 26 | &file.Name,  | 
            ||
| 27 | it.IsNotBlank(),  | 
            ||
| 28 | ),  | 
            ||
| 29 | validation.StringProperty(  | 
            ||
| 30 | "documentName",  | 
            ||
| 31 | &file.DocumentName,  | 
            ||
| 32 | validation.When(file.IsDocument).  | 
            ||
| 33 | Then(it.IsNotBlank()),  | 
            ||
| 34 | ),  | 
            ||
| 35 | )  | 
            ||
| 36 | |||
| 37 | violations := err.(validation.ViolationList)  | 
            ||
| 38 | 	for _, violation := range violations { | 
            ||
| 39 | fmt.Println(violation.Error())  | 
            ||
| 40 | }  | 
            ||
| 44 |