예제 #1
0
        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 }));
        }
예제 #2
0
        public void GetTrendlines_returnProperDtoCollection()
        {
            //Arrange
            EFTrendlineRepository repository = new EFTrendlineRepository();
            List <TrendlineDto>   trendlines = new List <TrendlineDto>();
            TrendlineDto          dto1       = new TrendlineDto()
            {
                Id = 1, AssetId = 1, TimeframeId = 1, SimulationId = 1, StartIndex = 5, StartLevel = 1.2573, FootholdIndex = 27, FootholdLevel = 1.2871, Value = 1.54, LastUpdateIndex = 70
            };
            TrendlineDto dto2 = new TrendlineDto()
            {
                Id = 1, AssetId = 1, TimeframeId = 2, SimulationId = 1, StartIndex = 7, StartLevel = 1.0123, FootholdIndex = 52, FootholdLevel = 1.4865, Value = 1.54, LastUpdateIndex = 70
            };
            TrendlineDto dto3 = new TrendlineDto()
            {
                Id = 1, AssetId = 2, TimeframeId = 1, SimulationId = 1, StartIndex = 7, StartLevel = 1.1234, FootholdIndex = 60, FootholdLevel = 1.4564, Value = 1.54, LastUpdateIndex = 70
            };
            TrendlineDto dto4 = new TrendlineDto()
            {
                Id = 1, AssetId = 1, TimeframeId = 1, SimulationId = 1, StartIndex = 25, StartLevel = 1.3456, FootholdIndex = 48, FootholdLevel = 1.4564, Value = 1.54, LastUpdateIndex = 70
            };

            trendlines.AddRange(new TrendlineDto[] { dto1, dto2, dto3, dto4 });
            clearTrendlinesTables();
            repository.UpdateTrendlines(trendlines);

            //Act
            IEnumerable <TrendlineDto> dtos = repository.GetTrendlines(1, 1, 1).ToArray();

            //Assert
            IEnumerable <TrendlineDto> expected = new TrendlineDto[] { dto1, dto4 };
            bool areEqualArrays = expected.HasEqualItems(dtos);

            Assert.IsTrue(areEqualArrays);
        }
예제 #3
0
        public void GetTrendHits_returnProperDtoCollection()
        {
            //Arrange
            EFTrendlineRepository repository = new EFTrendlineRepository();
            List <TrendHitDto>    trendHits  = new List <TrendHitDto>();
            TrendHitDto           dto1       = new TrendHitDto()
            {
                Id = 1, Guid = "0BF8E6BD-0C8D-43B4-A9A0-C8B2745502B0", TrendlineId = 1, IndexNumber = 10, ExtremumType = 1, DistanceToLine = 0.0005, PreviousRangeGuid = null, NextRangeGuid = "07ACE1F3-89B4-49C5-A6F9-155B78E33836"
            };
            TrendHitDto dto2 = new TrendHitDto()
            {
                Id = 2, Guid = "07ACE1F3-89B4-49C5-A6F9-155B78E33836", TrendlineId = 1, IndexNumber = 31, ExtremumType = 2, DistanceToLine = 0.0003, PreviousRangeGuid = "0BF8E6BD-0C8D-43B4-A9A0-C8B2745502B0", NextRangeGuid = "15AB46D1-615A-46FA-9533-A2DC3EA4F340"
            };
            TrendHitDto dto3 = new TrendHitDto()
            {
                Id = 3, Guid = "15AB46D1-615A-46FA-9533-A2DC3EA4F340", TrendlineId = 1, IndexNumber = 31, ExtremumType = 2, DistanceToLine = 0.0003, PreviousRangeGuid = "07ACE1F3-89B4-49C5-A6F9-155B78E33836", NextRangeGuid = "B49C3C3E-0D42-451F-B2FD-F28A1679BF50"
            };
            TrendHitDto dto4 = new TrendHitDto()
            {
                Id = 4, Guid = "B49C3C3E-0D42-451F-B2FD-F28A1679BF50", TrendlineId = 2, IndexNumber = 31, ExtremumType = 2, DistanceToLine = 0.0003, PreviousRangeGuid = "15AB46D1-615A-46FA-9533-A2DC3EA4F341", NextRangeGuid = null
            };

            trendHits.AddRange(new TrendHitDto[] { dto1, dto2, dto3, dto4 });
            clearTrendHitsTables();
            repository.UpdateTrendHits(trendHits);

            //Act
            IEnumerable <TrendHitDto> dtos = repository.GetTrendHits(1).ToArray();

            //Assert
            IEnumerable <TrendHitDto> expected = new TrendHitDto[] { dto1, dto2, dto3 };
            bool areEqualArrays = expected.HasEqualItems(dtos);

            Assert.IsTrue(areEqualArrays);
        }
예제 #4
0
        public void UpdateTrendlines_WorksProperly_IfItemsAreOnlyAdded()
        {
            //Arrange
            EFTrendlineRepository repository = new EFTrendlineRepository();
            List <TrendlineDto>   trendlines = new List <TrendlineDto>();
            TrendlineDto          dto1       = new TrendlineDto()
            {
                Id = 1, AssetId = 1, TimeframeId = 1, SimulationId = 1, StartIndex = 5, StartLevel = 1.2345, FootholdIndex = 26, FootholdLevel = 1.3456, Value = 1.234, LastUpdateIndex = 31
            };
            TrendlineDto dto2 = new TrendlineDto()
            {
                Id = 2, AssetId = 1, TimeframeId = 1, SimulationId = 1, StartIndex = 6, StartLevel = 1.4567, FootholdIndex = 23, FootholdLevel = 1.5678, Value = 1.345, LastUpdateIndex = 29
            };
            TrendlineDto dto3 = new TrendlineDto()
            {
                Id = 3, AssetId = 1, TimeframeId = 1, SimulationId = 2, StartIndex = 12, StartLevel = 1.5678, FootholdIndex = 45, FootholdLevel = 1.6789, Value = 1.567, LastUpdateIndex = 47
            };
            TrendlineDto dto4 = new TrendlineDto()
            {
                Id = 4, AssetId = 1, TimeframeId = 1, SimulationId = 2, StartIndex = 8, StartLevel = 1.6789, FootholdIndex = 21, FootholdLevel = 1.7891, Value = 1.678, LastUpdateIndex = 29
            };

            trendlines.AddRange(new TrendlineDto[] { dto1, dto2, dto3, dto4 });

            //Act
            clearTrendlinesTables();
            repository.UpdateTrendlines(trendlines);
            IEnumerable <TrendlineDto> actualRecords = repository.GetTrendlines(1, 1, 1);

            //Assert
            Assert.IsTrue(repository.GetTrendlines(1, 1, 1).HasEqualItems(new TrendlineDto[] { dto1, dto2 }));
            Assert.IsTrue(repository.GetTrendlines(1, 1, 2).HasEqualItems(new TrendlineDto[] { dto3, dto4 }));
        }
예제 #5
0
        public void GetTrendRangeById_ReturnsNull_IfThereIsNoTrendlineWithSuchId()
        {
            //Arrange
            EFTrendlineRepository repository = new EFTrendlineRepository();

            TrendRangeDto[] ranges = getDefaultTrendRangeDtosArray();
            clearTrendRangesTables();
            repository.UpdateTrendRanges(ranges);

            //Act
            TrendRangeDto resultDto = repository.GetTrendRangeById(50);

            //Assert
            Assert.IsNull(resultDto);
        }
예제 #6
0
        public void UpdateTrendRanges_WorksProperly_IfItemsAreOnlyAdded()
        {
            //Arrange
            EFTrendlineRepository repository = new EFTrendlineRepository();

            TrendRangeDto[] trendRanges = getDefaultTrendRangeDtosArray();

            //Act
            clearTrendRangesTables();
            repository.UpdateTrendRanges(trendRanges);
            IEnumerable <TrendRangeDto> actualRecords = repository.GetTrendRanges(1);

            //Assert
            Assert.IsTrue(repository.GetTrendRanges(1).HasEqualItems(new TrendRangeDto[] { trendRanges[0], trendRanges[1], trendRanges[2] }));
            Assert.IsTrue(repository.GetTrendRanges(2).HasEqualItems(new TrendRangeDto[] { trendRanges[3] }));
        }
예제 #7
0
        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);
        }
예제 #8
0
        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);
        }
예제 #9
0
        public void UpdateTrendRanges_WorksProperly_IfItemsAreAddedAndUpdated()
        {
            //Arrange
            AnalysisDataQueryDefinition queryDef   = new AnalysisDataQueryDefinition(1, 1);
            EFTrendlineRepository       repository = new EFTrendlineRepository();

            TrendRangeDto[] trendRanges = getDefaultTrendRangeDtosArray();
            clearTrendRangesTables();
            repository.UpdateTrendRanges(new TrendRangeDto[] { trendRanges[0], trendRanges[1] });

            //Act
            trendRanges[0].NextBreakGuid = System.Guid.NewGuid().ToString();
            trendRanges[1].NextBreakGuid = System.Guid.NewGuid().ToString();
            repository.UpdateTrendRanges(trendRanges);

            //Assert
            Assert.IsTrue(repository.GetTrendRanges(1).HasEqualItems(new TrendRangeDto[] { trendRanges[0], trendRanges[1], trendRanges[2] }));
            Assert.IsTrue(repository.GetTrendRanges(2).HasEqualItems(new TrendRangeDto[] { trendRanges[3] }));
        }
예제 #10
0
        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);
        }
예제 #11
0
        public void RemoveTrendlines_IfNotExistingTrendlineIsPassed_NothingHappens()
        {
            //Arrange
            EFTrendlineRepository repository = new EFTrendlineRepository();
            List <TrendlineDto>   trendlines = new List <TrendlineDto>();
            TrendlineDto          dto1       = new TrendlineDto()
            {
                Id = 1, AssetId = 1, TimeframeId = 1, SimulationId = 1, StartIndex = 5, StartLevel = 1.2345, FootholdIndex = 26, FootholdLevel = 1.3456, Value = 1.234, LastUpdateIndex = 31
            };
            TrendlineDto dto2 = new TrendlineDto()
            {
                Id = 2, AssetId = 1, TimeframeId = 1, SimulationId = 1, StartIndex = 6, StartLevel = 1.4567, FootholdIndex = 23, FootholdLevel = 1.5678, Value = 1.345, LastUpdateIndex = 29
            };
            TrendlineDto dto3 = new TrendlineDto()
            {
                Id = 3, AssetId = 1, TimeframeId = 1, SimulationId = 1, StartIndex = 12, StartLevel = 1.5678, FootholdIndex = 45, FootholdLevel = 1.6789, Value = 1.567, LastUpdateIndex = 47
            };
            TrendlineDto dto4 = new TrendlineDto()
            {
                Id = 4, AssetId = 1, TimeframeId = 1, SimulationId = 1, StartIndex = 8, StartLevel = 1.6789, FootholdIndex = 21, FootholdLevel = 1.7891, Value = 1.678, LastUpdateIndex = 29
            };

            trendlines.AddRange(new TrendlineDto[] { dto1, dto2, dto3 });
            clearTrendlinesTables();
            repository.UpdateTrendlines(trendlines);
            IEnumerable <TrendlineDto> actualRecords = repository.GetTrendlines(1, 1, 1);

            if (actualRecords.Count() != 3)
            {
                throw new Exception("Test failed while preparing environment");
            }

            //Act
            repository.RemoveTrendlines(new TrendlineDto[] { dto4 });

            //Assert
            IEnumerable <TrendlineDto> recordsAfterRemoving = repository.GetTrendlines(1, 1, 1);
            IEnumerable <TrendlineDto> expectedRecords      = new TrendlineDto[] { dto1, dto2, dto3 };

            Assert.IsTrue(recordsAfterRemoving.HasEqualItems(expectedRecords));
        }
예제 #12
0
        public void UpdateTrendHits_WorksProperly_IfItemsAreAddedAndUpdated()
        {
            //Arrange
            AnalysisDataQueryDefinition queryDef   = new AnalysisDataQueryDefinition(1, 1);
            EFTrendlineRepository       repository = new EFTrendlineRepository();
            List <TrendHitDto>          trendlines = 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"
            };
            TrendHitDto dto4 = new TrendHitDto()
            {
                Id = 4, Guid = "562BED90-29F8-423E-8D00-DE699C1D14C3", TrendlineId = 2, IndexNumber = 21, ExtremumType = 3, Value = 1.678, DistanceToLine = 0.0001, PreviousRangeGuid = "A62DB207-FDDA-45B4-94F6-AE16F4CA9A58", NextRangeGuid = null
            };

            trendlines.AddRange(new TrendHitDto[] { dto1, dto2, dto3, dto4 });
            clearTrendHitsTables();
            repository.UpdateTrendHits(trendlines);

            //Act
            dto1.Value           = 2.345;
            dto1.DistanceToLine += 0.002;
            dto2.Value          += 0.250;
            dto1.DistanceToLine -= 0.002;
            repository.UpdateTrendHits(new TrendHitDto[] { dto1, dto2, dto3, dto4 });

            //Assert
            Assert.IsTrue(repository.GetTrendHits(1).HasEqualItems(new TrendHitDto[] { dto1, dto2, dto3 }));
            Assert.IsTrue(repository.GetTrendHits(2).HasEqualItems(new TrendHitDto[] { dto4 }));
        }
예제 #13
0
        public void UpdateTrendlines_WorksProperly_IfItemsAreAddedAndUpdated()
        {
            //Arrange
            AnalysisDataQueryDefinition queryDef   = new AnalysisDataQueryDefinition(1, 1);
            EFTrendlineRepository       repository = new EFTrendlineRepository();
            List <TrendlineDto>         trendlines = new List <TrendlineDto>();
            TrendlineDto dto1 = new TrendlineDto()
            {
                Id = 1, AssetId = 1, TimeframeId = 1, SimulationId = 1, StartIndex = 5, StartLevel = 1.2345, FootholdIndex = 26, FootholdLevel = 1.3456, Value = 1.234, LastUpdateIndex = 31
            };
            TrendlineDto dto2 = new TrendlineDto()
            {
                Id = 2, AssetId = 1, TimeframeId = 1, SimulationId = 1, StartIndex = 6, StartLevel = 1.4567, FootholdIndex = 23, FootholdLevel = 1.5678, Value = 1.345, LastUpdateIndex = 29
            };
            TrendlineDto dto3 = new TrendlineDto()
            {
                Id = 3, AssetId = 1, TimeframeId = 1, SimulationId = 2, StartIndex = 12, StartLevel = 1.5678, FootholdIndex = 45, FootholdLevel = 1.6789, Value = 1.567, LastUpdateIndex = 47
            };
            TrendlineDto dto4 = new TrendlineDto()
            {
                Id = 4, AssetId = 1, TimeframeId = 1, SimulationId = 2, StartIndex = 8, StartLevel = 1.6789, FootholdIndex = 21, FootholdLevel = 1.7891, Value = 1.678, LastUpdateIndex = 29
            };

            trendlines.AddRange(new TrendlineDto[] { dto1, dto2 });
            clearTrendlinesTables();
            repository.UpdateTrendlines(trendlines);

            //Act
            dto1.Value            = 2.345;
            dto2.LastUpdateIndex += 2;
            dto2.Value           += 0.250;
            dto2.LastUpdateIndex  = 32;
            repository.UpdateTrendlines(new TrendlineDto[] { dto1, dto2, dto3, dto4 });

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