private DurableOrchestrationContextBase CreateFakeContextForEmployeeNoParkingSpaceAvailable() { var context = A.Fake <DurableOrchestrationContextBase>(); const string licensePlateNumber = "ABC-123"; const string parkingGarageName = "Parking Garage 1"; // Configure input A.CallTo(() => context.GetInput <ParkingOrchestrationRequest>()) .Returns(new ParkingOrchestrationRequest { ParkingGarageName = parkingGarageName, LicensePlateNumber = licensePlateNumber }); // Configure GetLicensePlateRegistration activity A.CallTo(() => context.CallActivityAsync <LicensePlateRegistration>( nameof(GetLicensePlateRegistration), A <string> ._)) .Returns(Task.FromResult(new LicensePlateRegistration { Number = licensePlateNumber, Name = "E.M. Ployee", Type = LicensePlateType.Employee })); // Configure ConfirmParkingForEmployee activity A.CallTo(() => context.CallActivityAsync <ConfirmParkingResponse>( nameof(ConfirmParkingForEmployee), A <ConfirmParkingRequest> ._)) .Returns(Task.FromResult( ConfirmParkingResponseBuilder.BuildWithFailedNoParkingSpaceAvailable(parkingGarageName))); return(context); }
private static Task <ConfirmParkingResponse> ConfirmParking( ConfirmParkingRequest request, LicensePlateRegistration licensePlateRegistration, DurableOrchestrationContextBase context) { Task <ConfirmParkingResponse> confirmTask; switch (licensePlateRegistration.Type) { case LicensePlateType.Appointment: confirmTask = context.CallActivityAsync <ConfirmParkingResponse>( nameof(ConfirmParkingForAppointment), request); break; case LicensePlateType.Employee: confirmTask = context.CallActivityAsync <ConfirmParkingResponse>( nameof(ConfirmParkingForEmployee), request); break; default: var unknownLicencePlateResponse = ConfirmParkingResponseBuilder.BuildWithFailedUnknownLicensePlate(request.ParkingGarageName); confirmTask = Task.FromResult(unknownLicencePlateResponse); break; } return(confirmTask); }
public async Task <ConfirmParkingResponse> ConfirmParkingAsync( ConfirmParkingRequest request, bool hasReservation) { var parkingGarage = await _repository.GetByNameAsync(request.ParkingGarageName); var occupySpaceResult = parkingGarage.OccupyParkingSpace(hasReservation); return(ConfirmParkingResponseBuilder.Build(parkingGarage.Name, occupySpaceResult)); }
private DurableOrchestrationContextBase CreateFakeContextForAppointment() { var context = A.Fake <DurableOrchestrationContextBase>(); const string licensePlateNumber = "ABC-123"; const string parkingGarageName = "Parking Garage 1"; // Configure input A.CallTo(() => context.GetInput <ParkingOrchestrationRequest>()) .Returns(new ParkingOrchestrationRequest { ParkingGarageName = parkingGarageName, LicensePlateNumber = licensePlateNumber }); // Configure GetLicensePlateRegistration activity A.CallTo(() => context.CallActivityAsync <LicensePlateRegistration>( nameof(GetLicensePlateRegistration), A <string> ._)) .Returns(Task.FromResult(new LicensePlateRegistration { ContactPerson = "C.O. NTact", Number = licensePlateNumber, Name = "A.P. Pointment", Type = LicensePlateType.Appointment })); // Configure ConfirmParkingForAppointment activity A.CallTo(() => context.CallActivityAsync <ConfirmParkingResponse>( nameof(ConfirmParkingForAppointment), A <ConfirmParkingRequest> ._)) .Returns(Task.FromResult( ConfirmParkingResponseBuilder.BuildWithSuccess(parkingGarageName))); // Configure ConfirmParkingForAppointment activity A.CallTo(() => context.CallActivityAsync( nameof(OpenGate), A <string> ._)) .Returns(Task.CompletedTask); return(context); }