示例#1
0
        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 UpdateTrendBreaks_WorksProperly_IfItemsAreOnlyAdded()
        {
            //Arrange
            EFTrendlineRepository repository  = new EFTrendlineRepository();
            List <TrendBreakDto>  trendBreaks = new List <TrendBreakDto>();
            TrendBreakDto         dto1        = new TrendBreakDto()
            {
                Id = 1, Guid = "AC180C9B-E6D2-4138-8E0A-BE31FCE8626D", TrendlineId = 1, IndexNumber = 2, PreviousRangeGuid = null, NextRangeGuid = "89BFF378-F310-4A28-B753-00A0FF9A852C"
            };
            TrendBreakDto dto2 = new TrendBreakDto()
            {
                Id = 2, Guid = "89BFF378-F310-4A28-B753-00A0FF9A852C", TrendlineId = 1, IndexNumber = 9, PreviousRangeGuid = "AC180C9B-E6D2-4138-8E0A-BE31FCE8626D", NextRangeGuid = "A62DB207-FDDA-45B4-94F6-AE16F4CA9A58"
            };
            TrendBreakDto dto3 = new TrendBreakDto()
            {
                Id = 3, Guid = "A62DB207-FDDA-45B4-94F6-AE16F4CA9A58", TrendlineId = 1, IndexNumber = 18, PreviousRangeGuid = "89BFF378-F310-4A28-B753-00A0FF9A852C", NextRangeGuid = "89BFF378-F310-4A28-B753-00A0FF9A852C"
            };
            TrendBreakDto dto4 = new TrendBreakDto()
            {
                Id = 4, Guid = "562BED90-29F8-423E-8D00-DE699C1D14C3", TrendlineId = 2, IndexNumber = 21, PreviousRangeGuid = "A62DB207-FDDA-45B4-94F6-AE16F4CA9A58", NextRangeGuid = null
            };

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

            //Act
            clearTrendBreaksTables();
            repository.UpdateTrendBreaks(trendBreaks);
            IEnumerable <TrendBreakDto> actualRecords = repository.GetTrendBreaks(1);

            //Assert
            Assert.IsTrue(repository.GetTrendBreaks(1).HasEqualItems(new TrendBreakDto[] { dto1, dto2, dto3 }));
            Assert.IsTrue(repository.GetTrendBreaks(2).HasEqualItems(new TrendBreakDto[] { dto4 }));
        }
        public void GetTrendBreakById_ReturnsNull_IfThereIsNoTrendlineWithSuchId()
        {
            //Arrange
            EFTrendlineRepository repository  = new EFTrendlineRepository();
            List <TrendBreakDto>  trendBreaks = new List <TrendBreakDto>();

            trendBreaks.AddRange(new TrendBreakDto[] { getDefaultTrendBreakDto() });
            clearTrendBreaksTables();
            repository.UpdateTrendBreaks(trendBreaks);

            //Act
            TrendBreakDto resultDto = repository.GetTrendBreakById(50);

            //Assert
            Assert.IsNull(resultDto);
        }
示例#4
0
        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);
        }
示例#5
0
        public static TrendBreak FromDto(TrendBreakDto dto)
        {
            var trendBreak = new TrendBreak
            {
                TrendBreakId              = dto.TrendBreakId,
                TrendlineId               = dto.TrendlineId,
                DateIndex                 = dto.DateIndex,
                BreakFromAbove            = dto.BreakFromAbove,
                Value                     = dto.Value,
                BreakDayAmplitudePoints   = dto.BreakDayAmplitudePoints,
                PreviousDayPoints         = dto.PreviousDayPoints,
                NextDaysMinDistancePoints = dto.NextDaysMinDistancePoints,
                NextDaysMaxVariancePoints = dto.NextDaysMaxVariancePoints
            };

            return(trendBreak);
        }
        public void GetTrendBreaks_returnProperDtoCollection()
        {
            //Arrange
            EFTrendlineRepository repository = new EFTrendlineRepository();

            TrendBreakDto[] breaks = getDefaultTrendBreakDtosArray();
            clearTrendBreaksTables();
            repository.UpdateTrendBreaks(breaks);

            //Act
            IEnumerable <TrendBreakDto> dtos = repository.GetTrendBreaks(1).ToArray();

            //Assert
            IEnumerable <TrendBreakDto> expected = new TrendBreakDto[] { breaks[0], breaks[1], breaks[2] };
            bool areEqualArrays = expected.HasEqualItems(dtos);

            Assert.IsTrue(areEqualArrays);
        }
示例#7
0
        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 GetTrendBreakById_ReturnsProperTrendlineDto_IfExists()
        {
            //Arrange
            EFTrendlineRepository repository  = new EFTrendlineRepository();
            List <TrendBreakDto>  trendBreaks = new List <TrendBreakDto>();
            TrendBreakDto         expectedDto = getDefaultTrendBreakDto();

            trendBreaks.AddRange(new TrendBreakDto[] { expectedDto });
            clearTrendBreaksTables();
            repository.UpdateTrendBreaks(trendBreaks);

            //Act
            TrendBreakDto resultDto = repository.GetTrendBreakById(expectedDto.Id);

            //Assert
            var areEqual = expectedDto.Equals(resultDto);

            Assert.IsTrue(areEqual);
        }
 private TrendBreakDto[] getDefaultTrendBreakDtosArray()
 {
     TrendBreakDto[] arr = new TrendBreakDto[4];
     arr[0] = new TrendBreakDto()
     {
         Id                = 1,
         Guid              = System.Guid.NewGuid().ToString(),
         TrendlineId       = 1,
         IndexNumber       = 5,
         PreviousRangeGuid = System.Guid.NewGuid().ToString(),
         NextRangeGuid     = System.Guid.NewGuid().ToString()
     };
     arr[1] = new TrendBreakDto()
     {
         Id                = 2,
         Guid              = System.Guid.NewGuid().ToString(),
         TrendlineId       = 1,
         IndexNumber       = 12,
         PreviousRangeGuid = System.Guid.NewGuid().ToString(),
         NextRangeGuid     = System.Guid.NewGuid().ToString()
     };
     arr[2] = new TrendBreakDto()
     {
         Id                = 3,
         Guid              = System.Guid.NewGuid().ToString(),
         TrendlineId       = 1,
         IndexNumber       = 156,
         PreviousRangeGuid = System.Guid.NewGuid().ToString(),
         NextRangeGuid     = System.Guid.NewGuid().ToString()
     };
     arr[3] = new TrendBreakDto()
     {
         Id                = 4,
         Guid              = System.Guid.NewGuid().ToString(),
         TrendlineId       = 2,
         IndexNumber       = 187,
         PreviousRangeGuid = System.Guid.NewGuid().ToString(),
         NextRangeGuid     = null
     };
     return(arr);
 }
示例#10
0
        public void CopyProperties_AfterwardAllPropertiesAreEqual()
        {
            //Arrange
            var baseItem     = getDefaultTrendBreakDto();
            var comparedItem = new TrendBreakDto()
            {
                Id                = 1,
                Guid              = DEFAULT_GUID,
                TrendlineId       = DEFAULT_TRENDLINE_ID + 1,
                IndexNumber       = DEFAULT_INDEX_NUMBER + 1,
                PreviousRangeGuid = DEFAULT_PREVIOUS_RANGE_GUID,
                NextRangeGuid     = DEFAULT_NEXT_RANGE_GUID
            };

            //Act
            comparedItem.CopyProperties(baseItem);
            var areEqual = baseItem.Equals(comparedItem);

            //Assert
            Assert.IsTrue(areEqual);
        }
示例#11
0
        public void Constructor_fromDto_hasCorrectProperties()
        {
            //Act.
            var TrendBreakDto = new TrendBreakDto()
            {
                Id                = DEFAULT_ID,
                TrendlineId       = DEFAULT_TRENDLINE_ID,
                IndexNumber       = DEFAULT_INDEX_NUMBER,
                Guid              = DEFAULT_GUID,
                PreviousRangeGuid = DEFAULT_PREVIOUS_RANGE_GUID,
                NextRangeGuid     = DEFAULT_NEXT_RANGE_GUID
            };

            var trendRange = TrendBreak.FromDto(TrendBreakDto);

            //Assert.
            Assert.AreEqual(DEFAULT_ID, trendRange.Id);
            Assert.AreEqual(DEFAULT_GUID, trendRange.Guid);
            Assert.AreEqual(DEFAULT_TRENDLINE_ID, trendRange.TrendlineId);
            Assert.AreEqual(DEFAULT_INDEX_NUMBER, trendRange.IndexNumber);
            Assert.AreEqual(DEFAULT_PREVIOUS_RANGE_GUID, trendRange.PreviousRangeGuid);
            Assert.AreEqual(DEFAULT_NEXT_RANGE_GUID, trendRange.NextRangeGuid);
        }
示例#12
0
        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 UpdateTrendBreaks_WorksProperly_IfItemsAreAddedAndUpdated()
        {
            //Arrange
            AnalysisDataQueryDefinition queryDef   = new AnalysisDataQueryDefinition(1, 1);
            EFTrendlineRepository       repository = new EFTrendlineRepository();

            List <TrendBreakDto> trendBreaks = new List <TrendBreakDto>();
            TrendBreakDto        dto1        = new TrendBreakDto()
            {
                Id = 1, Guid = "AC180C9B-E6D2-4138-8E0A-BE31FCE8626D", TrendlineId = 1, IndexNumber = 2, PreviousRangeGuid = null, NextRangeGuid = "89BFF378-F310-4A28-B753-00A0FF9A852C"
            };
            TrendBreakDto dto2 = new TrendBreakDto()
            {
                Id = 2, Guid = "89BFF378-F310-4A28-B753-00A0FF9A852C", TrendlineId = 1, IndexNumber = 9, PreviousRangeGuid = "AC180C9B-E6D2-4138-8E0A-BE31FCE8626D", NextRangeGuid = "A62DB207-FDDA-45B4-94F6-AE16F4CA9A58"
            };
            TrendBreakDto dto3 = new TrendBreakDto()
            {
                Id = 3, Guid = "A62DB207-FDDA-45B4-94F6-AE16F4CA9A58", TrendlineId = 1, IndexNumber = 18, PreviousRangeGuid = "89BFF378-F310-4A28-B753-00A0FF9A852C", NextRangeGuid = "89BFF378-F310-4A28-B753-00A0FF9A852C"
            };
            TrendBreakDto dto4 = new TrendBreakDto()
            {
                Id = 4, Guid = "562BED90-29F8-423E-8D00-DE699C1D14C3", TrendlineId = 2, IndexNumber = 21, PreviousRangeGuid = "A62DB207-FDDA-45B4-94F6-AE16F4CA9A58", NextRangeGuid = null
            };

            trendBreaks.AddRange(new TrendBreakDto[] { dto1, dto2 });
            clearTrendBreaksTables();
            repository.UpdateTrendBreaks(trendBreaks);

            //Act
            dto1.NextRangeGuid = System.Guid.NewGuid().ToString();
            dto2.NextRangeGuid = System.Guid.NewGuid().ToString();
            repository.UpdateTrendBreaks(new TrendBreakDto[] { dto1, dto2, dto3, dto4 });

            //Assert
            Assert.IsTrue(repository.GetTrendBreaks(1).HasEqualItems(new TrendBreakDto[] { dto1, dto2, dto3 }));
            Assert.IsTrue(repository.GetTrendBreaks(2).HasEqualItems(new TrendBreakDto[] { dto4 }));
        }
示例#14
0
        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));
        }