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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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();
        }
Exemple #6
0
        private ActionResponse <UserTVShowMapping> GenerateResponse(UserTVShowMapping mapping, string message = null)
        {
            var response = new ActionResponse <UserTVShowMapping>
            {
                Result        = mapping,
                WasSuccessful = message == null,
                Message       = message
            };

            return(response);
        }
Exemple #7
0
        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));
            }
        }