public void CompleteWorkOnAddedJobWithSomeQuantity_Succeeds(QuantityOfWork someQuantity)
        {
            someQuantity = someQuantity.ConstrainAsIncrement(_addedJob.Status);

            Act_CompleteWork(_addedJob.Id, someQuantity)
            .Assert_Succeeds();
        }
        public void CompleteWorkOnAddedJobWithSomeQuantity_FailsWithWorkNotStarted(QuantityOfWork someQuantity)
        {
            someQuantity = someQuantity.ConstrainAsIncrement(_addedJob.Status);

            Act_CompleteWork(_addedJob.Id, someQuantity)
            .Assert_FailsWith(WorkshopError.WorkNotStarted);
        }
        public void CompleteWorkOnAddedJobWithSomeQuantity_UncommittedEventsContainsWorkerStatusUpdated(QuantityOfWork someQuantity)
        {
            someQuantity = someQuantity.ConstrainAsIncrement(_addedJob.Status);

            Act_CompleteWork(_addedJob.Id, someQuantity);

            var expectedStatus = _addedWorker.Status.With(busy: _ => false);

            Assert_UncommittedEventsContains(
                new WorkshopEvent.WorkerStatusUpdated(_addedWorker.Id, expectedStatus)
                );
        }