public async Task When_async_method_is_called_domainEvents_are_persisted() { var cmd = new PlanTitleChangeCommand(43, Guid.NewGuid(), Guid.Empty, TimeSpan.FromMilliseconds(50)); await Node.Prepare(cmd).Expect <BalloonTitleChanged>().Execute(); var aggregate = await this.LoadAggregateByActor <Balloon>(cmd.AggregateId); Assert.Equal(cmd.Parameter.ToString(), aggregate.Title); }
public async Task Async_method_should_change_aggregate() { var syncCommand = new PlanTitleChangeCommand(42, Guid.NewGuid()); await Node.Prepare(syncCommand).Expect <BalloonTitleChanged>().Execute(); //to finish persistence var aggregate = await this.LoadAggregateByActor <Balloon>(syncCommand.AggregateId); Assert.Equal(syncCommand.Parameter.ToString(), aggregate.Title); }
public async Task Async_execute_dont_wait_for_command_finish() { var syncCommand = new PlanTitleChangeCommand(42, Guid.NewGuid().ToString()); //intentionally dont wait for command execution finish #pragma warning disable 4014 Node.Execute(syncCommand); #pragma warning restore 4014 var aggregate = await this.LoadAggregateByActor <Balloon>(syncCommand.AggregateId); Assert.NotEqual(syncCommand.Parameter.ToString(), aggregate.Title); }
public async Task When_async_method_is_called_other_commands_can_be_executed_before_async_results() { var aggregateId = Guid.NewGuid().ToString(); var asyncCommand = new PlanTitleChangeCommand(43, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), TimeSpan.FromSeconds(1)); var syncCommand = new WriteTitleCommand(42, aggregateId); var asyncCommandTask = Node.Prepare(asyncCommand) .Expect <BalloonTitleChanged>() .Execute(); await Node.Prepare(syncCommand) .Expect <BalloonTitleChanged>() .Execute(); var sampleAggregate = await this.LoadAggregateByActor <Balloon>(syncCommand.AggregateId); Assert.Equal(syncCommand.Parameter.ToString(), sampleAggregate.Title); var changedEvent = (await asyncCommandTask).Message <BalloonTitleChanged>(); Assert.Equal(asyncCommand.Parameter.ToString(), changedEvent.Value); }
public async Task Async_method_should_produce_messages_for_projection_builders() { var cmd = new PlanTitleChangeCommand(42, Guid.NewGuid()); await Node.Prepare(cmd).Expect <BalloonTitleChangedNotification>().Execute(); }