Пример #1
0
        public async Task RequestStatusChange_NewRequest_SuccessfullRead()
        {
            IServiceCollection services = new ServiceCollection();

            services.AddKitchenDomain()
            .AddKitchenApplication()
            .AddKitchenInfrastructure("Server=.;Database=RestaurantManagementSystem;Trusted_Connection=True;MultipleActiveResultSets=true", "S0M3 M4G1C UN1C0RNS G3N3R4T3D TH1S S3CR3T");
            var serviceProviderFactory = new DefaultServiceProviderFactory();

            IServiceProvider serviceProvider = serviceProviderFactory.CreateServiceProvider(services);

            IMediator Mediator = serviceProvider.GetService <IMediator>();

            var createRequestCommand = new CreateRequestCommand();

            createRequestCommand.CreatorReferenceId = "sdafsad";
            createRequestCommand.Items.Add(new RequestItemInputModel(1, "Bez Chesun"));
            createRequestCommand.Items.Add(new RequestItemInputModel(2, "Bez Chesun"));
            CreateRequestOutputModel createRequestOutput;

            createRequestOutput = await Mediator.Send(createRequestCommand);

            var getRequestsQuery  = new GetRequestsQuery();
            var getRequestsResult = await Mediator.Send(getRequestsQuery);

            var request = getRequestsResult.Requests.FirstOrDefault(request => request.Id == createRequestOutput.RequestId);

            var setRequestStatusCommand = new SetRequestStatusCommand();

            setRequestStatusCommand.RequestId        = createRequestOutput.RequestId;
            setRequestStatusCommand.NewRequestStatus = RequestStatus.InProgress.Value;
            var newItemStatus = new ItemStatus(request.Items.ElementAt(0).Id, RequestItemStatus.Ready.Value);

            setRequestStatusCommand.ItemStatuses.Add(newItemStatus);
            await Mediator.Send(setRequestStatusCommand);

            getRequestsResult = await Mediator.Send(getRequestsQuery);

            request = getRequestsResult.Requests.FirstOrDefault(request => request.Id == createRequestOutput.RequestId);

            Assert.AreEqual(setRequestStatusCommand.NewRequestStatus.Value, request.Status.Value);
            foreach (var commandItemStatus in setRequestStatusCommand.ItemStatuses)
            {
                var requestItem = request.Items.FirstOrDefault(requestItem => requestItem.Id == commandItemStatus.ItemId);
                Assert.AreEqual(requestItem.Status.Value, commandItemStatus.NewStatus);
            }
        }
 public async Task <ActionResult <Unit> > SetRequestStatus(SetRequestStatusCommand setRequestStatusCommand)
 {
     return(await Send(setRequestStatusCommand));
 }