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);
        }
Example #4
0
        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();
        }