public void Setup() { var contextOptions = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: $"AssistantDB{Guid.NewGuid()}") .Options; var operationalOptions = Options.Create(new OperationalStoreOptions()); _context = new ApplicationDbContext(contextOptions, operationalOptions); _userId = Guid.NewGuid().ToString(); _mapping = new UserTVShowMapping { Id = 1, UserId = _userId, TVShowId = 1, TvShow = new TvShow { TVShowId = 1, ShowKey = "show-show", ShowName = "Show Show", ThumbnailUrl = "URL", Summary = "Summary" } }; _context.AddRange(_mapping); _context.SaveChanges(); _logger = new Mock <ILogger>(); _commandActionHandlers = new CommandActionHandlers(_context); _addUserTVShowMapping = new AddUserTVShowMapping(_commandActionHandlers, _logger.Object); }
public async Task Add_Should_Successfully_Add_Mapping() { //Arrange var mapping = new UserTVShowMapping { UserId = _userId, TvShow = new TvShow { ShowKey = "show-show_show", ShowName = "Show Show Show", ThumbnailUrl = "URL", Summary = "Summary" } }; //Act var response = await _addUserTVShowMapping.Add(mapping); //Assert Assert.True(response.WasSuccessful); var savedRecord = await _context.Set <UserTVShowMapping>().Include(x => x.TvShow).FirstOrDefaultAsync(x => x.Id == response.Result.Id); Assert.AreEqual(mapping.UserId, savedRecord.UserId); Assert.AreEqual(mapping.TvShow.ShowKey, savedRecord.TvShow.ShowKey); Assert.AreEqual(mapping.TvShow.ShowName, savedRecord.TvShow.ShowName); }
public void Setup() { _fixture = new Fixture(); _fixture.Behaviors.OfType <ThrowingRecursionBehavior>().ToList() .ForEach(b => _fixture.Behaviors.Remove(b)); _fixture.Behaviors.Add(new OmitOnRecursionBehavior()); _shows = _fixture.Create <IEnumerable <TvShow> >(); _logger = new Mock <ILogger>(); _getTVShowsByUser = new Mock <IGetTVShowsByUser>(); _userContextManager = new Mock <IUserContextManager>(); _userContextManager.Setup(x => x.GetUserIdFromContext()).Returns("testuser"); _getTVShowsByUser.Setup(x => x.GetTvShowsByUserId(It.IsAny <string>())).ReturnsAsync(new ActionResponse <IEnumerable <TvShow> > { WasSuccessful = true, Result = _shows }); _mapping = _fixture.Create <UserTVShowMapping>(); _userTVShowMappingManager = new Mock <IUserTVShowMappingManager>(); _userTVShowMappingManager.Setup(x => x.ManageAdditionAsync(It.IsAny <TvShow>())).ReturnsAsync(new ActionResponse <UserTVShowMapping> { WasSuccessful = true, Result = _mapping }); _userTVShowMappingManager.Setup(x => x.ManageDeletionAsync(It.IsAny <string>())).ReturnsAsync(new ActionResponse <UserTVShowMapping> { WasSuccessful = true, Result = null }); _showController = new TvShowController(_getTVShowsByUser.Object, _logger.Object, _userContextManager.Object, _userTVShowMappingManager.Object); }
public async Task <ActionResponse <UserTVShowMapping> > ManageAdditionAsync(TvShow tvShow) { var userId = _userContextManager.GetUserIdFromContext(); var mapping = new UserTVShowMapping { UserId = userId, TvShow = tvShow }; var response = await _addUserTVShowMapping.Add(mapping); return(response); }
public async Task AddUserTVShowMappingAsync(UserTVShowMapping userTVShowMapping) { var show = await _applicationDbContext.Set <TvShow>().AddIfNotExists(userTVShowMapping.TvShow, x => x.ShowKey == userTVShowMapping.TvShow.ShowKey); userTVShowMapping.TvShow = show; userTVShowMapping.TVShowId = show.TVShowId; await _applicationDbContext.Set <UserTVShowMapping>().AddAsync(userTVShowMapping); await _applicationDbContext.SaveChangesAsync(); }
private ActionResponse <UserTVShowMapping> GenerateResponse(UserTVShowMapping mapping, string message = null) { var response = new ActionResponse <UserTVShowMapping> { Result = mapping, WasSuccessful = message == null, Message = message }; return(response); }
public async Task <ActionResponse <UserTVShowMapping> > Add(UserTVShowMapping tvShowMapping) { try { if (tvShowMapping.UserId == null) { throw new Exception("Unable to find user"); } _logger.AddMessageDetail($"AddUserTVShowMapping: Attempting to add show mapping with Show Name: {tvShowMapping.TvShow.ShowName} and userid: {tvShowMapping.UserId}"); await _commandActionHandlers.AddUserTVShowMappingAsync(tvShowMapping); _logger.AddMessageDetail($"AddUserTVShowMapping: Successfully added show with Name: {tvShowMapping.TvShow.ShowName} and userid: {tvShowMapping.UserId}"); return(GenerateResponse(tvShowMapping)); } catch (Exception ex) { _logger.AddErrorDetail($"AddUserTVShowMapping: Error, could not add show mapping, error was - {ex.Message}"); _logger.SubmitException(ex); return(GenerateResponse(tvShowMapping, ex.Message)); } }