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));
        }
        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));
        }