Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        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}].");
        }