public void TestDaraException_compatible()

in DarabonbaUnitTests/Exceptions/DaraExceptionTest.cs [50:150]


        public void TestDaraException_compatible()
        {
            var daraException = new DaraException(new Dictionary<string, object>
            {
                { "code", "200" },
                { "message", "message" },
                { "data", null }
            });

            Assert.NotNull(daraException);
            Assert.Equal("200", daraException.Code);
            Assert.Equal("message", daraException.Message);
            Assert.Null(daraException.DataResult);

            daraException = new DaraException(new Dictionary<string, object>
            {
                { "code", "200" },
                { "message", "message" },
                {
                    "data",
                    new Dictionary<string, string>
                    {
                        { "test", "test" }
                    }
                }
            });
            Assert.NotNull(daraException);
            Assert.NotNull(daraException.DataResult);
            Assert.Equal("test", daraException.Data["test"]);

            daraException = new DaraException(new Dictionary<string, object>
            {
                { "code", "200" },
                { "message", "message" },
                {
                    "data",
                    new
                    {
                        test = "test"
                    }
                }
            });
            Assert.NotNull(daraException);
            Assert.NotNull(daraException.DataResult);

            daraException = new DaraException(new Dictionary<string, string>
            {
                { "code", "200" }
            });
            Assert.NotNull(daraException);
            Assert.Equal("200", daraException.Code);

            daraException = new DaraException(new Dictionary<string, object>
            {
                { "code", "code" },
                { "message", "message" },
                { "description", "description" },
                {
                    "data",
                    new Dictionary<string, object>
                    {
                        { "test", "test" },
                        { "statusCode", 200 }
                    }
                },
                {
                    "accessDeniedDetail",
                    new Dictionary<string, object>
                    {
                        { "NoPermissionType", "ImplicitDeny" }
                    }
                }
            });
            Assert.NotNull(daraException);
            Assert.Equal("code", daraException.Code);
            Assert.Equal("message", daraException.Message);
            Assert.Equal("description", daraException.Description);
            Assert.Equal(200, daraException.StatusCode);
            Assert.Equal("test", daraException.DataResult["test"]);
            Assert.Equal("ImplicitDeny", DictUtils.GetDicValue(daraException.AccessDeniedDetail, "NoPermissionType"));

            daraException = new DaraException(new Dictionary<string, object>
            {
                { "code", "code" },
                {
                    "accessDeniedDetail", null
                }
            });
            Assert.NotNull(daraException);
            Assert.Null(daraException.AccessDeniedDetail);

            daraException = new DaraException(new Dictionary<string, object>
            {
                { "code", "code" },
                {
                    "accessDeniedDetail", "error type"
                }
            });
            Assert.NotNull(daraException);
            Assert.Null(daraException.AccessDeniedDetail);
        }