public async Task User_Should_Unfollow_Another_User() { User followerUser = new User((Nickname)"user3", (FullName)"test3 user3", Password.Create("password").Value, (Email)"*****@*****.**", "bio3"); User followedUser = new User((Nickname)"user4", (FullName)"test4 user4", Password.Create("password").Value, (Email)"*****@*****.**", "bio4"); Result unfollowResult; using (var session = _testFixture.OpenSession(_output)) { await session.SaveAsync(followerUser); await session.SaveAsync(followedUser); await session.SaveAsync(new Follow(followerUser, followedUser)); } var unfollowCommand = new UnfollowCommand(followerUser.ID, followedUser.Nickname); using (var session = _testFixture.OpenSession(_output)) { var handler = new UnfollowCommandHandler(session, Log.Logger); unfollowResult = await handler.Handle(unfollowCommand, default); } using (new AssertionScope()) { unfollowResult.IsSuccess.Should().BeTrue(); using (var session = _testFixture.OpenSession(_output)) { (await session.GetAsync <User>(followerUser.ID)).Followed.Count().Should().Be(0); (await session.GetAsync <User>(followedUser.ID)).Followers.Count().Should().Be(0); } } }
public void GivenTargetDoesNotExist_ThrowsNotFoundException() { var command = new UnfollowCommand { Username = "******", }; async Task Handler() => await SendAsync(command); Assert.ThrowsAsync(typeof(NotFoundException), Handler); }
public async Task <IActionResult> Unfollow(string username) { var command = new UnfollowCommand { Username = username, }; await Mediator.Send(command); return(Ok()); }
public async Task <IActionResult> Unfollow(string id) { var command = new UnfollowCommand(User.GetIdentifier(), id); var processCommandResult = await _dispatcher.Send(command); if (processCommandResult.IsSuccess) { return(RedirectToAction(nameof(Profile), new { id })); } return(RedirectToAction("Error", "Home")); }
public async Task Should_Not_Unfollow_Non_Followed_User() { User followerUser = new User((Nickname)"user7", (FullName)"test7 user7", Password.Create("password").Value, (Email)"*****@*****.**", "bio7"); User followedUser = new User((Nickname)"user8", (FullName)"test8 user8", Password.Create("password").Value, (Email)"*****@*****.**", "bio8"); Result unfollowResult; using (var session = _testFixture.OpenSession(_output)) { await session.SaveAsync(followerUser); await session.SaveAsync(followedUser); } var unfollowCommand = new UnfollowCommand(followerUser.ID, followedUser.Nickname); using (var session = _testFixture.OpenSession(_output)) { var handler = new UnfollowCommandHandler(session, Log.Logger); unfollowResult = await handler.Handle(unfollowCommand, default); } unfollowResult.IsSuccess.Should() .BeFalse($"User [{followerUser.Nickname}] is not following user [{followedUser.Nickname}]."); }