public void GetTrendRanges_ReturnsProperCollectionOfTrendRanges()
        {
            //Arrange
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();
            List <TrendRangeDto>        dtos             = new List <TrendRangeDto>();
            TrendRange    range1 = getDefaultTrendRange();
            TrendRange    range2 = getDefaultTrendRange();
            TrendRange    range3 = getDefaultTrendRange();
            TrendRangeDto dto1   = range1.ToDto();
            TrendRangeDto dto2   = range2.ToDto();
            TrendRangeDto dto3   = range3.ToDto();

            dtos.AddRange(new TrendRangeDto[] { dto1, dto2, dto3 });

            mockedRepository.Setup(r => r.GetTrendRanges(1)).Returns(dtos);

            //Act
            TrendlineService service = new TrendlineService(mockedRepository.Object);
            var actualSimultations   = service.GetTrendRanges(1);

            //Assert
            IEnumerable <TrendRange> expectedTrendranges = new TrendRange[] { range1, range2, range3 };
            bool areEqual = expectedTrendranges.HasEqualItems(actualSimultations);

            Assert.IsTrue(areEqual);
        }
        public void GetTrendBreaks_ReturnsProperCollectionOfTrendBreaks()
        {
            //Arrange
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();
            List <TrendBreakDto>        dtos             = new List <TrendBreakDto>();
            TrendBreak    break1 = getDefaultTrendBreak();
            TrendBreak    break2 = getDefaultTrendBreak();
            TrendBreak    break3 = getDefaultTrendBreak();
            TrendBreakDto dto1   = break1.ToDto();
            TrendBreakDto dto2   = break2.ToDto();
            TrendBreakDto dto3   = break3.ToDto();

            dtos.AddRange(new TrendBreakDto[] { dto1, dto2, dto3 });

            mockedRepository.Setup(r => r.GetTrendBreaks(1)).Returns(dtos);

            //Act
            TrendlineService service = new TrendlineService(mockedRepository.Object);
            var actualSimultations   = service.GetTrendBreaks(1);

            //Assert
            IEnumerable <TrendBreak> expectedTrendBreaks = new TrendBreak[] { break1, break2, break3 };
            bool areEqual = expectedTrendBreaks.HasEqualItems(actualSimultations);

            Assert.IsTrue(areEqual);
        }
        public void GetTrendhitById_ReturnsAlwaysTheSameInstance()
        {
            //Arrange
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();
            List <TrendHitDto>          dtos             = new List <TrendHitDto>();
            TrendHitDto dto = new TrendHitDto()
            {
                Id = 1, Guid = "AC180C9B-E6D2-4138-8E0A-BE31FCE8626D", TrendlineId = 1, IndexNumber = 2, ExtremumType = 1, Value = 1.234, DistanceToLine = 0.0004, PreviousRangeGuid = null, NextRangeGuid = "89BFF378-F310-4A28-B753-00A0FF9A852C"
            };

            dtos.AddRange(new TrendHitDto[] { dto });
            mockedRepository.Setup(r => r.GetTrendHits(1)).Returns(dtos);
            mockedRepository.Setup(r => r.GetTrendHitById(1)).Returns(dto);

            //Act
            TrendlineService service = new TrendlineService(mockedRepository.Object);

            //Assert
            TrendHit baseTrendHit     = service.GetTrendHitById(1);
            TrendHit comparedTrendhit = service.GetTrendHitById(1);

            bool areTheSame = (baseTrendHit == comparedTrendhit);

            Assert.IsTrue(areTheSame);
        }
        public void UpdateTrendhits_AllItemsPassedToMethodArePassedToRepository()
        {
            //Arrange
            IEnumerable <TrendHitDto> trendhitDtos = null;
            TrendHit trendhit = new TrendHit(1, 2, ExtremumType.PeakByClose)
            {
                Id = 1, Guid = "AC180C9B-E6D2-4138-8E0A-BE31FCE8626D", Value = 1.234, DistanceToLine = 0.0004, PreviousRangeGuid = null, NextRangeGuid = "89BFF378-F310-4A28-B753-00A0FF9A852C"
            };
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();

            mockedRepository.
            Setup(r => r.UpdateTrendHits(It.IsAny <IEnumerable <TrendHitDto> >())).
            Callback <IEnumerable <TrendHitDto> >((col) => trendhitDtos = col).Verifiable();

            //Act
            TrendlineService service = new TrendlineService(mockedRepository.Object);

            service.UpdateTrendHit(trendhit);

            //Assert
            IEnumerable <TrendHitDto> expectedTrendhitDtos = new TrendHitDto[] { trendhit.ToDto() };

            mockedRepository.Verify(r => r.UpdateTrendHits(It.IsAny <IEnumerable <TrendHitDto> >()), Times.Exactly(1));
            Assert.IsTrue(trendhitDtos.HasEqualItems(expectedTrendhitDtos));
        }
        public void RemoveTrendline_ThisItemIsRemovedFromCache()
        {
            //Arrange
            IEnumerable <TrendlineDto> trendlineDtos = null;
            TrendlineDto trendlineDto = getDefaultTrendlineDto();
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();

            mockedRepository.Setup(r => r.GetTrendlineById(1)).Returns(trendlineDto);
            mockedRepository.
            Setup(r => r.RemoveTrendlines(It.IsAny <IEnumerable <TrendlineDto> >())).
            Callback <IEnumerable <TrendlineDto> >((col) => trendlineDtos = col).Verifiable();

            //Act
            TrendlineService service       = new TrendlineService(mockedRepository.Object);
            Trendline        trendline     = service.GetTrendlineById(1);
            TrendlineDto     nullTrendline = null;

            service.RemoveTrendline(trendline);
            mockedRepository.Setup(r => r.GetTrendlineById(1)).Returns(nullTrendline);

            //Assert
            Trendline actualTrendline = service.GetTrendlineById(1);

            Assert.IsNull(actualTrendline);
        }
        public void RemoveTrendlines_SignalIsSentToRepositoryToRemoveAllItems()
        {
            //Arrange
            IEnumerable <TrendlineDto> trendlineDtos = null;
            Trendline trendline1 = getDefaultTrendline();
            Trendline trendline2 = getDefaultTrendline();

            trendline2.Id = 2;
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();

            mockedRepository.
            Setup(r => r.RemoveTrendlines(It.IsAny <IEnumerable <TrendlineDto> >())).
            Callback <IEnumerable <TrendlineDto> >((col) => trendlineDtos = col).Verifiable();

            //Act
            TrendlineService service = new TrendlineService(mockedRepository.Object);

            service.RemoveTrendlines(new Trendline [] { trendline1, trendline2 });

            //Assert
            IEnumerable <TrendlineDto> expectedTrendlineDtos = new TrendlineDto[] { trendline1.ToDto(), trendline2.ToDto() };

            mockedRepository.Verify(r => r.RemoveTrendlines(It.IsAny <IEnumerable <TrendlineDto> >()), Times.Exactly(1));
            Assert.IsTrue(trendlineDtos.HasEqualItems(expectedTrendlineDtos));
        }
Beispiel #7
0
        public ActionResult GetDataSets(int assetId, int timeframeId)
        {
            IDataSetService   dataSetService   = new DataSetService();
            ITrendlineService trendlineService = new TrendlineService();

            IEnumerable <DataSet>       dataSets       = dataSetService.GetDataSets(assetId, timeframeId);
            IEnumerable <ExtremumGroup> extremumGroups = trendlineService.GetExtremumGroups(assetId, timeframeId);
            IEnumerable <Trendline>     trendlines     = trendlineService.GetVisibleTrendlines(assetId, timeframeId);
            var json = new { quotations = dataSets, extremumGroups = extremumGroups, trendlines = trendlines };

            return(Json(json, JsonRequestBehavior.AllowGet));
        }
        public void GetTrendBreakById_ReturnsNull_IfThereIsNoItemWithGivenCombination()
        {
            //Arrange
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();
            TrendBreakDto returnedDto = null;

            mockedRepository.Setup(r => r.GetTrendBreakById(1)).Returns(returnedDto);

            //Act
            TrendlineService service = new TrendlineService(mockedRepository.Object);

            //Assert
            TrendBreak baseTrendRange = service.GetTrendBreakById(1);

            Assert.IsNull(baseTrendRange);
        }
        public void GetTrendhits_ReturnsProperCollectionOfTrendhits()
        {
            //Arrange
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();
            List <TrendHitDto>          dtos             = new List <TrendHitDto>();
            TrendHitDto dto1 = new TrendHitDto()
            {
                Id = 1, Guid = "AC180C9B-E6D2-4138-8E0A-BE31FCE8626D", TrendlineId = 1, IndexNumber = 2, ExtremumType = 1, Value = 1.234, DistanceToLine = 0.0004, PreviousRangeGuid = null, NextRangeGuid = "89BFF378-F310-4A28-B753-00A0FF9A852C"
            };
            TrendHitDto dto2 = new TrendHitDto()
            {
                Id = 2, Guid = "89BFF378-F310-4A28-B753-00A0FF9A852C", TrendlineId = 1, IndexNumber = 9, ExtremumType = 2, Value = 1.345, DistanceToLine = 0.0007, PreviousRangeGuid = "AC180C9B-E6D2-4138-8E0A-BE31FCE8626D", NextRangeGuid = "A62DB207-FDDA-45B4-94F6-AE16F4CA9A58"
            };
            TrendHitDto dto3 = new TrendHitDto()
            {
                Id = 3, Guid = "A62DB207-FDDA-45B4-94F6-AE16F4CA9A58", TrendlineId = 1, IndexNumber = 18, ExtremumType = 2, Value = 1.567, DistanceToLine = 0.0002, PreviousRangeGuid = "89BFF378-F310-4A28-B753-00A0FF9A852C", NextRangeGuid = "89BFF378-F310-4A28-B753-00A0FF9A852C"
            };

            dtos.AddRange(new TrendHitDto[] { dto1, dto2, dto3 });

            mockedRepository.Setup(r => r.GetTrendHits(1)).Returns(dtos);

            //Act
            TrendlineService service = new TrendlineService(mockedRepository.Object);
            var actualSimultations   = service.GetTrendHits(1);

            //Assert
            List <TrendHit> expectedTrendhits = new List <TrendHit>();
            TrendHit        trendhit1         = new TrendHit(1, 2, ExtremumType.PeakByClose)
            {
                Id = 1, Guid = "AC180C9B-E6D2-4138-8E0A-BE31FCE8626D", Value = 1.234, DistanceToLine = 0.0004, PreviousRangeGuid = null, NextRangeGuid = "89BFF378-F310-4A28-B753-00A0FF9A852C"
            };
            TrendHit trendhit2 = new TrendHit(1, 9, ExtremumType.PeakByHigh)
            {
                Id = 2, Guid = "89BFF378-F310-4A28-B753-00A0FF9A852C", Value = 1.345, DistanceToLine = 0.0007, PreviousRangeGuid = "AC180C9B-E6D2-4138-8E0A-BE31FCE8626D", NextRangeGuid = "A62DB207-FDDA-45B4-94F6-AE16F4CA9A58"
            };
            TrendHit trendhit3 = new TrendHit(1, 18, ExtremumType.PeakByHigh)
            {
                Id = 3, Guid = "A62DB207-FDDA-45B4-94F6-AE16F4CA9A58", Value = 1.567, DistanceToLine = 0.0002, PreviousRangeGuid = "89BFF378-F310-4A28-B753-00A0FF9A852C", NextRangeGuid = "89BFF378-F310-4A28-B753-00A0FF9A852C"
            };

            expectedTrendhits.AddRange(new TrendHit[] { trendhit1, trendhit2, trendhit3 });
            bool areEqual = expectedTrendhits.HasEqualItems(actualSimultations);

            Assert.IsTrue(areEqual);
        }
        public void GetTrendBreakById_ReturnsProperItem_IfItemExists()
        {
            //Arrange
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();
            TrendBreak    trendBreak = getDefaultTrendBreak();
            TrendBreakDto dto        = trendBreak.ToDto();

            mockedRepository.Setup(r => r.GetTrendBreakById(1)).Returns(dto);

            //Act
            TrendlineService service = new TrendlineService(mockedRepository.Object);
            var actualTrendBreak     = service.GetTrendBreakById(1);

            //Assert
            bool areEqual = trendBreak.Equals(actualTrendBreak);

            Assert.IsTrue(areEqual);
        }
        public void GetTrendlineById_ReturnsProperItem_IfItemExists()
        {
            //Arrange
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();
            TrendlineDto trendlineDto = new TrendlineDto()
            {
                Id = 1, AssetId = DEFAULT_ASSET_ID, TimeframeId = DEFAULT_TIMEFRAME_ID, SimulationId = DEFAULT_SIMULATION_ID, StartIndex = 50, StartLevel = 1.1234, FootholdLevel = 1.1412, FootholdIndex = 72, LastUpdateIndex = 77, Value = 1.23
            };

            mockedRepository.Setup(r => r.GetTrendlineById(1)).Returns(trendlineDto);

            //Act
            TrendlineService service = new TrendlineService(mockedRepository.Object);
            var actualTrendline      = service.GetTrendlineById(1);

            //Assert
            Trendline expectedTrendline = new Trendline(trendlineDto);
            bool      areEqual          = expectedTrendline.Equals(actualTrendline);

            Assert.IsTrue(areEqual);
        }
        public void UpdateTrendlines_AllItemsPassedToMethodArePassedToRepository()
        {
            //Arrange
            IEnumerable <TrendlineDto> trendlineDtos = null;
            Trendline trendline = getDefaultTrendline();
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();

            mockedRepository.
            Setup(r => r.UpdateTrendlines(It.IsAny <IEnumerable <TrendlineDto> >())).
            Callback <IEnumerable <TrendlineDto> >((col) => trendlineDtos = col).Verifiable();

            //Act
            TrendlineService service = new TrendlineService(mockedRepository.Object);

            service.UpdateTrendline(trendline);

            //Assert
            IEnumerable <TrendlineDto> expectedTrendlineDtos = new TrendlineDto[] { trendline.ToDto() };

            mockedRepository.Verify(r => r.UpdateTrendlines(It.IsAny <IEnumerable <TrendlineDto> >()), Times.Exactly(1));
            Assert.IsTrue(trendlineDtos.HasEqualItems(expectedTrendlineDtos));
        }
        public void GetTrendBreakById_ReturnsAlwaysTheSameInstance()
        {
            //Arrange
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();
            List <TrendBreakDto>        dtos             = new List <TrendBreakDto>();
            TrendBreak    trendBreak = getDefaultTrendBreak();
            TrendBreakDto dto        = trendBreak.ToDto();

            dtos.AddRange(new TrendBreakDto[] { dto });
            mockedRepository.Setup(r => r.GetTrendBreaks(1)).Returns(dtos);
            mockedRepository.Setup(r => r.GetTrendBreakById(1)).Returns(dto);

            //Act
            TrendlineService service = new TrendlineService(mockedRepository.Object);

            //Assert
            TrendBreak baseTrendBreak     = service.GetTrendBreakById(1);
            TrendBreak comparedTrendBreak = service.GetTrendBreakById(1);

            bool areTheSame = (baseTrendBreak == comparedTrendBreak);

            Assert.IsTrue(areTheSame);
        }
        public void GetTrendlines_ReturnsProperCollectionOfTrendlines()
        {
            //Arrange
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();
            List <TrendlineDto>         dtos             = new List <TrendlineDto>();
            TrendlineDto trendlineDto1 = new TrendlineDto()
            {
                Id = 1, AssetId = DEFAULT_ASSET_ID, TimeframeId = DEFAULT_TIMEFRAME_ID, SimulationId = DEFAULT_SIMULATION_ID, StartIndex = 50, StartLevel = 1.1234, FootholdLevel = 1.1412, FootholdIndex = 72, LastUpdateIndex = 77, Value = 1.23
            };
            TrendlineDto trendlineDto2 = new TrendlineDto()
            {
                Id = 2, AssetId = DEFAULT_ASSET_ID, TimeframeId = DEFAULT_TIMEFRAME_ID, SimulationId = DEFAULT_SIMULATION_ID, StartIndex = 64, StartLevel = 1.1276, FootholdLevel = 1.1412, FootholdIndex = 72, LastUpdateIndex = 77, Value = 1.49
            };
            TrendlineDto trendlineDto3 = new TrendlineDto()
            {
                Id = 3, AssetId = DEFAULT_ASSET_ID, TimeframeId = DEFAULT_TIMEFRAME_ID, SimulationId = DEFAULT_SIMULATION_ID, StartIndex = 81, StartLevel = 1.1315, FootholdLevel = 1.1412, FootholdIndex = 72, LastUpdateIndex = 77, Value = 2.16
            };

            dtos.AddRange(new TrendlineDto[] { trendlineDto1, trendlineDto2, trendlineDto3 });

            mockedRepository.Setup(r => r.GetTrendlines(DEFAULT_ASSET_ID, DEFAULT_TIMEFRAME_ID, DEFAULT_SIMULATION_ID)).Returns(dtos);

            //Act
            TrendlineService service = new TrendlineService(mockedRepository.Object);
            var actualSimultations   = service.GetTrendlines(DEFAULT_ASSET_ID, DEFAULT_TIMEFRAME_ID, DEFAULT_SIMULATION_ID);

            //Assert
            List <Trendline> expectedTrendlines = new List <Trendline>();
            Trendline        trendline1         = new Trendline(trendlineDto1);
            Trendline        trendline2         = new Trendline(trendlineDto2);
            Trendline        trendline3         = new Trendline(trendlineDto3);;

            expectedTrendlines.AddRange(new Trendline[] { trendline1, trendline2, trendline3 });
            bool areEqual = expectedTrendlines.HasEqualItems(actualSimultations);

            Assert.IsTrue(areEqual);
        }
        public void GetTrendlineById_ReturnsAlwaysTheSameInstance()
        {
            //Arrange
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();
            List <TrendlineDto>         dtos             = new List <TrendlineDto>();
            TrendlineDto trendlineDto1 = new TrendlineDto()
            {
                Id = 1, AssetId = DEFAULT_ASSET_ID, TimeframeId = DEFAULT_TIMEFRAME_ID, SimulationId = DEFAULT_SIMULATION_ID, StartIndex = 50, StartLevel = 1.1234, FootholdLevel = 1.1412, FootholdIndex = 72, LastUpdateIndex = 77, Value = 1.23
            };

            dtos.AddRange(new TrendlineDto[] { trendlineDto1 });
            mockedRepository.Setup(r => r.GetTrendlines(DEFAULT_ASSET_ID, DEFAULT_TIMEFRAME_ID, DEFAULT_SIMULATION_ID)).Returns(dtos);

            //Act
            TrendlineService service = new TrendlineService(mockedRepository.Object);

            //Assert
            Trendline baseTrendline     = service.GetTrendlineById(1);
            Trendline comparedTrendline = service.GetTrendlineById(1);

            bool areTheSame = (baseTrendline == comparedTrendline);

            Assert.IsTrue(areTheSame);
        }
        public void UpdateTrendBreaks_AllItemsPassedToMethodArePassedToRepository()
        {
            //Arrange
            List <TrendBreakDto>        trendBreakDtos   = new List <TrendBreakDto>();
            TrendBreak                  trendBreak       = getDefaultTrendBreak();
            TrendBreak                  trendBreak2      = getDefaultTrendBreak();
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();

            mockedRepository.
            Setup(r => r.UpdateTrendBreaks(It.IsAny <IEnumerable <TrendBreakDto> >())).
            Callback <IEnumerable <TrendBreakDto> >((col) => trendBreakDtos.AddRange(col)).Verifiable();

            //Act
            TrendlineService service = new TrendlineService(mockedRepository.Object);

            service.UpdateTrendBreak(trendBreak);
            service.UpdateTrendBreak(trendBreak2);

            //Assert
            IEnumerable <TrendBreakDto> expectedTrendBreakDtos = new TrendBreakDto[] { trendBreak.ToDto(), trendBreak2.ToDto() };

            mockedRepository.Verify(r => r.UpdateTrendBreaks(It.IsAny <IEnumerable <TrendBreakDto> >()), Times.Exactly(2));
            Assert.IsTrue(trendBreakDtos.HasEqualItems(expectedTrendBreakDtos));
        }
        public void GetTrendhitById_ReturnsProperItem_IfItemExists()
        {
            //Arrange
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();
            TrendHitDto dto = new TrendHitDto()
            {
                Id = 1, Guid = "AC180C9B-E6D2-4138-8E0A-BE31FCE8626D", TrendlineId = 1, IndexNumber = 2, ExtremumType = 1, Value = 1.234, DistanceToLine = 0.0004, PreviousRangeGuid = null, NextRangeGuid = "89BFF378-F310-4A28-B753-00A0FF9A852C"
            };

            mockedRepository.Setup(r => r.GetTrendHitById(1)).Returns(dto);

            //Act
            TrendlineService service = new TrendlineService(mockedRepository.Object);
            var actualTrendhit       = service.GetTrendHitById(1);

            //Assert
            TrendHit expectedTrendhit = new TrendHit(1, 2, ExtremumType.PeakByClose)
            {
                Id = 1, Guid = "AC180C9B-E6D2-4138-8E0A-BE31FCE8626D", Value = 1.234, DistanceToLine = 0.0004, PreviousRangeGuid = null, NextRangeGuid = "89BFF378-F310-4A28-B753-00A0FF9A852C"
            };
            bool areEqual = expectedTrendhit.Equals(actualTrendhit);

            Assert.IsTrue(areEqual);
        }