@@ -25,21 +25,21 @@ public static void ValidateRequirements(INukeBuild build, IReadOnlyCollection<Ex
25
25
if ( requirement is Expression < Func < bool > > boolExpression )
26
26
// TODO: same as HasSkippingCondition.GetSkipReason
27
27
Assert . True ( boolExpression . Compile ( ) . Invoke ( ) , $ "Target '{ target . Name } ' requires '{ requirement . Body } '") ;
28
- else if ( IsMemberNull ( requirement . GetMemberInfo ( ) , build , target ) )
29
- Assert . Fail ( $ "Target '{ target . Name } ' requires member '{ GetMemberName ( requirement . GetMemberInfo ( ) ) } ' to be not null") ;
28
+ else if ( IsMemberNullOrEmpty ( requirement . GetMemberInfo ( ) , build , target ) )
29
+ Assert . Fail ( $ "Target '{ target . Name } ' requires member '{ GetMemberName ( requirement . GetMemberInfo ( ) ) } ' to be not null or empty ") ;
30
30
}
31
31
32
32
var requiredMembers = ValueInjectionUtility . GetInjectionMembers ( build . GetType ( ) )
33
33
. Select ( x => x . Member )
34
34
. Where ( x => x . HasCustomAttribute < RequiredAttribute > ( ) ) ;
35
35
foreach ( var member in requiredMembers )
36
36
{
37
- if ( IsMemberNull ( member , build ) )
38
- Assert . Fail ( $ "Member '{ GetMemberName ( member ) } ' is required to be not null") ;
37
+ if ( IsMemberNullOrEmpty ( member , build ) )
38
+ Assert . Fail ( $ "Member '{ GetMemberName ( member ) } ' is required to be not null or empty ") ;
39
39
}
40
40
}
41
41
42
- private static bool IsMemberNull ( MemberInfo member , INukeBuild build , ExecutableTarget target = null )
42
+ private static bool IsMemberNullOrEmpty ( MemberInfo member , INukeBuild build , ExecutableTarget target = null )
43
43
{
44
44
member = member . DeclaringType != build . GetType ( )
45
45
? build . GetType ( ) . GetMember ( member . Name ) . SingleOrDefault ( ) ?? member
@@ -52,7 +52,9 @@ private static bool IsMemberNull(MemberInfo member, INukeBuild build, Executable
52
52
if ( build . Host is Terminal )
53
53
TryInjectValueInteractive ( member , build ) ;
54
54
55
- return member . GetValue ( build ) == null ;
55
+ return member . GetMemberType ( ) != typeof ( string )
56
+ ? member . GetValue ( build ) == null
57
+ : member . GetValue < string > ( build ) . IsNullOrWhiteSpace ( ) ;
56
58
}
57
59
58
60
private static void TryInjectValueInteractive ( MemberInfo member , INukeBuild build )
0 commit comments