public async Task SkuStock_take_When_adding_stock() { var id = Guid.NewGuid(); TakeFromStockCommand cmd; var scenario = await AggregateScenario.New <SkuStock, SkuStockCommandsHandler>() .Given(new SkuStockCreated(id, _skuId, 50, TimeSpan.FromMilliseconds(100)), new StockAdded(id, 10, "test batch 2")) .When(cmd = new TakeFromStockCommand(id, 10)) .Then(new StockTaken(id, cmd.Quantity)) .Run() .Check(); //Aggregate_quantity_should_be_decreased_by_command_amount() Assert.Equal(60 - cmd.Quantity, scenario.Aggregate.Quantity); }
public async Task Given_sku_stock_with_amount_When_reserve_first_time() { var aggregateId = Guid.NewGuid(); TakeFromStockCommand takeCommand; var scenario = await AggregateScenario.New <SkuStock, SkuStockCommandsHandler>() .Given(new SkuStockCreated(aggregateId, Guid.NewGuid(), 50, TimeSpan.FromMilliseconds(100)), new StockAdded(aggregateId, 10, "test batch 2")) .When(takeCommand = new TakeFromStockCommand(aggregateId, 5)) .Then(new StockTaken(takeCommand.StockId, takeCommand.Quantity)) .Run() .Check(); //Then_Aggregate_Quantity_should_be_reduced_by_take_amount() Assert.Equal(60 - takeCommand.Quantity, scenario.Aggregate.Quantity); //Then_no_future_events_should_be_made() Assert.Empty(scenario.Aggregate.FutureEvents); //Then_no_reservations_should_be_made() Assert.Empty(scenario.Aggregate.Reservations); }