public void OnSearchDisplayBands_ShouldCallSearchBandsByBandName()
        {
            string queryParam = "Killswith";

            //Arange
            var bandServiceMock = new Mock <IBandService>();
            var viewMock        = new Mock <ISearchDisplayView>();

            viewMock.Setup(x => x.Model).Returns(new SearchDisplayModel());

            var eventArgs = new SearchDisplayEventArgs(queryParam);

            //Act
            var presenter = new SearchDisplayPresenter(viewMock.Object, bandServiceMock.Object);

            // Assert
            viewMock.Raise(v => v.OnSearchDisplayBands += null, eventArgs);

            bandServiceMock.Verify(s => s.SearchBandsByBandName(It.IsAny <string>()), Times.Once());
        }
        public void OnSearchDisplayBands_ShouldReturnBand()
        {
            string queryParam     = "Killswith";
            var    bands          = this.GetBands();
            var    expectedResult = bands.Where(b => b.BandName.Contains(queryParam));

            //Arange
            var bandServiceMock = new Mock <IBandService>();
            var viewMock        = new Mock <ISearchDisplayView>();

            viewMock.Setup(x => x.Model).Returns(new SearchDisplayModel());

            var eventArgs = new SearchDisplayEventArgs(queryParam);

            bandServiceMock.Setup(s => s.SearchBandsByBandName(It.IsAny <string>())).Returns(bands.Where(b => b.BandName.Contains(queryParam)));

            //Act
            var presenter = new SearchDisplayPresenter(viewMock.Object, bandServiceMock.Object);

            // Assert
            viewMock.Raise(v => v.OnSearchDisplayBands += null, eventArgs);

            CollectionAssert.AreEqual(expectedResult, presenter.View.Model.Bands);
        }
 private void View_OnSearchDisplayBands(object sender, SearchDisplayEventArgs e)
 {
     this.View.Model.Bands = this.bandService.SearchBandsByBandName(e.QueryParams);
 }