예제 #1
0
        public DiscountSerializerTest()
        {
            BaseCurrency.BaseCurrencyInfos = new MockConfigManager <BaseCurrencyInfos>(
                new BaseCurrencyInfos
            {
                Infos = new List <BaseCurrencyInfo>
                {
                    new BaseCurrencyInfo {
                        Date = null, Currency = "CNY"
                    }
                }
            });

            TitleManager.TitleInfos =
                new MockConfigManager <TitleInfos>(new TitleInfos {
                Titles = new List <TitleInfo>()
            });

            AbbrSerializer.Abbrs =
                new MockConfigManager <Abbreviations>(
                    new Abbreviations
            {
                Abbrs = new List <Abbreviation>
                {
                    new Abbreviation
                    {
                        Abbr     = "aaa",
                        Title    = 1001,
                        Editable = false
                    }
                }
            });

            ClientUser.Set("b1");
        }
예제 #2
0
        public DbTest()
        {
            m_Adapter = Facade.Create(db: "accounting-test");

            m_Adapter.DeleteVouchers(VoucherQueryUnconstrained.Instance);

            ClientUser.Set("b1");
        }
예제 #3
0
        protected SerializerTest()
        {
            BaseCurrency.BaseCurrencyInfos = new MockConfigManager <BaseCurrencyInfos>(
                new()
            {
                Infos = new()
                {
                    new() { Date = null, Currency = "CNY" },
                },
            });

            TitleManager.TitleInfos = new MockConfigManager <TitleInfos>(new() { Titles = new() });

            ClientUser.Set("b1");
        }
예제 #4
0
        protected SerializerTest()
        {
            BaseCurrency.BaseCurrencyInfos = new MockConfigManager <BaseCurrencyInfos>(
                new BaseCurrencyInfos
            {
                Infos = new List <BaseCurrencyInfo>
                {
                    new BaseCurrencyInfo {
                        Date = null, Currency = "CNY"
                    }
                }
            });

            TitleManager.TitleInfos =
                new MockConfigManager <TitleInfos>(new TitleInfos {
                Titles = new List <TitleInfo>()
            });

            ClientUser.Set("b1");
        }
예제 #5
0
        private static HttpResponse Server_OnHttpRequest(HttpRequest request)
        {
#if DEBUG
            var fn = Path.Combine(
                Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "../../../nginx/"),
                (request.BaseUri == "/" ? "/index.html" : request.BaseUri).TrimStart('/'));
            if (request.Method == "GET")
            {
                if (File.Exists(fn))
                {
                    return(GenerateHttpResponse(File.OpenRead(fn), "text/html"));
                }
            }

            if (request.BaseUri.StartsWith("/api", StringComparison.Ordinal))
            {
                request.BaseUri = request.BaseUri.Substring(4);
            }
#endif
            string user;
            if (request.Header.ContainsKey("x-user"))
            {
                user = request.Header["x-user"];
            }
            else
            {
                return new HttpResponse {
                           ResponseCode = 400
                }
            };
            if (user == "anonymous")
            {
                return new HttpResponse {
                           ResponseCode = 401
                }
            }
            ;

            string spec = null;
            if (request.Header.ContainsKey("x-serializer"))
            {
                spec = request.Header["x-serializer"];
            }

            if (request.Method == "GET")
            {
                if (request.BaseUri == "/emptyVoucher")
                {
                    return(GenerateHttpResponse(Facade.EmptyVoucher(spec), "text/plain; charset=utf-8"));
                }

                return(new HttpResponse {
                    ResponseCode = 404
                });
            }

            if (request.Method != "POST")
            {
                return new HttpResponse {
                           ResponseCode = 405
                }
            }
            ;

            if (!request.Header.ContainsKey("x-clientdatetime") ||
                !ClientDateTime.TryParse(request.Header["x-clientdatetime"], out var timestamp))
            {
                return new HttpResponse {
                           ResponseCode = 400
                }
            }
            ;

            ClientUser.Set(user);
            ClientDateTime.Set(timestamp);

            switch (request.BaseUri)
            {
            case "/execute":
            {
                var expr     = request.ReadToEnd();
                var res      = Facade.Execute(expr, spec);
                var response = GenerateHttpResponse(res.ToString(), "text/plain; charset=utf-8");
                response.Header["X-Type"]       = res.GetType().Name;
                response.Header["X-AutoReturn"] = res.AutoReturn ? "true" : "false";
                response.Header["X-Dirty"]      = res.Dirty ? "true" : "false";
                return(response);
            }

            case "/voucherUpsert":
            {
                var code = request.ReadToEnd();
                var res  = Facade.ExecuteVoucherUpsert(code, spec);
                return(GenerateHttpResponse(res, "text/plain; charset=utf-8"));
            }

            case "/voucherRemoval":
            {
                var code = request.ReadToEnd();
                var res  = Facade.ExecuteVoucherRemoval(code, spec);
                return(new HttpResponse {
                        ResponseCode = res ? 204 : 404
                    });
            }

            case "/assetUpsert":
            {
                var code = request.ReadToEnd();
                var res  = Facade.ExecuteAssetUpsert(code, spec);
                return(GenerateHttpResponse(res, "text/plain; charset=utf-8"));
            }

            case "/assetRemoval":
            {
                var code = request.ReadToEnd();
                var res  = Facade.ExecuteAssetRemoval(code, spec);
                return(new HttpResponse {
                        ResponseCode = res ? 204 : 404
                    });
            }

            case "/amortUpsert":
            {
                var code = request.ReadToEnd();
                var res  = Facade.ExecuteAmortUpsert(code, spec);
                return(GenerateHttpResponse(res, "text/plain; charset=utf-8"));
            }

            case "/amortRemoval":
            {
                var code = request.ReadToEnd();
                var res  = Facade.ExecuteAmortRemoval(code, spec);
                return(new HttpResponse {
                        ResponseCode = res ? 204 : 404
                    });
            }

            default:
                return(new HttpResponse {
                    ResponseCode = 404
                });
            }
        }
    }
}
예제 #6
0
        public SubtotalTest()
        {
            m_Adapter = Facade.Create("mongodb://localhost/accounting-test");

            m_Adapter.DeleteVouchers(VoucherQueryUnconstrained.Instance);

            m_Adapter.Upsert(
                new Voucher
            {
                Date    = new DateTime(2016, 12, 31, 0, 0, 0, DateTimeKind.Utc),
                Remark  = "xrmk1",
                Details = new List <VoucherDetail>
                {
                    new VoucherDetail
                    {
                        User     = "******",
                        Currency = "JPY",
                        Title    = 1234,
                        SubTitle = 56,
                        Content  = "cnt1",
                        Fund     = 123.45,
                        Remark   = "rmk1"
                    },
                    new VoucherDetail
                    {
                        User     = "******",
                        Currency = "JPY",
                        Title    = 6541,
                        SubTitle = 98,
                        Content  = "cnt1",
                        Fund     = -123.45,
                        Remark   = "rmk2"
                    }
                }
            });

            m_Adapter.Upsert(
                new Voucher
            {
                Date    = new DateTime(2017, 02, 01, 0, 0, 0, DateTimeKind.Utc),
                Remark  = "xrmk2",
                Details = new List <VoucherDetail>
                {
                    new VoucherDetail
                    {
                        User     = "******",
                        Currency = "JPY",
                        Title    = 1234,
                        SubTitle = 56,
                        Content  = "cnt1",
                        Fund     = 78.53,
                        Remark   = "rmk1"
                    },
                    new VoucherDetail
                    {
                        User     = "******",
                        Currency = "JPY",
                        Title    = 6541,
                        SubTitle = 98,
                        Content  = "cnt1",
                        Fund     = -78.53,
                        Remark   = "rmk2"
                    },
                    new VoucherDetail
                    {
                        User     = "******",
                        Currency = "USD",
                        Title    = 1234,
                        SubTitle = 56,
                        Content  = "cnt2",
                        Fund     = 66.66,
                        Remark   = "rmk1"
                    },
                    new VoucherDetail
                    {
                        User     = "******",
                        Currency = "USD",
                        Title    = 6541,
                        SubTitle = 98,
                        Content  = "cnt2",
                        Fund     = -66.66,
                        Remark   = "rmk2"
                    },
                    new VoucherDetail
                    {
                        User     = "******",
                        Currency = "EUR",
                        Title    = 2333,
                        Fund     = 114514
                    }
                }
            });

            ClientUser.Set("b1");
        }
예제 #7
0
 public SecurityTest()
 {
     ClientUser.Set("b1");
 }
예제 #8
0
 protected QueryTestBase()
 {
     ClientUser.Set("b1");
 }