/// <summary>
 ///     Handles the TV Shows tab loading.
 /// </summary>
 /// <param name="sender">
 ///     The sender of the event.
 /// </param>
 /// <param name="e">
 ///     The arguments of the event.
 /// </param>
 private void TvShowsLoad(object sender, EventArgs e)
 {
     if (!DesignMode)
     {
         controller = CompositionRoot.Get <TvShowsController>();
         controller.PropertyChanged     += PropertyChanged;
         controller.ShowChanged         += ShowChanged;
         controller.SearchShowsComplete += SearchShowsComplete;
         controller.Initialise(this);
     }
 }
        public async Task Post_ShouldReturnBadRequestIfRequestIsNull()
        {
            var controller = new TvShowsController(Substitute.For <IMediator>());

            var response = await controller.Post(null);

            var badRequestResult = response as BadRequestObjectResult;

            Assert.NotNull(badRequestResult);
            Assert.Equal(400, badRequestResult.StatusCode);
        }
        public async Task Post_ShouldReturnOkIfNoException()
        {
            var controller = new TvShowsController(Substitute.For <IMediator>());

            var response = await controller.Post(new Business.Models.TvShowRequest());

            var okResult = response as OkObjectResult;

            Assert.NotNull(okResult);
            Assert.Equal(200, okResult.StatusCode);
        }
        public async Task Post_ShouldReturnBadRequestIfException()
        {
            var mock = Substitute.For <IMediator>();

            mock.Send(new Business.Models.TvShowRequest(), CancellationToken.None).ReturnsForAnyArgs <TvShowResponse>(x => { throw new ValidationException(); });
            var controller = new TvShowsController(mock);

            var response = await controller.Post(new Business.Models.TvShowRequest());

            var badRequestResult = response as BadRequestObjectResult;

            Assert.NotNull(badRequestResult);
            Assert.Equal(400, badRequestResult.StatusCode);
        }