Example #1
0
        public void ToDto_returnProperDto()
        {
            //Act
            var trendHit = new TrendHit(DEFAULT_TRENDLINE_ID, DEFAULT_INDEX_NUMBER, DEFAULT_EXTREMUM_TYPE)
            {
                Id                = DEFAULT_ID,
                Value             = DEFAULT_VALUE,
                DistanceToLine    = DEFAULT_DISTANCE_TO_LINE,
                PreviousRangeGuid = DEFAULT_PREVIOUS_RANGE_GUID,
                NextRangeGuid     = null
            };
            var guid        = trendHit.Guid;
            var trendHitDto = trendHit.ToDto();

            //Assert.
            Assert.AreEqual(DEFAULT_ID, trendHitDto.Id);
            Assert.AreEqual(guid, trendHitDto.Guid);
            Assert.AreEqual(DEFAULT_TRENDLINE_ID, trendHitDto.TrendlineId);
            Assert.AreEqual(DEFAULT_INDEX_NUMBER, trendHitDto.IndexNumber);
            Assert.AreEqual(DEFAULT_EXTREMUM_TYPE, trendHitDto.ExtremumType);
            Assert.AreEqual(DEFAULT_VALUE, trendHitDto.Value);
            Assert.AreEqual(DEFAULT_DISTANCE_TO_LINE, trendHitDto.DistanceToLine);
            Assert.AreEqual(DEFAULT_PREVIOUS_RANGE_GUID, trendHitDto.PreviousRangeGuid);
            Assert.IsNull(trendHitDto.NextRangeGuid);
        }
        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));
        }
Example #3
0
        public void Constructor_fromDto_hasCorrectProperties()
        {
            //Act.
            var trendHitDto = new TrendHitDto()
            {
                Id                = DEFAULT_ID,
                TrendlineId       = DEFAULT_TRENDLINE_ID,
                IndexNumber       = DEFAULT_INDEX_NUMBER,
                ExtremumType      = DEFAULT_EXTREMUM_TYPE,
                Value             = DEFAULT_VALUE,
                DistanceToLine    = DEFAULT_DISTANCE_TO_LINE,
                Guid              = DEFAULT_GUID,
                PreviousRangeGuid = DEFAULT_PREVIOUS_RANGE_GUID,
                NextRangeGuid     = DEFAULT_NEXT_RANGE_GUID
            };

            var trendHit = TrendHit.FromDto(trendHitDto);

            //Assert.
            Assert.AreEqual(DEFAULT_ID, trendHit.Id);
            Assert.AreEqual(DEFAULT_GUID, trendHit.Guid);
            Assert.AreEqual(DEFAULT_TRENDLINE_ID, trendHit.TrendlineId);
            Assert.AreEqual(DEFAULT_INDEX_NUMBER, trendHit.IndexNumber);
            Assert.AreEqual(DEFAULT_EXTREMUM_TYPE, (int)trendHit.ExtremumType);
            Assert.AreEqual(DEFAULT_VALUE, trendHit.Value);
            Assert.AreEqual(DEFAULT_DISTANCE_TO_LINE, trendHit.DistanceToLine);
            Assert.AreEqual(DEFAULT_PREVIOUS_RANGE_GUID, trendHit.PreviousRangeGuid);
            Assert.AreEqual(DEFAULT_NEXT_RANGE_GUID, trendHit.NextRangeGuid);
        }
        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);
        }
Example #5
0
        public void Constructor_newInstance_hasProperParameters()
        {
            //Act.
            var trendHit = new TrendHit(DEFAULT_TRENDLINE_ID, DEFAULT_INDEX_NUMBER, DEFAULT_EXTREMUM_TYPE);

            //Assert.
            Assert.IsNotNull(trendHit.Guid);
            Assert.AreEqual(DEFAULT_TRENDLINE_ID, trendHit.TrendlineId);
            Assert.AreEqual(DEFAULT_INDEX_NUMBER, trendHit.IndexNumber);
            Assert.AreEqual(DEFAULT_EXTREMUM_TYPE, (int)trendHit.ExtremumType);
        }
Example #6
0
        private TrendHit getDefaultTrendline()
        {
            var trendHit = new TrendHit(DEFAULT_TRENDLINE_ID, DEFAULT_INDEX_NUMBER, DEFAULT_EXTREMUM_TYPE)
            {
                Id                = DEFAULT_ID,
                Guid              = DEFAULT_GUID,
                Value             = DEFAULT_VALUE,
                DistanceToLine    = DEFAULT_DISTANCE_TO_LINE,
                PreviousRangeGuid = DEFAULT_PREVIOUS_RANGE_GUID,
                NextRangeGuid     = DEFAULT_NEXT_RANGE_GUID
            };

            return(trendHit);
        }
        public void GetTrendhitById_ReturnsNull_IfThereIsNoItemWithGivenCombination()
        {
            //Arrange
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();
            TrendHitDto returnedDto = null;

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

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

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

            Assert.IsNull(baseTrendHit);
        }
        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);
        }
Example #9
0
        private Dictionary <int, TrendHit> GetTrendHitsMap(int assetId, int timeframeId)
        {
            _repository = new EFTrendlineRepository();
            IEnumerable <TrendHitDto>  dtos         = _repository.GetTrendHits();
            IEnumerable <TrendHit>     trendHits    = dtos.Select(th => TrendHit.FromDto(th));
            Dictionary <int, TrendHit> trendHitsMap = new Dictionary <int, TrendHit>();

            Dictionary <int, ExtremumGroup> extremumGroupsMap = GetExtremumGroupsMap(assetId, timeframeId);

            foreach (var trendHit in trendHits)
            {
                ExtremumGroup eg = null;
                extremumGroupsMap.TryGetValue(trendHit.ExtremumGroupId, out eg);
                if (eg != null)
                {
                    trendHit.ExtremumGroup = eg;
                }
                trendHitsMap.Add(trendHit.TrendHitId, trendHit);
            }

            return(trendHitsMap);
        }
Example #10
0
        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);
        }