public void Validate_ValidCommand_ShouldBeTrue() { var command = new CreateChannelConversationCommand { Members = new List <UserModel> { new UserModel { UserId = Guid.NewGuid(), DisplayName = "Long" }, new UserModel { UserId = Guid.NewGuid(), DisplayName = "Quan" }, }, TeamId = teamId1.ToString(), IsPublic = false, Name = "Test channel ..", }; var validator = new CreateChannelConversationCommandValidator(); var result = validator.Validate(command); result.IsValid.ShouldBe(true); }
public void Validate_NameIsGreaterThan200_ShouldBeFalse() { var command = new CreateChannelConversationCommand { Name = new string('a', 201), Members = new List <UserModel> { new UserModel { UserId = Guid.NewGuid(), DisplayName = "Long" }, new UserModel { UserId = Guid.NewGuid(), DisplayName = "Quan" }, }, TeamId = teamId1.ToString(), IsPublic = false }; var validator = new CreateChannelConversationCommandValidator(); var result = validator.Validate(command); result.IsValid.ShouldBe(false); }
public async Task GivenValidTeamId_EnsureSuccess() { var client = await _factory.GetAuthenticatedClientAsync(); var command = new CreateChannelConversationCommand { Members = new List <UserModel> { new UserModel() { UserId = Guid.NewGuid(), DisplayName = "TestUser1" }, new UserModel() { UserId = Guid.NewGuid(), DisplayName = "TestUser1" } }, IsPublic = true, Name = "test", TeamId = "197d0438-e04b-453d-b5de-eca05960c6ae" }; var content = IntegrationTestHelper.GetRequestContent(command); var response = await client.PostAsync($"/api/conversation/CreateChannel", content); response.EnsureSuccessStatusCode(); response.StatusCode.ShouldBe(HttpStatusCode.OK); }
public async Task GivenDupplicateName_ReturnsBadRequest() { var client = await _factory.GetAuthenticatedClientAsync(); var command = new CreateChannelConversationCommand { Members = new List <UserModel> { new UserModel() { UserId = Guid.NewGuid(), DisplayName = "TestUser1" }, new UserModel() { UserId = Guid.NewGuid(), DisplayName = "TestUser1" } }, IsPublic = true, Name = "duplicate", TeamId = Guid.NewGuid().ToString() }; var content = IntegrationTestHelper.GetRequestContent(command); var response = await client.PostAsync($"/api/conversation/CreateChannel", content); response.StatusCode.ShouldBe(HttpStatusCode.BadRequest); }
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 <ActionResult <ConversationModel> > CreateChannel(CreateChannelConversationCommand command) { try { var conversation = await Mediator.Send(command); return(conversation); } catch (Exception) { return(BadRequest()); } }
public void Validate_MemberIsLessThanTwo_ShouldBeFalse() { var command = new CreateChannelConversationCommand { Members = new List <UserModel> { }, TeamId = teamId1.ToString(), IsPublic = true }; var validator = new CreateChannelConversationCommandValidator(); var result = validator.Validate(command); result.IsValid.ShouldBe(false); }
public void Validate_MemberIsEmpty_IsNOTPublic_ShouldBeFalse() { var command = new CreateChannelConversationCommand { Members = new List <UserModel>() { }, IsPublic = true, Name = "TEST isPublic Channel", TeamId = teamId1.ToString() }; var validator = new CreateChannelConversationCommandValidator(); var result = validator.Validate(command); result.IsValid.ShouldBe(true); }
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); }