public async Task User_Should_Follow_Another_User() { User followerUser = new User((Nickname)"user1", (FullName)"test1 user1", Password.Create("password").Value, (Email)"*****@*****.**", "bio1"); User followedUser = new User((Nickname)"user2", (FullName)"test2 user2", Password.Create("password").Value, (Email)"*****@*****.**", "bio2"); Result followResult; using (var session = _testFixture.OpenSession(_output)) { await session.SaveAsync(followerUser); await session.SaveAsync(followedUser); } var followCommand = new FollowCommand(followerUser.ID, followedUser.Nickname); using (var session = _testFixture.OpenSession(_output)) { var handler = new FollowCommandHandler(session, Log.Logger); followResult = await handler.Handle(followCommand, default); } using (new AssertionScope()) { followResult.IsSuccess.Should().BeTrue(); using (var session = _testFixture.OpenSession(_output)) { (await session.GetAsync <User>(followerUser.ID)).Followed.Count().Should().Be(1); (await session.GetAsync <User>(followedUser.ID)).Followers.Count().Should().Be(1); } } }
public void Setup() { _consoleMock = new ConsoleMock(); _userRepositoryMock = new UserRepositoryMock(); _followCommandHandler = new FollowCommandHandler(_consoleMock.Object, _userRepositoryMock.Object); }
public async Task Should_Not_Follow_User_Twice() { User followerUser = new User((Nickname)"user5", (FullName)"test5 user5", Password.Create("password").Value, (Email)"*****@*****.**", "bio5"); User followedUser = new User((Nickname)"user6", (FullName)"test6 user6", Password.Create("password").Value, (Email)"*****@*****.**", "bio6"); Result followResult; using (var session = _testFixture.OpenSession(_output)) { await session.SaveAsync(followerUser); await session.SaveAsync(followedUser); } var followCommand = new FollowCommand(followerUser.ID, followedUser.Nickname); using (var session = _testFixture.OpenSession(_output)) { var handler = new FollowCommandHandler(session, Log.Logger); followResult = await handler.Handle(followCommand, default); } using (var session = _testFixture.OpenSession(_output)) { var handler = new FollowCommandHandler(session, Log.Logger); followResult = await handler.Handle(followCommand, default); } using (new AssertionScope()) { followResult.IsSuccess.Should() .BeFalse($"User [{followedUser.Nickname}] is already followed by user [{followerUser.Nickname}]."); using (var session = _testFixture.OpenSession(_output)) { (await session.GetAsync <User>(followerUser.ID)).Followed.Count().Should().Be(1); (await session.GetAsync <User>(followedUser.ID)).Followers.Count().Should().Be(1); } } }