Exemple #1
0
        public void ValidateInstrumentAccountBaseRequest()
        {
            // Null.
            {
                var v = new TradingSettingsProviderValidator();
                InstrumentAccountBaseRequest r = null;

                AssertEx.Throws <ArgumentNullException>(() =>
                {
                    v.Validate(r);
                });
            }

            // Instrument null.
            {
                var v = new TradingSettingsProviderValidator();
                InstrumentAccountBaseRequest r = new InstrumentAccountBaseRequest();
                r.Instrument = null;

                AssertEx.Throws <ArgumentNullException>(() =>
                {
                    v.Validate(r);
                });
            }

            // Instrument empty.
            {
                var v = new TradingSettingsProviderValidator();
                InstrumentAccountBaseRequest r = new InstrumentAccountBaseRequest();
                r.Instrument = "";

                AssertEx.Throws <ArgumentNullException>(() =>
                {
                    v.Validate(r);
                });
            }

            // Account null.
            {
                var v = new TradingSettingsProviderValidator();
                InstrumentAccountBaseRequest r = new InstrumentAccountBaseRequest();
                r.Instrument = "Test";
                r.Account    = null;

                AssertEx.Throws <ArgumentNullException>(() =>
                {
                    v.Validate(r);
                });
            }

            // Valid.
            {
                var v = new TradingSettingsProviderValidator();
                InstrumentAccountBaseRequest r = new InstrumentAccountBaseRequest();
                r.Instrument = "Test";
                r.Account    = new AccountRow();

                v.Validate(r);
            }
        }
        public virtual void Validate(InstrumentAccountBaseRequest request)
        {
            this.Validate((InstrumentBaseRequest)request);

            if (request.Account == null)
            {
                throw new ArgumentNullException("Account");
            }
        }
Exemple #3
0
        public GetBaseUnitSizeResponse GetBaseUnitSize(InstrumentAccountBaseRequest request)
        {
            this.Validator.Validate(request);

            var result = this.Provider.getBaseUnitSize(request.Instrument, Helpers.GetAccountRow(request.Account));

            return(new GetBaseUnitSizeResponse()
            {
                BaseUnitSize = result,
            });
        }
Exemple #4
0
        public GetQuantityResponse GetMinQuantity(InstrumentAccountBaseRequest request)
        {
            this.Validator.Validate(request);

            var result = this.Provider.getMinQuantity(request.Instrument, Helpers.GetAccountRow(request.Account));

            return(new GetQuantityResponse()
            {
                Quantity = result,
            });
        }
Exemple #5
0
        public GetMarginsResponse GetMargins(InstrumentAccountBaseRequest request)
        {
            this.Validator.Validate(request);

            double mmr = 0;
            double emr = 0;
            double lmr = 0;

            var result = this.Provider.getMargins(request.Instrument, Helpers.GetAccountRow(request.Account), ref mmr, ref emr, ref lmr);

            return(new GetMarginsResponse()
            {
                EMR = emr,
                LMR = lmr,
                MMR = mmr,
                ThreeMarginPolicy = result,
            });
        }
        public override void Validate(InstrumentAccountBaseRequest request)
        {
            base.Validate(request);

            this.ValidateAccountRow(request.Account);
        }
        public void ValidateInstrumentAccountBaseRequest()
        {
            // Null.
            {
                var v = Helpers.CreateInstance(__Type) as ITradingSettingsProviderValidator;
                InstrumentAccountBaseRequest r = null;

                AssertEx.Throws <ArgumentNullException>(() =>
                {
                    v.Validate(r);
                });
            }

            // Instrument null.
            {
                var v = Helpers.CreateInstance(__Type) as ITradingSettingsProviderValidator;
                InstrumentAccountBaseRequest r = new InstrumentAccountBaseRequest();
                r.Instrument = null;

                AssertEx.Throws <ArgumentNullException>(() =>
                {
                    v.Validate(r);
                });
            }

            // Instrument empty.
            {
                var v = Helpers.CreateInstance(__Type) as ITradingSettingsProviderValidator;
                InstrumentAccountBaseRequest r = new InstrumentAccountBaseRequest();
                r.Instrument = "";

                AssertEx.Throws <ArgumentNullException>(() =>
                {
                    v.Validate(r);
                });
            }

            // Account null.
            {
                var v = Helpers.CreateInstance(__Type) as ITradingSettingsProviderValidator;
                InstrumentAccountBaseRequest r = new InstrumentAccountBaseRequest();
                r.Instrument = "Test";
                r.Account    = null;

                AssertEx.Throws <ArgumentNullException>(() =>
                {
                    v.Validate(r);
                });
            }

            // Wrong account object type.
            {
                var v = Helpers.CreateInstance(__Type) as ITradingSettingsProviderValidator;
                InstrumentAccountBaseRequest r = new InstrumentAccountBaseRequest();
                r.Instrument = "Test";
                r.Account    = new AccountRow();

                AssertEx.Throws <ArgumentException>(() =>
                {
                    v.Validate(r);
                });
            }

            // Unable to test valid scenario, because instance of O2GAccountRow cannot be created
            // outside of ForexConnect.
        }