public void Test_Throw_And_Catch()

in DarabonbaUnitTests/Exceptions/DaraExceptionTest.cs [153:217]


        public void Test_Throw_And_Catch()
        {
            try
            {
                throw new DaraException
                {
                    Message = "msg",
                    Code = "200",
                    AccessDeniedDetail = new Dictionary<string, object>
                    {
                        { "NoPermissionType", "ImplicitDeny" }
                    },
                    Data = new Dictionary<string, object>
                    {
                        { "test", "test" }
                    }
                };
            }
            catch (TeaException e)
            {
                Assert.Equal("msg", e.Message);
                Assert.Equal("200", e.Code);
                Assert.Equal("ImplicitDeny", DictUtils.GetDicValue(e.AccessDeniedDetail, "NoPermissionType"));
                Assert.Equal("test", DictUtils.GetDicValue(e.DataResult, "test"));
                Assert.Equal("test", e.DataResult["test"]);
                Assert.Equal(0, e.StatusCode);
            }

            try
            {
                throw new TestException
                {
                    TestCode = 123,
                    Code = "400"
                };
            }
            catch (TestException e)
            {
                Assert.Null(e.Message);
                Assert.Equal("400", e.Code);
                Assert.Null(e.AccessDeniedDetail);
                Assert.Null(e.DataResult);
                Assert.Equal(123, e.TestCode);
            }
            
            try
            {
                throw new TestException
                {
                    Message = "message",
                    Code = "400",
                    Data = new Dictionary<string, object>
                    {
                        { "test", "test" }
                    }
                };
            }
            catch (DaraException e)
            {
                Assert.Equal("message", e.Message);
                Assert.Equal("400", e.Code);
                Assert.Null(e.AccessDeniedDetail);
                Assert.Equal("test", e.Data["test"]);
            }
        }