public DispatcherTests() { Events = Substitute.For <IEventStore>(); Services = Substitute.For <IServiceProvider>(); Services.GetService(typeof(Domains.Airline.FlightReservation)).Returns(new Domains.Airline.FlightReservation()); var resv = new AggregateModel(typeof(Domains.Airline.FlightReservation)); resv.SetFactoryHandler("Create"); resv.AddCommandHandler("Cancel"); Dispatcher = new Dispatcher(new BoundedContextModel(new[] { resv }), Events, Services); }
public AggregateModelBuilder <T> Executes <TCommand>(Expression <Func <TCommand, string> > correlationAccessor) { var id = new Func <object, string>((obj) => { var expr = correlationAccessor.Body as MemberExpression; var prop = expr.Member as PropertyInfo; return((string)prop.GetValue(obj)); }); _model.AddCommandHandler(new CommandHandlerModel(FindMethodByParameter(typeof(TCommand)), new CommandModel(typeof(TCommand), new AggregateCorrelation(id)))); return(this); }
public AggregateModelTests() { Model = new AggregateModel(typeof(Domains.Airline.FlightReservation)); Model.SetFactoryHandler(new CommandHandlerModel(Model.Type.GetMethods().Single(c => c.Name == "Create"))); Model.AddCommandHandler(new CommandHandlerModel(Model.Type.GetMethods().Single(c => c.Name == "Cancel"))); }