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); } }
public static void InvokeDynamic(this IApplicationExecutor executor, MockHandlerBuilder builder) { executor.Execute(builder.CreateDynamicAssertType(), assertation => { IDynamicMock a = (IDynamicMock)assertation; a.Execute().GetAwaiter().GetResult(); }); }
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); }
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); }