public bool Validate(TradeFileLine tradeFileLine)
        {
            var columns = tradeFileLine.LineColumns;

            if (columns.Count < 1)
            {
                return(false);
            }

            if (columns.Count < 3)
            {
                _log.Log($"WARN: Line {tradeFileLine.LineNo} malformed. Only {1} field(s) found.");
                return(false);
            }

            if (columns[0].Length != 6)
            {
                _log.Log($"WARN: Trade currencies on line {tradeFileLine.LineNo} malformed: '{columns[0]}'");
            }

            if (!int.TryParse(columns[1], out _))
            {
                _log.Log($"WARN: Trade amount on line {tradeFileLine.LineNo} not a valid integer: '{columns[1]}'");
            }

            if (!decimal.TryParse(columns[2], out _))
            {
                _log.Log($"WARN: Trade price on line {tradeFileLine.LineNo} not a valid decimal: '{columns[2]}'");
            }

            return(true);
        }
Beispiel #2
0
        public void ReturnsTradeRecord()
        {
            var tradeRecord = new TradeFileLine(1, "GPBUSD,100,0.2").AsTradeRecord();

            Assert.IsNotNull(tradeRecord);
            Assert.AreEqual("GPB", tradeRecord.SourceCurrency);
            Assert.AreEqual("USD", tradeRecord.DestinationCurrency);
            Assert.AreEqual(0.001f, tradeRecord.Lots);
            Assert.AreEqual(0.2m, tradeRecord.Price);
        }