コード例 #1
0
        public void GivenIHaveWrittenCommand_HandlersAsFollows(Table table)
        {
            var hArgs = table.CreateSet <HandlerArgs>();

            Type[] handlers = hArgs.Select(x =>
                                           typeof(ICommandHandler <,>).MakeGenericType(_data.Types[x.CommandType], _data.Types[x.ResultType]))
                              .ToArray();

            var assemblies = _applicationExecutor.Execute <MockRegister, Assembly[]>(register =>
            {
                return(handlers.Select(i => register.GetMock(i).GetType().Assembly).Distinct().ToArray());
            });

            _applicationExecutor.Execute <IServiceMetadataProvider>(provider =>
                                                                    provider.Discover(x => handlers.Contains(x.HandlerIType), assemblies));

            foreach (var h in hArgs)
            {
                var ret = "new UserEntity() { Name = \"Elton\" }";
                MockHandlerBuilder assertBuilder = new MockHandlerBuilder()
                                                   .With(_data.Types[h.CommandType], _data.Types[h.ResultType])
                                                   .WithReturn(ret);

                _applicationExecutor.InvokeDynamic(assertBuilder);
            }
        }
コード例 #2
0
 public static void InvokeDynamic(this IApplicationExecutor executor, MockHandlerBuilder builder)
 {
     executor.Execute(builder.CreateDynamicAssertType(), assertation =>
     {
         IDynamicMock a = (IDynamicMock)assertation;
         a.Execute().GetAwaiter().GetResult();
     });
 }
コード例 #3
0
        public void ThenCommandHandlerIsInvokedWithCorrespondingArgument(string commandTypeName)
        {
            MockHandlerBuilder assertBuilder = new MockHandlerBuilder()
                                               .With(_data.Types[commandTypeName], _data.Types["UserEntity"])
                                               .WithArg($"Arg.Is<{commandTypeName}>(x => x.Name == \"John\" )");

            _applicationExecutor.InvokeDynamic(assertBuilder);
        }
コード例 #4
0
        public void GivenIHaveWrittenCommand_HandlerThatAcceptsAndReturns(string commandType, string resultType)
        {
            _data.CommandHandlerInterface =
                typeof(ICommandHandler <,>).MakeGenericType(_data.Types[commandType], _data.Types[resultType]);

            var mockInstance = _applicationExecutor.Execute <MockRegister, object>(register => register.GetMock(_data.CommandHandlerInterface));

            _applicationExecutor.Execute <IServiceMetadataProvider>(provider =>
                                                                    provider.Discover(x => x.HandlerIType == _data.CommandHandlerInterface, mockInstance.GetType().Assembly));

            var ret = "new UserEntity() { Name = \"Elton\" }";
            MockHandlerBuilder assertBuilder = new MockHandlerBuilder()
                                               .With(_data.Types[commandType], _data.Types["UserEntity"])
                                               .WithReturn(ret);

            _applicationExecutor.InvokeDynamic(assertBuilder);
        }