Пример #1
0
        public void ExceptionUnwrapTest()
        {
            var lv0 = new ArgumentNullException("name", "lv0");
            var lv1 = new InvalidOperationException("lv1", lv0);
            var lv2 = new ArgumentException("lv2", lv1);
            var lv3 = new ArgumentException("lv2", lv2);
            var lv4 = new ArgumentException("lv2", lv3);
            var lv5 = new ArgumentException("lv2", lv4);

            var lvA = lv5.Unwrap();
            var lvB = lv5.Unwrap(typeof(ArgumentNullException));
            var lvC = lv5.Unwrap <ArgumentNullException>();
            var lvD = lv5.Unwrap(typeof(InvalidOperationException));
            var lvE = lv5.Unwrap <InvalidOperationException>();

            lvA.ShouldNotBeNull();
            lvB.ShouldNotBeNull();
            lvC.ShouldNotBeNull();
            lvD.ShouldNotBeNull();
            lvE.ShouldNotBeNull();

            var message =
#if NETFRAMEWORK
                @"lv0
Parameter name: name";
#else
                @"lv0 (Parameter 'name')";
#endif

            lvA.Message.ShouldBe(message);
            lvB.Message.ShouldBe(message);
            lvC.Message.ShouldBe(message);
            lvD.Message.ShouldBe("lv1");
            lvE.Message.ShouldBe("lv1");
        }