예제 #1
0
        public void Session_CloseJournalFiles_ReInitializesCommodityPool()
        {
            Session session = new Session();

            Journal       journal1 = session.Journal;
            CommodityPool pool1    = CommodityPool.Current;

            session.CloseJournalFiles();

            Assert.AreNotEqual(journal1, session.Journal);
            Assert.AreNotEqual(pool1, CommodityPool.Current);
        }
예제 #2
0
        public void CommodityPool_CommodityQuoteFromScript_SetsNoMarkedFlagInCaseOfFailure()
        {
            Commodity commodity1 = CommodityPool.Current.Create("QUO1"); commodity1.QualifiedSymbol = "QUO1";

            TestQuoteProvider quoteProvider = new TestQuoteProvider()
            {
                ResultGet = false
            };

            MainApplicationContext.Current.SetQuoteProvider(() => quoteProvider);

            var result = CommodityPool.CommodityQuoteFromScript(commodity1, null);

            Assert.IsNull(result);
            Assert.IsTrue(commodity1.Flags.HasFlag(CommodityFlagsEnum.COMMODITY_NOMARKET));
        }
예제 #3
0
        public void CommodityPool_CommodityQuoteFromScript_ReturnsPricePointInCaseOfSuccess()
        {
            Commodity commodity1 = CommodityPool.Current.Create("QUO1");
            Commodity commodity2 = CommodityPool.Current.Create("QUO2");

            TestQuoteProvider quoteProvider = new TestQuoteProvider()
            {
                ResultGet = true, ResultResponse = "2010/10/10 10:11:12 AAPL $100.00"
            };

            MainApplicationContext.Current.SetQuoteProvider(() => quoteProvider);

            var result = CommodityPool.CommodityQuoteFromScript(commodity1, null);

            Assert.IsNotNull(result);
            Assert.AreEqual(new DateTime(2010, 10, 10, 10, 11, 12), result.Value.When);
            Assert.AreEqual("$100", result.Value.Price.ToString());
        }
예제 #4
0
        public void CommodityPool_CommodityQuoteFromScript_AddsCommoditiesToCommand()
        {
            Commodity commodity1 = CommodityPool.Current.Create("QUO1"); commodity1.QualifiedSymbol = "QUO1";
            Commodity commodity2 = CommodityPool.Current.Create("QUO2"); commodity2.QualifiedSymbol = "QUO2";

            TestQuoteProvider quoteProvider = new TestQuoteProvider()
            {
                ResultGet = true, ResultResponse = String.Empty
            };

            MainApplicationContext.Current.SetQuoteProvider(() => quoteProvider);

            CommodityPool.CommodityQuoteFromScript(commodity1, null);
            Assert.AreEqual("getquote \"QUO1\" \"\"", quoteProvider.ReceivedCommand);

            CommodityPool.CommodityQuoteFromScript(commodity1, commodity2);
            Assert.AreEqual("getquote \"QUO1\" \"QUO2\"", quoteProvider.ReceivedCommand);
        }
예제 #5
0
        public void Amount_ParseConversion_SetsUpConversionCommodities()
        {
            CommodityPool.Cleanup();
            Amount.ParseConversion("1.0m", "60s");

            Commodity larger = CommodityPool.Current.Find("m");

            Assert.AreEqual("m", larger.Symbol);
            Assert.IsNull(larger.Larger);
            Assert.IsNotNull(larger.Smaller);
            Assert.AreEqual("s", larger.Smaller.Commodity.Symbol);
            Assert.AreEqual(60, larger.Smaller.Quantity.ToLong());

            Commodity smaller = CommodityPool.Current.Find("s");

            Assert.AreEqual("s", smaller.Symbol);
            Assert.IsNotNull(smaller.Larger);
            Assert.IsNull(smaller.Smaller);
            Assert.AreEqual("m", smaller.Larger.Commodity.Symbol);
            Assert.AreEqual(60, smaller.Larger.Quantity.ToLong());
        }