Esempio n. 1
0
        public void UpdateStock_WhenStockDoesNotExists_ThrowsException()
        {
            // Arrange
            var stockCollection = new StockCollection();
            var stock           = new Stock();

            stock.StockSymbol   = "TEA";
            stock.StockType     = GBCEStockType.Common;
            stock.LastDividend  = 0;
            stock.FixedDividend = 2;
            stock.ParValue      = 100;

            var stockUpdate = new Stock();

            stockUpdate.StockSymbol   = "POP";
            stockUpdate.StockType     = GBCEStockType.Common;
            stockUpdate.LastDividend  = 10;
            stockUpdate.FixedDividend = null;
            stockUpdate.ParValue      = 100;

            try
            {
                // Act
                stockCollection.AddStock(stock);
                stockCollection.UpdateStock(stockUpdate);
            }
            catch (Exception ex)
            {
                StringAssert.Contains(ex.Message, StockCollection.StockNotFound);
                return;
            }

            Assert.Fail("Expected Exception not thrown");
        }
Esempio n. 2
0
        public void AddStock_WhenStockExists_ShouldThrowException()
        {
            // Arrange
            var stockCollection = new StockCollection();
            var stock           = new Stock();

            stock.StockSymbol   = "TEA";
            stock.StockType     = GBCEStockType.Common;
            stock.LastDividend  = 0;
            stock.FixedDividend = 2;
            stock.ParValue      = 100;

            try
            {
                // Act
                stockCollection.AddStock(stock);
                stockCollection.AddStock(stock);
            }
            catch (Exception ex)
            {
                // Assert
                StringAssert.Contains(ex.Message, StockCollection.StockAlreadyExists);
                return;
            }
            Assert.Fail("Expected exception was not thrown");
        }
Esempio n. 3
0
        public void UpdateStock_WhenStockExists()
        {
            // Arrange
            var stockCollection = new StockCollection();
            var stock           = new Stock();

            stock.StockSymbol   = "TEA";
            stock.StockType     = GBCEStockType.Common;
            stock.LastDividend  = 0;
            stock.FixedDividend = 2;
            stock.ParValue      = 100;

            var stockUpdate = new Stock();

            stockUpdate.StockSymbol   = "TEA";
            stockUpdate.StockType     = GBCEStockType.Common;
            stockUpdate.LastDividend  = 10;
            stockUpdate.FixedDividend = null;
            stockUpdate.ParValue      = 100;

            // Act
            stockCollection.AddStock(stock);
            stockCollection.UpdateStock(stockUpdate);
            var updatedStock = stockCollection.GetStock(stock.StockSymbol);

            // Assert
            Assert.AreEqual(stockUpdate.StockSymbol, updatedStock.StockSymbol);
            Assert.AreEqual(stockUpdate.StockType, updatedStock.StockType);
            Assert.AreEqual(stockUpdate.LastDividend, updatedStock.LastDividend);
            Assert.AreEqual(stockUpdate.FixedDividend, updatedStock.FixedDividend);
            Assert.AreEqual(stockUpdate.ParValue, updatedStock.ParValue);
        }
Esempio n. 4
0
        private StockCollection Stocks; // Main collection of stocks

        #endregion Fields

        #region Constructors

        Program()
        {
            // Initialize collection
            Stocks = new StockCollection();

            // Populate "database"
            Stocks.Add(new CommonStock("TEA", 0, 100));
            Stocks.Add(new CommonStock("POP", 8, 100));
            Stocks.Add(new CommonStock("ALE", 23, 60));
            Stocks.Add(new PreferredStock("GIN", 8, .02f, 100));
            Stocks.Add(new CommonStock("JOE", 13, 250));
        }
        public void when_I_add_a_stock__the_stock_is_added_and_the_changed_event_is_fired()
        {
            var stockCollection = new StockCollection();

            stockCollection.MonitorEvents();

            stockCollection.Add("MSFT", 11, 25, "12/12/2012");

            stockCollection.EnumerateStocks().Should().HaveCount(1);
            stockCollection.EnumerateStocks().First().Ticker.Should().Be("MSFT");
            stockCollection.ShouldRaise(nameof(StockCollection.Changed));
        }
 public static List <StockValue> GetStockValues(StockCollection stockCollection, V_GetStockPriceDelegate getStockPrice)
 {
     return(stockCollection.EnumerateStocks()
            .Select(stock =>
                    new
     {
         Stock = stock,
         Price = getStockPrice(stock.Ticker)
     })
            .Select(t => new StockValue(t.Stock, t.Price, t.Stock.GetCurrentValue(t.Price), t.Stock.GetGain(t.Price)))
            .ToList());
 }
        public void when_I_remove_all_stocks__the_stocks_are_removed_and_the_changed_event_is_fired()
        {
            var stockCollection = new StockCollection();

            stockCollection.Add("MSFT", 11, 25, "12/12/2012");
            stockCollection.Add("GOOG", 12, 26, "10/10/2013");
            stockCollection.MonitorEvents();

            stockCollection.RemoveAll();

            stockCollection.EnumerateStocks().Should().BeEmpty();
            stockCollection.ShouldRaise(nameof(StockCollection.Changed));
        }
Esempio n. 8
0
        public StockCollection Get(int countPerPage, int page)
        {
            _stockCollection            = _xmlToCollection.Execute();
            _stockCollection.StockCount = _stockCollection.Stocks.Count;

            var tempResult = new StockCollection()
            {
                Stocks     = _stockCollection.Stocks.Skip(countPerPage * (page - 1)).Take(countPerPage).ToList(),
                StockCount = _stockCollection.StockCount
            };

            return(tempResult);
        }
        public void when_I_create_a_stock_collection__it_contains_those_stocks()
        {
            var stocks = new List <Stock>
            {
                new Stock("MSFT", 11, 25, "12/12/2012"),
                new Stock("F", 7, 12, "11/11/2011")
            };

            var stockCollection = new StockCollection(stocks);

            stockCollection.EnumerateStocks().Should().HaveCount(2);
            stockCollection.EnumerateStocks().First().Ticker.Should().Be("MSFT");
            stockCollection.EnumerateStocks().Skip(1).First().Ticker.Should().Be("F");
        }
Esempio n. 10
0
        public void CheckStockExists_WhenStockDoesntExists()
        {
            // Arrange
            var stockCollection = new StockCollection();
            var stock           = new Stock();

            stock.StockSymbol   = "TEA";
            stock.StockType     = GBCEStockType.Common;
            stock.LastDividend  = 0;
            stock.FixedDividend = 2;
            stock.ParValue      = 100;

            //Act
            stockCollection.AddStock(stock);

            // Assert
            Assert.IsFalse(stockCollection.StockExists("POP"));
        }
Esempio n. 11
0
        public void TestStockCollectionGeometricMean()
        {
            StockCollection stocks = new StockCollection();

            GenericStock stock1 = new CommonStock("TS1", 5, 100);
            GenericStock stock2 = new CommonStock("TS2", 10, 100);
            GenericStock stock3 = new CommonStock("TS3", 15, 100);

            stocks.Add(stock1);
            stocks.Add(stock2);
            stocks.Add(stock3);

            float gm;

            // If no any prices => no result
            gm = stocks.GetGeometricMean();
            Assert.AreEqual(float.NaN, gm);

            float price1 = 110;
            float price2 = 50;
            float price3 = 10;

            stock1.LastPrice = price1;
            stock2.LastPrice = price2;

            // If there is at least one stock w/o price => no result
            gm = stocks.GetGeometricMean();
            Assert.AreEqual(float.NaN, gm);

            stock3.LastPrice = price3;

            // result is the 3-sq of price1*price2*price3
            gm = stocks.GetGeometricMean();
            float mul = 1.0f;

            mul *= price1;
            mul *= price2;
            mul *= price3;
            float nsq = 1f / 3;

            Assert.AreEqual(Math.Pow(mul, nsq), gm, 0.0001f);
        }
Esempio n. 12
0
        public void SellTest_WhenStockExists()
        {
            // Arrange
            var stocklist = new StockCollection();

            stocklist.AddStock(GetNewStock()); // TEA stock
            var tradeLedger = new TradeLedger(stocklist);

            try
            {
                // Act
                tradeLedger.Sell("TEA", DateTime.Now, 1000, 50);
            }
            catch (Exception ex)
            {
                // Assert

                Assert.Fail(ex.Message);
            }
        }
Esempio n. 13
0
        public void SellTest_WhenStockDoesntExists()
        {
            // Arrange
            var stocklist = new StockCollection();

            stocklist.AddStock(GetNewStock()); // TEA stock
            var tradeLedger = new TradeLedger(stocklist);

            try
            {
                // Act
                tradeLedger.Sell("POP", DateTime.Now, 1000, 50);
            }
            catch (Exception ex)
            {
                // Assert
                StringAssert.Contains(ex.InnerException.Message, TradeLedger.StockDoesNotExistInStockList);
                return;
            }
            Assert.Fail("Expected exception was not thrown");
        }
        public void when_I_call_GetStockValues__the_stock_values_are_correct()
        {
            var stocks = new StockCollection();

            stocks.Add("MSFT", 100, 100, "5/10/2020");
            stocks.Add("GOOG", 300, 400, "6/10/2020");

            var stockPrices = new Dictionary <string, double>
            {
                { "MSFT", 225.0 },
                { "GOOG", 433.0 }
            };
            V_GetStockPriceDelegate getStockPrice = stockTicker => stockPrices[stockTicker];

            var stockValues = V_StockValuator.GetStockValues(stocks, getStockPrice);

            stockValues.Should().Equal(
                new StockValue(new Stock("MSFT", 100, 100, "5/10/2020"), 225.0, 22500.0, 12500.0),
                new StockValue(new Stock("GOOG", 300, 400, "6/10/2020"), 433.0, 129900.0, 9900.0)
                );
        }
Esempio n. 15
0
        public void TestStockCollectionGeometricMean()
        {
            StockCollection stocks = new StockCollection();

            GenericStock stock1 = new CommonStock("TS1", 5, 100);
            GenericStock stock2 = new CommonStock("TS2", 10, 100);
            GenericStock stock3 = new CommonStock("TS3", 15, 100);
            stocks.Add(stock1);
            stocks.Add(stock2);
            stocks.Add(stock3);

            float gm;

            // If no any prices => no result
            gm = stocks.GetGeometricMean();
            Assert.AreEqual(float.NaN, gm);

            float price1 = 110;
            float price2 = 50;
            float price3 = 10;

            stock1.LastPrice = price1;
            stock2.LastPrice = price2;

            // If there is at least one stock w/o price => no result
            gm = stocks.GetGeometricMean();
            Assert.AreEqual(float.NaN, gm);

            stock3.LastPrice = price3;

            // result is the 3-sq of price1*price2*price3
            gm = stocks.GetGeometricMean();
            float mul = 1.0f;
            mul *= price1;
            mul *= price2;
            mul *= price3;
            float nsq = 1f / 3;
            Assert.AreEqual(Math.Pow(mul, nsq), gm, 0.0001f);
        }
Esempio n. 16
0
        public void AddStock_WhenStockDoesntExists()
        {
            // Arrange
            var stockCollection = new StockCollection();
            var stock           = new Stock();

            stock.StockSymbol   = "TEA";
            stock.StockType     = GBCEStockType.Common;
            stock.LastDividend  = 0;
            stock.FixedDividend = 2;
            stock.ParValue      = 100;

            // Act
            try
            {
                stockCollection.AddStock(stock);
            }
            catch
            {
                // Assert
                Assert.Fail();
            }
        }
        public IActionResult CreatePDF(int countPerPage = 10, int page = 1)
        {
            _stockCollection = _xmlToCollection.Execute();

            List <Stock> list = _stockCollection.Stocks.Skip(countPerPage * (page - 1)).Take(countPerPage).ToList();

            var globalSettings = new GlobalSettings
            {
                ColorMode   = ColorMode.Color,
                Orientation = Orientation.Portrait,
                PaperSize   = PaperKind.A4,
                Margins     = new MarginSettings {
                    Top = 10
                },
                DocumentTitle = "PDF Reports",
            };

            var objectSetting = new ObjectSettings
            {
                PagesCount     = true,
                HtmlContent    = TemplateGenerator.GetHTMLString(list),
                WebSettings    = { DefaultEncoding = "utf-8", UserStyleSheet = Path.Combine(Directory.GetCurrentDirectory(), "Assets", "style.css") },
                HeaderSettings = { FontName = "Arial", FontSize = 12, Right = "Page [Page] of [toPage]", Line = true },
                FooterSettings = { FontName = "Arial", FontSize = 12, Center = "Report Footer", Line = true }
            };

            var pdf = new HtmlToPdfDocument
            {
                GlobalSettings = globalSettings,
                Objects        = { objectSetting }
            };

            var file = _converter.Convert(pdf);


            return(File(file, "application/pdf"));
        }
Esempio n. 18
0
        public void RemoveStock_WhenStockExists()
        {
            // Arrange
            var stockCollection = new StockCollection();
            var stock           = new Stock();

            stock.StockSymbol   = "TEA";
            stock.StockType     = GBCEStockType.Common;
            stock.LastDividend  = 0;
            stock.FixedDividend = 2;
            stock.ParValue      = 100;

            try
            {
                // Act
                stockCollection.AddStock(stock);
                stockCollection.RemoveStock("TEA");
            }
            catch (Exception ex)
            {
                // Assert
                Assert.Fail();
            }
        }
Esempio n. 19
0
 private bool HasInStockList(Stock stock, StockCollection list, out int stockDefIndex)
 {
     int count = 0;
     foreach (Stock stockDefect in list)
     {
         if(stockDefect.StockId == stock.StockId)
         {
             stockDefIndex = count;
             return true;
         }
         count += 1;
     }
     stockDefIndex = count;
     return false;
 }
Esempio n. 20
0
        private void InventoryCheckingForm_Load(object sender, EventArgs e)
        {
            /*if(!DepartmentChecking)
            {*/
                stockViewList = new StockViewCollection(bdsProductMasters);
                bdsProductMasters.DataSource = stockViewList;
                bdsProductMasters.ResetBindings(true);
                stockList = new StockCollection(bdsStockDefect);
                bdsStockDefect.DataSource = stockList;
                bdsStockDefect.ResetBindings(true);

            /*}
            else
            {
                deptStockDefectList = new DepartmentStockDefectCollection(bdsStockDefect);
                bdsStockDefect.DataSource = stockList;
                bdsStockDefect.ResetBindings(true);
            }*/

            //cboProductMasters.DisplayMember = "ProductMaster.TypeAndName";
            //LoadGoodsToCombo();

            txtSum.ForeColor = Color.Green;
            txtRealitySum.ForeColor = Color.Red;
        }
Esempio n. 21
0
 private bool HasInStockList(Stock stock, StockCollection list, out int stockDefIndex)
 {
     int count = -1;
     foreach (Stock stockDefect in list)
     {
         if(stockDefect.Product.ProductId.Equals(stock.Product.ProductId))
         {
             stockDefIndex = count;
             return true;
         }
         count += 1;
     }
     stockDefIndex = count;
     return false;
 }
Esempio n. 22
0
 private int GetIndexFromList(Stock stock, StockCollection collection)
 {
     for(int i=0;i<collection.Count;i++)
     {
         if(collection[i].Product.ProductId.Equals(stock.Product.ProductId))
         {
             return i;
         }
     }
     return -1;
 }
Esempio n. 23
0
 private Stock GetFromStockList(Stock stock, StockCollection collection)
 {
     foreach (Stock stockChecked in collection)
     {
         if (stockChecked.Product.ProductId.Equals(stock.Product.ProductId))
         {
             return stockChecked;
         }
     }
     return null;
 }
Esempio n. 24
0
        private void ProcessErrorGoodsForm_Load(object sender, EventArgs e)
        {
            if (!DepartmentProcessing)
            {
                returnGoodsList = new StockOutDetailCollection(bdsReturnGoods);
                tempStockOutList = new StockOutDetailCollection(bdsTempStockOut);
                destroyGoodsList = new StockOutDetailCollection(bdsDestroyGoods);
                stockDefectList = new StockCollection(bdsStockDefect);

                bdsReturnGoods.ResetBindings(true);
                bdsTempStockOut.ResetBindings(true);
                bdsDestroyGoods.ResetBindings(true);
                bdsStockDefect.ResetBindings(true);

                LoadStockDefects();
            }
            else
            {
                deptReturnGoodsList= new DepartmentStockOutDetailCollection(bdsReturnGoods);
                deptTempStockOutList= new DepartmentStockOutDetailCollection(bdsTempStockOut);
                deptDestroyGoodsList= new DepartmentStockOutDetailCollection(bdsDestroyGoods);
                deptStockDefectList= new DepartmentStockCollection(bdsStockDefect);
                bdsReturnGoods.ResetBindings(true);
                bdsTempStockOut.ResetBindings(true);
                bdsDestroyGoods.ResetBindings(true);
                bdsStockDefect.ResetBindings(true);
                lblReturnGoods.Text = "Trả hàng lỗi về cho kho chính";
                LoadDepartmentStockDefects();
            }
        }
        public void when_I_create_an_empty_stock_collection__it_contains_no_stocks()
        {
            var stockCollection = new StockCollection();

            stockCollection.EnumerateStocks().Should().BeEmpty();
        }
Esempio n. 26
0
        private void TemporaryStockOutForm_Load(object sender, EventArgs e)
        {
            stockViewList = new StockViewCollection(bdsProductMasters);
            bdsProductMasters.DataSource = stockViewList;
            bdsProductMasters.ResetBindings(true);

            if (!DepartmentReturnForm)
            {
                stockDefectList = new StockCollection(bdsStockDefect);
                bdsStockDefect.DataSource = stockDefectList;
                bdsStockDefect.ResetBindings(true);

                stockOutList = new StockOutDetailCollection(bdsStockOut);
                bdsStockOut.DataSource = stockOutList;
                bdsStockOut.ResetBindings(true);
                LoadGoodsToCombo();
            }
            else
            {
                deptStockDefectList = new DepartmentStockDefectCollection(bdsStockDefect);
                bdsStockDefect.DataSource = deptStockDefectList;
                bdsStockDefect.ResetBindings(true);

                deptStockOutList = new DepartmentStockOutDetailCollection(bdsStockOut);
                bdsStockOut.DataSource = deptStockOutList;
                bdsStockOut.ResetBindings(true);

                rdoTraHang.Visible = false;
                rdoTamXuat.Visible = false;
                lblTitle.Text = " TRẢ HÀNG VỀ KHO CHÍNH";
                lblStockOut.Text = " Trả hàng về kho chính";
                LoadDeptGoodsToCombo();
            }
        }