Beispiel #1
0
        public async Task Handle_SetsDraftToFalse_WhenThereIsAParentId(bool intitialStatus)
        {
            //arrange
            var owner = new User {
                Username = "******"
            };

            DbContext.Users.Add(owner);

            var parent = new Prompt {
                Owner = owner
            };

            DbContext.Prompts.Add(parent);

            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = owner.Id
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);

            var command = new CreatePromptCommand {
                OwnerId = user.Id, SaveDraft = intitialStatus, ParentId = parent.Id
            };

            //act
            var actual = await _handler.Handle(command);

            //assert
            Prompt?actualPrompt = DbContext.Prompts.Find(actual);

            Assert.False(actualPrompt.IsDraft);
        }
Beispiel #2
0
        public ActionResult Get(string userId)
        {
            if (string.IsNullOrWhiteSpace(userId))
            {
                return(RedirectLocal("/"));
            }

            IdentityUser userProfile = UserManager.FindById(userId);

            if (userProfile == null)
            {
                return(RedirectLocal("/"));
            }

            GetUserViewModel viewModel = new GetUserViewModel
            {
                Id          = userProfile.Id,
                LastPost    = userProfile.LastPost,
                Nick        = userProfile.Nick,
                RecentPosts = userProfile.RecentPosts,
                UserName    = userProfile.UserName
            };

            return(View(viewModel));
        }
Beispiel #3
0
        Handle_ThrowsCreatePromptUnauthorizedParentException_WhenParentIdIsGiven_AndTheCurrentUserIsNotTheSameId()
        {
            //arrange
            var owner = new User {
                Username = "******"
            };
            var ownerTwo = new User {
                Username = "******"
            };

            DbContext.Users.Add(owner);
            DbContext.Users.Add(ownerTwo);
            await DbContext.SaveChangesAsync();

            var parent = new Prompt {
                OwnerId = owner.Id
            };

            DbContext.Prompts.Add(parent);
            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = ownerTwo.Id
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);
            var command = new CreatePromptCommand {
                ParentId = parent.Id
            };

            //act + assert
            await Assert.ThrowsAsync <CreatePromptUnauthorizedParentException>(
                async() => await _handler.Handle(command));
        }
Beispiel #4
0
        public async Task <IActionResult> GetAllUser([FromQuery] GetUserViewModel model)
        {
            PageInfoHelper <User> result = await _userService.GetAllUser(model);

            Response.Headers.Add("Pagination-X", JsonSerializer.Serialize(result.TotalCount));
            return(Ok(result));
        }
Beispiel #5
0
        public async Task Handle_UpdatesAPromptWithNovelAiScenarioSetToExpectedValue()
        {
            //arrange
            const string?expectedString = null;
            var          owner          = new User {
                Username = "******"
            };
            var prompt = new Prompt {
                Owner = owner
            };

            DbContext.Prompts.Add(prompt);
            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = owner.Id
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);
            var command = new UpdatePromptCommand {
                Id = prompt.Id, OwnerId = user.Id, NovelAiScenario = expectedString
            };

            //act
            await _handler.Handle(command);

            //assert
            Prompt?actualPrompt = await DbContext.Prompts.FindAsync(prompt.Id);

            Assert.Equal(expectedString, actualPrompt.NovelAiScenario);
        }
Beispiel #6
0
        public async Task Handle_ThrowsDeletePromptUserUnauthorizedException_WhenTheUserIdDoesNotMatchPromptOwnerId(
            int userId)
        {
            //arrange
            var owner = new User {
                Username = "******"
            };
            var prompt = new Prompt {
                Owner = owner
            };

            DbContext.Add(prompt);
            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = userId
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);

            var command = new DeletePromptCommand(prompt.Id);

            //act + assert
            await Assert.ThrowsAsync <DeletePromptUserUnauthorizedException>(async() => await _handler.Handle(command));
        }
Beispiel #7
0
        public async Task Handle_RemovesPrompt_WhenUserHasDeletePermission(int expectedPromptCount)
        {
            //arrange
            var prompt = new Prompt();

            DbContext.Add(prompt);
            for (var i = 0; i < expectedPromptCount; i++)
            {
                DbContext.Add(new Prompt());
            }

            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Role = RoleEnum.Delete
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);

            var command = new DeletePromptCommand(prompt.Id);

            //act
            await _handler.Handle(command);

            //assert
            Assert.Equal(expectedPromptCount, await DbContext.Prompts.CountAsync());
        }
        public async Task Handle_ReturnsPrompt_IfPromptIsDraft_AndUserServiceReturnsUserWithCorrectId()
        {
            //arrange
            var owner = new User {
                Username = "******"
            };
            var prompt = new Prompt {
                IsDraft = true, Owner = owner
            };

            DbContext.Prompts.Add(prompt);
            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = owner.Id
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);
            var query = new GetPromptQuery(prompt.Id);

            //act
            GetPromptViewModel?result = await _handler.Handle(query);

            //assert
            Assert.NotNull(result);
            Assert.True(result.IsDraft);
        }
Beispiel #9
0
        public async Task Handle_SetsAPromptWithScriptZipSetToNull()
        {
            //arrange
            var owner = new User {
                Username = "******"
            };
            var prompt = new Prompt {
                Owner = owner
            };

            DbContext.Prompts.Add(prompt);
            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = owner.Id
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);
            var command = new UpdatePromptCommand {
                Id = prompt.Id, OwnerId = user.Id, ScriptZip = null
            };

            //act
            await _handler.Handle(command);

            //assert
            Prompt?actualPrompt = await DbContext.Prompts.FindAsync(prompt.Id);

            Assert.Null(actualPrompt.ScriptZip);
        }
Beispiel #10
0
        public async Task Handle_DoesNotChangeDraftStatus_WhenUserIsNotOwner(bool expectedDraftStatus)
        {
            //arrange
            var owner = new User {
                Username = "******"
            };
            var prompt = new Prompt {
                IsDraft = expectedDraftStatus, Owner = owner
            };

            DbContext.Prompts.Add(prompt);
            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = int.MaxValue, Role = RoleEnum.FieldEdit
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);
            var command = new UpdatePromptCommand {
                Id = prompt.Id, SaveDraft = !expectedDraftStatus
            };

            //act
            await _handler.Handle(command);

            //assert
            Prompt?actual = DbContext.Prompts.Find(prompt.Id);

            Assert.Equal(expectedDraftStatus, actual.IsDraft);
        }
Beispiel #11
0
        public async Task Handle_SetsIsDraftToTrue_WhenSaveDraftIsTrue(bool initialDraftStatus)
        {
            //arrange
            var owner = new User {
                Username = "******"
            };
            var prompt = new Prompt {
                IsDraft = initialDraftStatus, Owner = owner
            };

            DbContext.Prompts.Add(prompt);
            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = owner.Id
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);
            var command = new UpdatePromptCommand {
                Id = prompt.Id, SaveDraft = true
            };

            //act
            await _handler.Handle(command);

            //assert
            Prompt?actual = DbContext.Prompts.Find(prompt.Id);

            Assert.True(actual.IsDraft);
        }
Beispiel #12
0
        public async Task Handle_DoesNotChangePublishDate_WhenItHasValue(bool initialDraftStatus,
                                                                         bool updatedDraftStatus)
        {
            //arrange
            DateTime expectedDate = DateTime.UtcNow;
            var      owner        = new User {
                Username = "******"
            };
            var prompt = new Prompt {
                IsDraft = initialDraftStatus, Owner = owner, PublishDate = expectedDate
            };

            DbContext.Prompts.Add(prompt);
            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = owner.Id, Role = RoleEnum.FieldEdit
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);
            var command = new UpdatePromptCommand {
                Id = prompt.Id, SaveDraft = updatedDraftStatus
            };

            //act
            await _handler.Handle(command);

            //assert
            Prompt?actual = DbContext.Prompts.Find(prompt.Id);

            Assert.Equal(expectedDate, actual.PublishDate);
        }
Beispiel #13
0
        public async Task Handle_LeavesPublishNull_WhenSaveDraftIsTrue_AndPromptHasNoPublishDate_AndWasDraft()
        {
            //arrange
            var owner = new User {
                Username = "******"
            };
            var prompt = new Prompt {
                IsDraft = true, Owner = owner
            };

            DbContext.Prompts.Add(prompt);
            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = owner.Id, Role = RoleEnum.FieldEdit
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);
            var command = new UpdatePromptCommand {
                Id = prompt.Id, SaveDraft = true
            };

            //act
            await _handler.Handle(command);

            //assert
            Prompt?actual = DbContext.Prompts.Find(prompt.Id);

            Assert.Null(actual.PublishDate);
        }
        public async Task Authenticate_User_Success()
        {
            AuthenticateUserViewModel user = new AuthenticateUserViewModel
            {
                Email    = UserWebApiTest.Email,
                Password = UserWebApiTest.Password
            };

            GetUserViewModel registeredUser = new GetUserViewModel
            {
                Email     = UserWebApiTest.Email,
                FirstName = UserWebApiTest.FirstName,
                LastName  = UserWebApiTest.LastName,
                Id        = 1,
                Token     = "token",
            };

            Response <GetUserViewModel> response = new Response <GetUserViewModel>(success: true, errors: null, data: registeredUser);


            _userServiceMock.Setup(x => x.AuthenticateAsync(It.IsAny <AuthenticateUserViewModel>()))
            .Returns(Task.FromResult(response));

            //Act
            UserController userController = new UserController(_userServiceMock.Object, _loggerMock.Object);
            OkObjectResult result         = await userController.AuthenticateUserAsync(user) as OkObjectResult;


            //Assert
            result.StatusCode.Should()
            .Be((int)System.Net.HttpStatusCode.OK);
        }
Beispiel #15
0
        public async Task Handle_RemovesPrompt_WhenUserIsOwner(int expectedPromptCount)
        {
            //arrange
            var owner = new User {
                Username = "******"
            };
            var prompt = new Prompt {
                Owner = owner
            };

            DbContext.Add(prompt);
            for (var i = 0; i < expectedPromptCount; i++)
            {
                var extraPrompt = new Prompt();
                DbContext.Add(extraPrompt);
            }

            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = owner.Id
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);

            var command = new DeletePromptCommand(prompt.Id);

            //act
            await _handler.Handle(command);

            //assert
            Assert.Equal(expectedPromptCount, await DbContext.Prompts.CountAsync());
        }
Beispiel #16
0
        public async Task Handle_CreatesAPromptWithTheParentId_WhenParentIdIsGiven_AndTheCurrentUserIsTheSameId()
        {
            //arrange
            var owner = new User {
                Username = "******"
            };

            DbContext.Users.Add(owner);
            await DbContext.SaveChangesAsync();

            var parent = new Prompt {
                OwnerId = owner.Id
            };

            DbContext.Prompts.Add(parent);
            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = owner.Id
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);
            var command = new CreatePromptCommand {
                ParentId = parent.Id, OwnerId = owner.Id
            };

            //act
            var actual = await _handler.Handle(command);

            //assert
            Prompt?actualPrompt = await DbContext.Prompts.FindAsync(actual);

            Assert.NotNull(actualPrompt);
            Assert.Equal(parent.Id, actualPrompt.ParentId);
        }
Beispiel #17
0
        public async Task <Response <GetUserViewModel> > CreateAsync(CreateUserViewModel model)
        {
            CreateUserViewModelValidation validator = new CreateUserViewModelValidation();
            ValidationResult result = validator.Validate(model);

            if (!result.IsValid)
            {
                Response <GetUserViewModel> response = new Response <GetUserViewModel>(success: false, errors: result.Errors.Select(x => x.ErrorMessage).ToArray());

                return(response);
            }

            User user = await _userRepository.GetByEmailAsync(model.Email);

            if (user != null)
            {
                Response <GetUserViewModel> response = new Response <GetUserViewModel>(success: false, errors: new[] { "This user already exists." });

                return(response);
            }

            PasswordHasher <User> passwordHasher = new PasswordHasher <User>();

            string hashed = passwordHasher.HashPassword(user, model.Password);

            User newUser = new User(
                email: model.Email,
                lastName: model.LastName,
                firstName: model.FirstName,
                password: hashed);

            _userRepository.Create(newUser);

            bool created = await _userRepository.UnitOfWork.SaveChangesAsync() > 0;

            if (!created)
            {
                Response <GetUserViewModel> response = new Response <GetUserViewModel>(success: false, errors: new[] { "Unable to create user, try again later." });

                return(response);
            }

            User createdUser = await _userRepository.GetByEmailAsync(newUser.Email);

            string token = _tokenService.GenerateToken(createdUser);

            GetUserViewModel responseViewModel = new GetUserViewModel
            {
                Id        = createdUser.Id,
                FirstName = createdUser.FirstName,
                LastName  = createdUser.LastName,
                Token     = token,
                Email     = createdUser.Email,
                Guid      = createdUser.Guid
            };

            return(new Response <GetUserViewModel>(success: true, errors: null, data: responseViewModel));
        }
Beispiel #18
0
        //string dbPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "myDB.db3");
        public GetAllUserPage()
        {
            InitializeComponent();
            BindingContext = new GetUserViewModel();

            //BindingContext = new GetAllUserPage();
            //var db = new SQLiteConnection(dbPath);
            //UsersListView.ItemsSource = db.Table<User>().OrderBy(x => x.Name).ToList();
        }
Beispiel #19
0
        public async Task <IActionResult> Create([FromForm] CreateUserViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var existUser = await _userManager.FindByNameAsync(model.UserName);

            if (existUser != null)
            {
                return(BadRequest());
            }

            if (!Regex.IsMatch(model.UserName, @"^09(1[0-9]|3[1-9]|2[1-9])-?[0-9]{3}-?[0-9]{4}$"))
            {
                return(BadRequest());
            }

            var user = new ApplicationUser();

            user.UserName             = model.UserName;
            user.PhoneNumber          = model.UserName;
            user.PhoneNumberConfirmed = true;
            var result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                var addToRole = await _userManager.AddToRoleAsync(user, model.Role);

                if (addToRole.Succeeded)
                {
                    //create profile
                    var profile = new Profile();
                    profile.AccountId = user.Id;
                    profile.Account   = user;
                    await _context.Profiles.AddAsync(profile);

                    bool addedProfile = Convert.ToBoolean(await _context.SaveChangesAsync());
                    // send registerd sms successfully with password;
                    if (addedProfile)
                    {
                        var sendedMessage = await _messageService.SendRegisterSuccessfullySms(user.UserName, model.Password);

                        if (sendedMessage)
                        {
                            var viewModel = new GetUserViewModel();
                            viewModel.UserName = user.UserName;
                            viewModel.Role     = model.Role;
                            return(Ok(viewModel));
                        }
                    }
                }
            }
            return(BadRequest());
        }
Beispiel #20
0
        /// <summary>
        /// 默认获取所有用户,如果有部门名将查询对应的部门人员
        /// </summary>
        /// <param name=""></param>
        /// <returns></returns>
        public async Task <PageInfoHelper <User> > GetAllUser(GetUserViewModel model)
        {
            IQueryable <User> result = _userRepository.GetAllByOrder().OrderBy(m => m.DepartmentId).ThenBy(m => m.EmpNo).Include(m => m.Department);

            if (model.DeptId != Guid.Empty)
            {
                result = result.Where(m => m.DepartmentId == model.DeptId);
            }
            return(await PageInfoHelper <User> .CreatePageMsgAsync(result, model.PageNumber, model.PageSize));
        }
Beispiel #21
0
        public async Task <IActionResult> Get([FromBody] GetUserViewModel model)
        {
            try
            {
                var response = await _service.GetUser(User, model, ModelState);

                return(response.JsonResult());
            }
            catch (Exception error)
            {
                _logger.Error(error);
                return(StandardResponse.Forbidden().JsonResult());
            }
        }
Beispiel #22
0
        public async Task <Response <GetUserViewModel> > AuthenticateAsync(AuthenticateUserViewModel model)
        {
            AuthenticateUserViewModelValidator validator = new AuthenticateUserViewModelValidator();

            ValidationResult result = validator.Validate(model);

            if (!result.IsValid)
            {
                Response <GetUserViewModel> response = new Response <GetUserViewModel>(success: false, errors: result.Errors.Select(x => x.ErrorMessage).ToArray());

                return(response);
            }

            User user = await _userRepository.GetByEmailAsync(model.Email);

            if (user == null)
            {
                Response <GetUserViewModel> response = new Response <GetUserViewModel>(success: false, errors: new[] { "This user doesn't exist. " });

                return(response);
            }

            PasswordHasher <User> passwordHasher = new PasswordHasher <User>();

            PasswordVerificationResult pvr = passwordHasher.VerifyHashedPassword(user, user.Password, model.Password);

            if (pvr == PasswordVerificationResult.Failed)
            {
                Response <GetUserViewModel> response = new Response <GetUserViewModel>(success: false, errors: new[] { "Wrong user/password combination, friend. " });


                return(response);
            }

            string token = _tokenService.GenerateToken(user);

            GetUserViewModel responseUserViewModel = new GetUserViewModel
            {
                Id        = user.Id,
                FirstName = user.FirstName,
                LastName  = user.LastName,
                Token     = token,
                Email     = user.Email,
                Guid      = user.Guid
            };

            return(new Response <GetUserViewModel>(success: true, data: responseUserViewModel, errors: null));
        }
Beispiel #23
0
        public async Task <IActionResult> GetUserByName(string userName)
        {
            var user = await _userManager.FindByNameAsync(userName);

            if (user == null)
            {
                return(NotFound());
            }
            var viewModel = new GetUserViewModel();

            viewModel.UserName = user.UserName;
            viewModel.IsValid  = user.IsValid;
            var roles = await _userManager.GetRolesAsync(user);

            viewModel.Role = roles[0];
            return(Ok(viewModel));
        }
        public async Task <StandardResponse> GetUser(ClaimsPrincipal identity, GetUserViewModel model, ModelStateDictionary modelState)
        {
            if (!modelState.IsValid)
            {
                return(modelState.StandardError());
            }

            using (var db = new ServiceDb())
            {
                using (var user = await _userService.Become(db, identity, null))
                {
                    var otherUser = await _userService.Get(db, model.Id);

                    return(StandardResponse.For(UserViewModel.From(otherUser)));
                }
            }
        }
        public async Task Handle_ReturnsNull_WhenTopLevelParentIsDraft_AndUserServiceReturnsUserWithWrongId(int depth)
        {
            //arrange
            var owner = new User {
                Username = "******"
            };
            var newUser = new User {
                Username = "******"
            };

            DbContext.Users.Add(newUser);

            var parent = new Prompt {
                IsDraft = true, Owner = owner
            };

            DbContext.Prompts.Add(parent);
            await DbContext.SaveChangesAsync();

            var id = parent.Id;

            for (var i = 0; i < depth; i++)
            {
                var child = new Prompt {
                    IsDraft = false, Owner = owner, ParentId = id
                };
                DbContext.Prompts.Add(child);
                await DbContext.SaveChangesAsync();

                id = child.Id;
            }

            var user = new GetUserViewModel {
                Id = newUser.Id
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);
            var query = new GetPromptQuery(id);

            //act
            GetPromptViewModel?result = await _handler.Handle(query);

            //assert
            Assert.Null(result);
        }
Beispiel #26
0
        public void TestMethodApiUser_ListUsers()
        {
            var contrlUser = new UserController();
            //var conex = ToDoList_DB.getInstance().singleton;

            var user = new GetUserViewModel()
            {
                cd_user       = "",
                createdOnDate = DateTime.Now,
                nm_user       = "******",
                pageIndex     = 1,
                pageTotal     = 3
            };

            // var lstUsers = contrlUser.GetAllUsers(user);

            Assert.AreEqual(HttpStatusCode.BadRequest, "404");
        }
Beispiel #27
0
        public HttpResponseMessage SaveUser([FromBody] GetUserViewModel user)
        {
            try
            {
                ToDoList_DB.getInstance().singleton.As <User_DB>().pr_user_save(iVch_cd_user: user.cd_user,
                                                                                iVch_nm_user: user.cd_user);

                var vTest = new
                {
                    data = "Successfull"
                };

                return(Request.CreateResponse(HttpStatusCode.OK, vTest));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, ex.ToString()));
            }
        }
Beispiel #28
0
        public async Task Handle_RemovesPrompt_AndAllItsChildren_AndAllSubChildren_WhenUserIsOwner(
            int expectedPromptCount, int childDepth)
        {
            //arrange
            var owner = new User {
                Username = "******"
            };
            var child  = new Prompt();
            var prompt = new Prompt {
                Children = new List <Prompt> {
                    child
                }, Owner = owner
            };

            for (var i = 0; i < childDepth; i++)
            {
                var newChild = new Prompt();
                child.Children.Add(newChild);
                child = newChild;
            }

            DbContext.Add(prompt);
            for (var i = 0; i < expectedPromptCount; i++)
            {
                DbContext.Add(new Prompt());
            }

            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = owner.Id
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);

            var command = new DeletePromptCommand(prompt.Id);

            //act
            await _handler.Handle(command);

            //assert
            Assert.Equal(expectedPromptCount, await DbContext.Prompts.CountAsync());
        }
Beispiel #29
0
        public HttpResponseMessage GetAllUsers([FromBody] GetUserViewModel user)
        {
            try
            {
                var resp = ToDoList_DB.getInstance().singleton.As <User_DB>().pr_user_list(iVch_cd_user: user.cd_user,
                                                                                           iVch_nm_user: user.cd_user,
                                                                                           pageIndex: user.pageIndex,
                                                                                           pageTotal: user.pageTotal);

                var vTest = new
                {
                    data = resp
                };

                return(Request.CreateResponse(HttpStatusCode.OK, vTest));
            }
            catch (Exception ex) {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, ex.ToString()));
            }
        }
Beispiel #30
0
        public async Task Handle_ThrowsDeletePromptDoesNotExistException_WhenPromptIdDoesNotExist(int id)
        {
            //arrange
            var owner = new User {
                Username = "******"
            };

            DbContext.Users.Add(owner);
            await DbContext.SaveChangesAsync();

            var user = new GetUserViewModel {
                Id = owner.Id
            };

            _mockUserService.Setup(e => e.TryGetCurrentUser(out user)).Returns(true);
            var command = new DeletePromptCommand(id);

            //act + assert
            await Assert.ThrowsAsync <DeletePromptDoesNotExistException>(async() => await _handler.Handle(command));
        }