public void CanHandleSimpleException() { FaultContractExceptionHandler instance = new FaultContractExceptionHandler(typeof(MockFaultContract), new NameValueCollection()); Exception result = instance.HandleException(new Exception(), Guid.NewGuid()); Assert.IsTrue(result is FaultContractWrapperException); Assert.IsNotNull(((FaultContractWrapperException)result).FaultContract); Assert.IsTrue(((FaultContractWrapperException)result).FaultContract is MockFaultContract); }
public void CanInjectGuidAttributesIntoFaultContract() { NameValueCollection attributes = new NameValueCollection(); attributes.Add("Id", "{Guid}"); FaultContractExceptionHandler instance = new FaultContractExceptionHandler(typeof(MockFaultContract), attributes); Guid id = Guid.NewGuid(); FaultContractWrapperException result = (FaultContractWrapperException)instance.HandleException(new Exception(), id); Assert.AreEqual(id, ((MockFaultContract)result.FaultContract).Id); }
public void CannotInjectInvalidPropertyNameIntoFaultContract() { NameValueCollection attributes = new NameValueCollection(); attributes.Add("Message", "{Invalid}"); FaultContractExceptionHandler instance = new FaultContractExceptionHandler(typeof(MockFaultContract), attributes); Exception exception = new Exception("MyException"); FaultContractWrapperException result = (FaultContractWrapperException)instance.HandleException(exception, Guid.NewGuid()); Assert.IsTrue(string.IsNullOrEmpty(((MockFaultContract)result.FaultContract).Message)); }
public void CannotInjectNonReadablePropertyNameIntoFaultContract() { NameValueCollection attributes = new NameValueCollection(); attributes.Add("Message", "{NonReadableProperty}"); FaultContractExceptionHandler instance = new FaultContractExceptionHandler(typeof(MockFaultContract), attributes); Exception exception = new ExceptionWithNonReadableProperty("MyException"); FaultContractWrapperException result = (FaultContractWrapperException)instance.HandleException(exception, Guid.NewGuid()); Assert.IsTrue(string.IsNullOrEmpty(((MockFaultContract)result.FaultContract).Message)); }
public void CanInjectInvalidPropertyNameIntoCustomPropertyFaultContract() { NameValueCollection attributes = new NameValueCollection(); attributes.Add("SomeNumber", "{Invalid}"); FaultContractExceptionHandler instance = new FaultContractExceptionHandler(typeof(MockFaultContract), attributes); Exception exception = new Exception("MyException"); FaultContractWrapperException result = (FaultContractWrapperException)instance.HandleException(exception, Guid.NewGuid()); Assert.AreEqual((double)0, ((MockFaultContract)result.FaultContract).SomeNumber); }
public void CanInjectInvalidPropertyValueIntoFaultContract() { NameValueCollection attributes = new NameValueCollection(); attributes.Add("Invalid", "{Message}"); FaultContractExceptionHandler instance = new FaultContractExceptionHandler(typeof(MockFaultContract), attributes); Exception exception = new Exception("MyException"); FaultContractWrapperException result = (FaultContractWrapperException)instance.HandleException(exception, Guid.NewGuid()); Assert.AreEqual(exception.Message, ((MockFaultContract)result.FaultContract).Message); }
public void CanPreventFieldMapping() { NameValueCollection attributes = new NameValueCollection(); attributes.Add("Message", ""); FaultContractExceptionHandler instance = new FaultContractExceptionHandler(typeof(MockFaultContract), attributes); Exception exception = new Exception("Should not copy this message"); FaultContractWrapperException result = (FaultContractWrapperException)instance.HandleException(exception, Guid.NewGuid()); Assert.IsNull(((MockFaultContract)result.FaultContract).Message); }
public void CanInjectAttributesIntoFaultContract() { NameValueCollection attributes = new NameValueCollection(); attributes.Add("Message", "{Message}"); attributes.Add("Data", "{Data}"); attributes.Add("SomeNumber", "{OffendingNumber}"); FaultContractExceptionHandler instance = new FaultContractExceptionHandler(typeof(MockFaultContract), attributes); NotFiniteNumberException exception = new NotFiniteNumberException("MyException", 12341234123412); exception.Data.Add("someKey", "someValue"); FaultContractWrapperException result = (FaultContractWrapperException)instance.HandleException(exception, Guid.NewGuid()); MockFaultContract fault = (MockFaultContract)result.FaultContract; Assert.AreEqual(exception.Message, fault.Message); Assert.AreEqual(exception.Data.Count, fault.Data.Count); Assert.AreEqual(exception.Data["someKey"], fault.Data["someKey"]); Assert.AreEqual(exception.OffendingNumber, fault.SomeNumber); }
public void ThrowOnFaultContractWithNoDefaultConstructor() { FaultContractExceptionHandler instance = new FaultContractExceptionHandler(typeof(MockFaultContractNoDefaultCtor), new NameValueCollection()); instance.HandleException(new Exception(), Guid.NewGuid()); }
public void CanInjectInvalidPropertyValueIntoCustomPropertyFaultContract() { NameValueCollection attributes = new NameValueCollection(); attributes.Add("Invalid", "{OffendingNumber}"); FaultContractExceptionHandler instance = new FaultContractExceptionHandler(typeof(MockFaultContract), attributes); NotFiniteNumberException exception = new NotFiniteNumberException("MyException", 1231254); FaultContractWrapperException result = (FaultContractWrapperException)instance.HandleException(exception, Guid.NewGuid()); Assert.AreEqual((double)0, ((MockFaultContract)result.FaultContract).SomeNumber); }
public void ShouldGetReplacedExceptionMessage() { FaultContractExceptionHandler instance = new FaultContractExceptionHandler(typeof(MockFaultContract), "NewValue", null); Exception exception = new Exception("MyException"); FaultContractWrapperException result = (FaultContractWrapperException)instance.HandleException(exception, Guid.NewGuid()); Assert.AreEqual("NewValue", result.Message); }
public void ShouldGetReplacedExceptionMessageWithGuid() { FaultContractExceptionHandler instance = new FaultContractExceptionHandler(typeof(MockFaultContract), "NewValue: {handlingInstanceID}", null); Exception exception = new Exception("MyException"); Guid guid = Guid.NewGuid(); FaultContractWrapperException result = (FaultContractWrapperException)instance.HandleException(exception, guid); Assert.IsTrue(result.Message.Contains(guid.ToString())); }