public void ReturnAnInstanceOfBand()
        {
            Guid bandId = Guid.NewGuid();
            var  band   = new Band()
            {
                Id = bandId
            };

            SingleBandEventArgs eventArg = new SingleBandEventArgs("user id", bandId);

            var viewMock = new Mock <ISingleBandDisplayView>();

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

            var userServiceMock = new Mock <IUserService>();

            var bandServiceMock = new Mock <IBandService>();

            bandServiceMock.Setup(x => x.GetById(bandId)).Returns(band);

            SingleBandDisplayPresenter presenter = new SingleBandDisplayPresenter(
                viewMock.Object,
                userServiceMock.Object,
                bandServiceMock.Object);

            viewMock.Raise(x => x.OnFormGetBand += null, eventArg);

            Assert.IsInstanceOf <Band>(viewMock.Object.Model.Band);
        }
        public void ReturnNull_WhenBandIdIsNull()
        {
            var bandId = Guid.Empty;
            var band   = new Band();

            SingleBandEventArgs eventArg = new SingleBandEventArgs("user id", bandId);

            var viewMock = new Mock <ISingleBandDisplayView>();

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

            var userServiceMock = new Mock <IUserService>();

            var bandServiceMock = new Mock <IBandService>();

            bandServiceMock.Setup(x => x.GetById(bandId)).Returns(band);

            SingleBandDisplayPresenter presenter = new SingleBandDisplayPresenter(
                viewMock.Object,
                userServiceMock.Object,
                bandServiceMock.Object);

            viewMock.Raise(x => x.OnFormGetBand += null, eventArg);

            Assert.That(viewMock.Object.Model.Band, Is.Null);
        }
        private void View_OnFormGetBand(object sender, SingleBandEventArgs e)
        {
            var bandId = e.BandId;

            if (bandId != Guid.Empty)
            {
                this.View.Model.Band = this.bandService.GetById(bandId);
            }
            else
            {
                this.View.Model.Band = null;
            }
        }
        public void should()
        {
            Guid bandId = Guid.NewGuid();
            Guid userId = Guid.NewGuid();

            User user = new User()
            {
                Id = userId.ToString(), LikedBands = new List <Band>()
            };
            Band band = new Band()
            {
                Id = bandId
            };

            SingleBandEventArgs eventArg = new SingleBandEventArgs(userId.ToString(), bandId);

            var viewMock = new Mock <ISingleBandDisplayView>();

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

            var bandServiceMock = new Mock <IBandService>();

            bandServiceMock.Setup(x => x.GetById(bandId)).Returns(band);

            var userServiceMock = new Mock <IUserService>();

            userServiceMock.Setup(x => x.AddBandToFavorites(userId.ToString(), band));
            userServiceMock.Setup(x => x.GetUserById(userId.ToString())).Returns(user);

            SingleBandDisplayPresenter presenter = new SingleBandDisplayPresenter(
                viewMock.Object,
                userServiceMock.Object,
                bandServiceMock.Object);

            viewMock.Raise(x => x.AddToFavorites += null, eventArg);
        }
        private void View_AddToFavorites(object sender, SingleBandEventArgs e)
        {
            var band = this.bandService.GetById(e.BandId);

            this.userService.AddBandToFavorites(e.UserId, band);
        }