Пример #1
0
        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));
        }
Пример #2
0
        public void CopyProperties_AfterwardAllPropertiesAreEqual()
        {
            //Arrange
            var baseItem     = getDefaultTrendlineDto();
            var comparedItem = new TrendlineDto()
            {
                Id              = 1,
                AssetId         = 1,
                TimeframeId     = 1,
                SimulationId    = 1,
                StartIndex      = 5,
                StartLevel      = 2.2345,
                EndIndex        = 20,
                FootholdLevel   = 2.2532,
                Value           = 2.234,
                LastUpdateIndex = 25
            };

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

            //Assert
            Assert.IsTrue(areEqual);
        }
Пример #3
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);
        }
Пример #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 static Trendline FromDto(TrendlineDto dto)
        {
            var trendline = new Trendline
            {
                Id                     = dto.TrendlineId,
                AssetId                = dto.AssetId,
                TimeframeId            = dto.TimeframeId,
                Slope                  = dto.Angle,
                ShowOnChart            = dto.ShowOnChart,
                Value                  = dto.Value,
                BaseExtremumGroupId    = dto.BaseExtremumGroupId,
                BaseDateIndex          = dto.BaseDateIndex,
                BaseLevel              = dto.BaseLevel,
                CounterExtremumGroupId = dto.CounterExtremumGroupId,
                CounterDateIndex       = dto.CounterDateIndex,
                CounterLevel           = dto.CounterLevel,
                StartIndex             = dto.StartDateIndex,
                EndIndex               = dto.EndDateIndex,
                IsOpenFromLeft         = dto.IsOpenFromLeft,
                IsOpenFromRight        = dto.IsOpenFromRight,
                TrendRanges            = new List <TrendRange>()
            };

            return(trendline);
        }
Пример #6
0
        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);
        }
Пример #7
0
        public void GetTrendlineById_ReturnsNull_IfThereIsNoTrendlineWithSuchId()
        {
            //Arrange
            EFTrendlineRepository repository = new EFTrendlineRepository();
            List <TrendlineDto>   trendlines = new List <TrendlineDto>();

            trendlines.AddRange(new TrendlineDto[] { getDefaultTrendlineDto() });
            clearTrendlinesTables();
            repository.UpdateTrendlines(trendlines);

            //Act
            TrendlineDto resultDto = repository.GetTrendlineById(2);

            //Assert
            Assert.IsNull(resultDto);
        }
Пример #8
0
        public void GetTrendlineById_ReturnsNull_IfThereIsNoItemWithGivenCombination()
        {
            //Arrange
            Mock <ITrendlineRepository> mockedRepository = new Mock <ITrendlineRepository>();
            TrendlineDto returnedDto = null;

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

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

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

            Assert.IsNull(baseTrendline);
        }
Пример #9
0
        public void GetTrendlineById_ReturnsProperTrendlineDto_IfExists()
        {
            //Arrange
            EFTrendlineRepository repository  = new EFTrendlineRepository();
            List <TrendlineDto>   trendlines  = new List <TrendlineDto>();
            TrendlineDto          expectedDto = getDefaultTrendlineDto();

            trendlines.AddRange(new TrendlineDto[] { expectedDto });
            clearTrendlinesTables();
            repository.UpdateTrendlines(trendlines);

            //Act
            TrendlineDto dto = repository.GetTrendlineById(expectedDto.Id);

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

            Assert.IsTrue(areEqual);
        }
Пример #10
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));
        }
Пример #11
0
        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);
        }
Пример #12
0
        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));
        }
Пример #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 Constructor_fromDto_hasCorrectProperties()
        {
            //Act.
            var trendlineDto = new TrendlineDto()
            {
                Id                 = UTDefaulter.DEFAULT_ID,
                AssetId            = UTDefaulter.DEFAULT_ASSET_ID,
                TimeframeId        = UTDefaulter.DEFAULT_TIMEFRAME_ID,
                SimulationId       = UTDefaulter.DEFAULT_SIMULATION_ID,
                StartIndex         = UTDefaulter.DEFAULT_START_INDEX,
                StartLevel         = UTDefaulter.DEFAULT_START_LEVEL,
                FootholdIndex      = UTDefaulter.DEFAULT_FOOTHOLD_INDEX,
                FootholdLevel      = UTDefaulter.DEFAULT_FOOTHOLD_LEVEL,
                FootholdSlaveIndex = UTDefaulter.DEFAULT_FOOTHOLD_SLAVE_INDEX,
                FootholdIsPeak     = UTDefaulter.DEFAULT_FOOTHOLD_IS_PEAK,
                EndIndex           = null,
                Value              = UTDefaulter.DEFAULT_VALUE,
                LastUpdateIndex    = UTDefaulter.DEFAULT_LAST_UPDATE_INDEX
            };

            var trendline = new Trendline(trendlineDto);

            //Assert.
            Assert.AreEqual(UTDefaulter.DEFAULT_ID, trendline.Id);
            Assert.AreEqual(UTDefaulter.DEFAULT_ASSET_ID, trendline.AssetId);
            Assert.AreEqual(UTDefaulter.DEFAULT_TIMEFRAME_ID, trendline.TimeframeId);
            Assert.AreEqual(UTDefaulter.DEFAULT_SIMULATION_ID, trendline.SimulationId);
            Assert.AreEqual(UTDefaulter.DEFAULT_START_INDEX, trendline.StartIndex);
            Assert.AreEqual(UTDefaulter.DEFAULT_START_LEVEL, trendline.StartLevel);
            Assert.AreEqual(UTDefaulter.DEFAULT_FOOTHOLD_INDEX, trendline.FootholdIndex);
            Assert.AreEqual(UTDefaulter.DEFAULT_FOOTHOLD_LEVEL, trendline.FootholdLevel);
            Assert.AreEqual(UTDefaulter.DEFAULT_FOOTHOLD_SLAVE_INDEX, trendlineDto.FootholdSlaveIndex);
            Assert.AreEqual(UTDefaulter.DEFAULT_FOOTHOLD_IS_PEAK, trendlineDto.FootholdIsPeak);
            Assert.AreEqual(UTDefaulter.DEFAULT_VALUE, trendline.Value);
            Assert.IsNull(trendline.EndIndex);
            Assert.AreEqual(UTDefaulter.DEFAULT_LAST_UPDATE_INDEX, trendline.LastUpdateIndex);
        }
Пример #15
0
        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);
        }
Пример #16
0
        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);
        }