コード例 #1
0
        public void Discover(IDiscoveryContext context)
        {
            if (IsNullable)
            {
                if (Presence == Presence.Forbidden)
                {
                    context.AddError(ForbiddenErrorId, true);

                    return;
                }

                if (Presence == Presence.Required)
                {
                    context.AddError(RequiredErrorId, true);
                }
            }

            for (var i = 0; i < CommandScopes.Count; ++i)
            {
                CommandScopes[i].Discover(context);
            }
        }
コード例 #2
0
ファイル: CommandScope.cs プロジェクト: commodus/Validot
        public void Discover(IDiscoveryContext context)
        {
            context.EnterPath(Path);

            if (!ErrorId.HasValue || ErrorMode == ErrorMode.Append)
            {
                RunDiscovery(context);
            }

            if (ErrorId.HasValue)
            {
                context.AddError(ErrorId.Value);
            }

            context.LeavePath();
        }
コード例 #3
0
        public static void ShouldDiscover <T>(this ICommandScope <T> @this, IDiscoveryContext context, Action <IDiscoveryContext> callsAssertions)
        {
            @this.Discover(context);

            Received.InOrder(() =>
            {
                context.EnterPath(Arg.Is(@this.Path));

                if ([email protected] || @this.ErrorMode == ErrorMode.Append)
                {
                    callsAssertions(context);
                }

                if (@this.ErrorId.HasValue)
                {
                    context.AddError(Arg.Is(@this.ErrorId.Value));
                }

                context.LeavePath();
            });
        }