public void Should_Calculate_Stats_For_A_Valid_CusipData()
        {
            //Arrange
            var cusipObject = new CUSIP()
            {
                Id         = "cusip-1",
                PriceTicks = new List <double>()
                {
                    11.11,
                    10.05,
                    20.10,
                    10.05,
                    30.15,
                    10.05,
                    40.20,
                    33.33
                }
            };
            var objStatsCalculator = new CusipStatsCalculator();

            //Act
            CusipResult result = objStatsCalculator.Calculate(cusipObject);

            //Assert
            result.CUSIP.Should().Be("cusip-1");
            result.Lowest.Should().Be(10.05);
            result.Highest.Should().Be(40.20);
            result.Opening.Should().Be(11.11);
            result.Closing.Should().Be(33.33);
        }
예제 #2
0
        public void Should_ThrowException_For_InValid_InputFile()
        {
            //Arrange
            var fileManager         = new LocalFileManager();
            var fileStatsCalculator = new CusipStatsCalculator();
            var cusipFileUtilObj    = new CusipFileUtil(fileManager, fileStatsCalculator);
            var dataFile            = @"NonExistingFile.txt";

            //Act
            Action act = () => cusipFileUtilObj.ExtractStats(dataFile);

            //Assert
            act.Should().Throw <Exception>().WithMessage("File doesn't exist!!");
        }
예제 #3
0
        public void Should_GenerateResult_For_Valid_InputFile()
        {
            //Arrange
            var fileManager         = new LocalFileManager();
            var fileStatsCalculator = new CusipStatsCalculator();
            var cusipFileUtilObj    = new CusipFileUtil(fileManager, fileStatsCalculator);
            var dataFile            = @"Data/ValidData.txt";

            //Act
            IList <CusipResult> results = cusipFileUtilObj.ExtractStats(dataFile);

            //Assert
            results.Should().NotBeNull();
            results.Count.Should().Be(2);
        }
예제 #4
0
        public void Should_GenerateResult_For_Valid_Inputs_Case1()
        {
            //Arrange
            var fileManager         = A.Fake <IFileManager>();
            var fileStatsCalculator = new CusipStatsCalculator();
            var cusipFileUtilObj    = new CusipFileUtil(fileManager, fileStatsCalculator);

            A.CallTo(() => fileManager.Read("SomeValidFile.txt")).Returns(GenerateStreamFromString("CUSIP-1|11.11|21.56|9.3|17.18|99.99|CUSIP-2|22.22|0.5|0.1|5.8|88.88|"));

            //Act
            IList <CusipResult> results = cusipFileUtilObj.ExtractStats("SomeValidFile.txt");

            //Assert
            results.Should().NotBeNull();
            results.Count.Should().Be(2);
        }
예제 #5
0
        public void Should_Ignore_Cusip_With_NoPriceTicks()
        {
            //Arrange
            var fileManager         = A.Fake <IFileManager>();
            var fileStatsCalculator = new CusipStatsCalculator();
            var cusipFileUtilObj    = new CusipFileUtil(fileManager, fileStatsCalculator);

            A.CallTo(() => fileManager.Read("SomeValidFile.txt")).Returns(GenerateStreamFromString("DUMMYCUSIP-With-NoData1|CUSIP-1|11.11|21.56|9.3|17.18|99.99|DUMMYCUSIP-With-NoData-2|"));

            //Act
            IList <CusipResult> results = cusipFileUtilObj.ExtractStats("SomeValidFile.txt");

            //Assert
            results.Should().NotBeNull();
            results.Count.Should().Be(1);
            results.First().CUSIP.Should().Be("CUSIP-1");
        }
        public void Should_Handle_Empty_CusipData()
        {
            //Arrange
            var cusipObject = new CUSIP()
            {
                Id         = "cusip-1",
                PriceTicks = null
            };
            var objStatsCalculator = new CusipStatsCalculator();

            //Act
            CusipResult result = objStatsCalculator.Calculate(cusipObject);

            //Assert
            result.CUSIP.Should().Be("cusip-1");
            result.Lowest.Should().Be(-1);
            result.Highest.Should().Be(-1);
            result.Opening.Should().Be(-1);
            result.Closing.Should().Be(-1);
        }
예제 #7
0
        public void Should_GenerateResult_For_Valid_Inputs()
        {
            //Arrange
            var fileManager         = A.Fake <IFileManager>();
            var fileStatsCalculator = new CusipStatsCalculator();
            var cusipFileUtilObj    = new CusipFileUtil(fileManager, fileStatsCalculator);

            A.CallTo(() => fileManager.Read("SomeValidFile.txt")).Returns(GenerateStreamFromString("CUSIP-1|11.11|21.56|9.3|17.18|99.99|"));

            //Act
            IList <CusipResult> results = cusipFileUtilObj.ExtractStats("SomeValidFile.txt");

            //Assert
            results.Should().NotBeNull();
            results.Count.Should().Be(1);
            results.First().CUSIP.Should().Be("CUSIP-1");
            results.First().Lowest.Should().Be(9.3);
            results.First().Highest.Should().Be(99.99);
            results.First().Opening.Should().Be(11.11);
            results.First().Closing.Should().Be(99.99);
        }