public async Task GiveInvalidTeamId_ShouldRaiseNotFound() { var sut = new CreateChannelConversationCommandHandler(_context, _mapper); List <UserModel> members = new List <UserModel>(); members.AddRange(new[] { new UserModel { UserId = userId1, DisplayName = "User 1" }, new UserModel { UserId = userId2, DisplayName = "User 2" } }); await Should.ThrowAsync <NotFoundException>(() => sut.Handle(new CreateChannelConversationCommand { TeamId = Guid.NewGuid().ToString(), ChannelDescription = "Channel test 1", IsPublic = false, Members = members, Name = "NAME ABC", }, CancellationToken.None)); }
public async Task GiveValidRequestWithIsPublic_ShouldCreateConversationChannel() { var sut = new CreateChannelConversationCommandHandler(_context, _mapper); // test general channel -> IsPublic = true var command = new CreateChannelConversationCommand() { TeamId = validTeamId.ToString(), ChannelDescription = "Channel test 1", IsPublic = true, Name = "NAME ABC2", }; await sut.Handle(command, CancellationToken.None); var entity = await _context.Conversations.Where(e => e.Name == "NAME ABC2").FirstOrDefaultAsync(); entity.ShouldNotBeNull(); entity.TeamId.ShouldBe(validTeamId.ToString()); entity.isPublic.ShouldBeTrue(); entity.Type.ShouldBe("channel"); // Duplicate Member list??? dont know why var temp = entity.Members.GroupBy(e => e.UserOid).Select(group => group.First()); temp.Count().ShouldBe(4); temp.Where(e => e.UserOid == userId1.ToString()).Count().ShouldBe(1); temp.Where(e => e.UserOid == userId2.ToString()).Count().ShouldBe(1); temp.Where(e => e.UserOid == userId3.ToString()).Count().ShouldBe(1); temp.Where(e => e.UserOid == userId4.ToString()).Count().ShouldBe(1); }
public async Task GiveValidRequestWithIsNOTPublic_ShouldCreateConversationChannel() { var sut = new CreateChannelConversationCommandHandler(_context, _mapper); List <UserModel> members1 = new List <UserModel>(); members1.AddRange(new[] { new UserModel { UserId = userId1, DisplayName = "User 1" }, new UserModel { UserId = userId2, DisplayName = "User 2" } }); // test private channel -> IsPublic = false var command = new CreateChannelConversationCommand() { TeamId = validTeamId2.ToString(), ChannelDescription = "Channel test 1", IsPublic = false, Members = members1, Name = "TestisPublicFalse", }; await sut.Handle(command, CancellationToken.None); var entity = await _context.Conversations.Where(e => e.Name == "TestisPublicFalse").FirstOrDefaultAsync(); entity.ShouldNotBeNull(); entity.TeamId.ShouldBe(validTeamId2.ToString()); entity.isPublic.ShouldBeFalse(); entity.Type.ShouldBe("channel"); // Duplicate Member list??? dont know why var temp = entity.Members.GroupBy(e => e.UserOid).Select(group => group.First()); temp.Count().ShouldBe(2); temp.Where(e => e.UserOid == userId1.ToString()).Count().ShouldBe(1); temp.Where(e => e.UserOid == userId2.ToString()).Count().ShouldBe(1); }