public async Task Booking_failure_code_should_lead_to_failure_or_success_depending_on_error_code( BookingFailureCodes failureCode, bool isErrorDefined, bool isSuccess) { InitializeMocks(); var service = CreateBookingRequestExecutor(); var booking = new Booking(); var problemDetails = Utility.CreateProblemDetailsWithFailureCode(isErrorDefined, failureCode); Utility.SetupConnectorBookFailure(_supplierConnectorMock, problemDetails); var result = await service.Execute(booking, default, default);
public static void AddBookingFailureCode(this IDictionary <string, object> extensions, BookingFailureCodes failureCode) { if (extensions.TryGetValue(BookingFailureCodeKey, out _)) { throw new Exception($"Key {failureCode} already exists"); } extensions[BookingFailureCodeKey] = (int)failureCode; }
public static bool TryGetBookingFailureCode(this IDictionary <string, object> extensions, out BookingFailureCodes failureCode) { if (!extensions.TryGetValue(BookingFailureCodeKey, out var obj)) { failureCode = BookingFailureCodes.Unknown; return(false); } // During deserialization of ProblemDetails code is deserialized as 'long' so we need to convert it to int explicitly var code = Convert.ToInt32(obj); if (!Enum.IsDefined(typeof(BookingFailureCodes), code)) { failureCode = BookingFailureCodes.Unknown; return(false); } failureCode = (BookingFailureCodes)code; return(true); }