Inheritance: ArithmeticException
コード例 #1
0
 public static void Ctor_Double()
 {
     double offendingNumber = double.PositiveInfinity;
     var exception = new NotFiniteNumberException(offendingNumber);
     Assert.Equal(offendingNumber, exception.OffendingNumber);
     Assert.Equal(COR_E_NOTFINITENUMBER, exception.HResult);
 }
コード例 #2
0
 public static void Ctor_String()
 {
     string message = "Created NotFiniteNumberException";
     var exception = new NotFiniteNumberException(message);
     Assert.Equal(message, exception.Message);
     Assert.Equal(COR_E_NOTFINITENUMBER, exception.HResult);
 }
コード例 #3
0
 public static void Ctor_Empty()
 {
     var exception = new NotFiniteNumberException();
     Assert.NotNull(exception);
     Assert.NotEmpty(exception.Message);
     Assert.Equal(COR_E_NOTFINITENUMBER, exception.HResult);
 }
        public void CanCreatePoliciesForHandler()
        {
            ExceptionPolicyData exceptionPolicyData = new ExceptionPolicyData("policy");
            settings.ExceptionPolicies.Add(exceptionPolicyData);

            ExceptionTypeData exceptionTypeData = new ExceptionTypeData("type1", typeof(Exception), PostHandlingAction.ThrowNewException);
            exceptionPolicyData.ExceptionTypes.Add(exceptionTypeData);

            FaultContractExceptionHandlerData exceptionHandlerData = new FaultContractExceptionHandlerData("handler1",
                typeof(MockFaultContract).AssemblyQualifiedName);
            exceptionHandlerData.ExceptionMessage = "fault message";
            exceptionHandlerData.PropertyMappings.Add(new FaultContractExceptionHandlerMappingData("Message", "{Message}"));
            exceptionHandlerData.PropertyMappings.Add(new FaultContractExceptionHandlerMappingData("Data", "{Data}"));
            exceptionHandlerData.PropertyMappings.Add(new FaultContractExceptionHandlerMappingData("SomeNumber", "{OffendingNumber}"));
            exceptionTypeData.ExceptionHandlers.Add(exceptionHandlerData);

            var manager = settings.BuildExceptionManager();

            NotFiniteNumberException originalException = new NotFiniteNumberException("MyException", 12341234123412);
            originalException.Data.Add("someKey", "someValue");
            try
            {
                manager.HandleException(originalException, "policy");
                Assert.Fail("a new exception should have been thrown");
            }
            catch (FaultContractWrapperException e)
            {
                MockFaultContract fault = (MockFaultContract)e.FaultContract;
                Assert.AreEqual(originalException.Message, fault.Message);
                Assert.AreEqual(originalException.Data.Count, fault.Data.Count);
                Assert.AreEqual(originalException.Data["someKey"], fault.Data["someKey"]);
                Assert.AreEqual(originalException.OffendingNumber, fault.SomeNumber);
            }
        }
コード例 #5
0
 public static void Ctor_String_Double()
 {
     string message = "Created NotFiniteNumberException";
     double offendingNumber = double.NegativeInfinity;
     var exception = new NotFiniteNumberException(message, offendingNumber);
     Assert.Equal(message, exception.Message);
     Assert.Equal(offendingNumber, exception.OffendingNumber);
     Assert.Equal(COR_E_NOTFINITENUMBER, exception.HResult);
 }
コード例 #6
0
 public static void Ctor_String_Exception()
 {
     string message = "Created NotFiniteNumberException";
     var innerException = new Exception("Created inner exception");
     var exception = new NotFiniteNumberException(message, innerException);
     Assert.Equal(message, exception.Message);
     Assert.Equal(COR_E_NOTFINITENUMBER, exception.HResult);
     Assert.Same(innerException, exception.InnerException);
     Assert.Equal(innerException.HResult, exception.InnerException.HResult);
 }
コード例 #7
0
 public static void Ctor_String_Double_Exception()
 {
     string message = "Created NotFiniteNumberException";
     double offendingNumber = double.NaN;
     var innerException = new Exception("Created inner exception");
     var exception = new NotFiniteNumberException(message, offendingNumber, innerException);
     Assert.Equal(offendingNumber, exception.OffendingNumber);
     Assert.Equal(message, exception.Message);
     Assert.Equal(innerException, exception.InnerException);
     Assert.Equal(COR_E_NOTFINITENUMBER, exception.HResult);
 }
        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 CanCreatePoliciesForHandler()
		{
			ExceptionPolicyData exceptionPolicyData = new ExceptionPolicyData("policy");
			settings.ExceptionPolicies.Add(exceptionPolicyData);

			ExceptionTypeData exceptionTypeData = new ExceptionTypeData("type1", typeof(Exception), PostHandlingAction.ThrowNewException);
			exceptionPolicyData.ExceptionTypes.Add(exceptionTypeData);

			FaultContractExceptionHandlerData exceptionHandlerData = new FaultContractExceptionHandlerData("handler1", 
				typeof(MockFaultContract).AssemblyQualifiedName);
			exceptionHandlerData.ExceptionMessage = "fault message";
			exceptionHandlerData.PropertyMappings.Add(new FaultContractExceptionHandlerMappingData("Message", "{Message}"));
			exceptionHandlerData.PropertyMappings.Add(new FaultContractExceptionHandlerMappingData("Data", "{Data}"));
			exceptionHandlerData.PropertyMappings.Add(new FaultContractExceptionHandlerMappingData("SomeNumber", "{OffendingNumber}"));
			exceptionTypeData.ExceptionHandlers.Add(exceptionHandlerData);

		    using(var container = new UnityContainer()
		        .AddExtension(new EnterpriseLibraryCoreExtension(configurationSource)))
		    {
		        ExceptionPolicyImpl policy = container.Resolve<ExceptionPolicyImpl>("policy");

		        NotFiniteNumberException originalException = new NotFiniteNumberException("MyException", 12341234123412);
		        originalException.Data.Add("someKey", "someValue");
		        try
		        {
		            policy.HandleException(originalException);
		            Assert.Fail("a new exception should have been thrown");
		        }
		        catch (FaultContractWrapperException e)
		        {
		            MockFaultContract fault = (MockFaultContract)e.FaultContract;
		            Assert.AreEqual(originalException.Message, fault.Message);
		            Assert.AreEqual(originalException.Data.Count, fault.Data.Count);
		            Assert.AreEqual(originalException.Data["someKey"], fault.Data["someKey"]);
		            Assert.AreEqual(originalException.OffendingNumber, fault.SomeNumber);
		        }
		    }
		}
        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);
        }