private Type GetExceptionTypeFromFault(RequestFaultException ex) { var typeName = ex.Fault?.Exceptions?.Select(e => e.ExceptionType).FirstOrDefault(); if (string.IsNullOrWhiteSpace(typeName)) { return(null); } try { return(BuildManager.GetType(typeName, true)); } catch (Exception) { // we tried } return(null); }
public void GetNextDigitalisierungsauftrag_SQL_Server_not_available_returns_service_not_available() { // Arrange var archiveRecord = new ElasticArchiveRecord { ProtectionEndDate = new ElasticDateWithYear { Date = new DateTime(1900, 12, 31), Year = 1900 } }; // Setup specific exception that signals that database is down var fe = new FaultEvent <OrderDatabaseNotFoundOrNotRunningException>(new OrderDatabaseNotFoundOrNotRunningException(), new Guid(), null, new OrderDatabaseNotFoundOrNotRunningException(), null); var ex = new RequestFaultException("", fe); var controller = ArrangeControllerForGetNextDigitalisierungsauftragWithDigipoolException(ex, archiveRecord); // Act var auftrag = controller.GetNextDigitalisierungsauftrag().GetAwaiter().GetResult(); // Assert auftrag.Should().BeOfType <NegotiatedContentResult <string> >(); ((NegotiatedContentResult <string>)auftrag).StatusCode.Should().Be(HttpStatusCode.ServiceUnavailable); }