public async Task Handle_GivenValidId_LoginUserIsNotLeader_ThrowsException() { // Login user is member var currentUserServiceMock = new Mock <ICurrentUserService>(); currentUserServiceMock.Setup(m => m.UserId) .Returns(memberId.ToString()); var sut = new UpdateTeamCommandHandler(_context, currentUserServiceMock.Object); var command = new UpdateTeamCommand { Id = validId.ToString(), Name = "Change team name 1.", Description = "New description.", Users = new List <UserModel> { new UserModel() { UserId = Guid.NewGuid(), DisplayName = "TestUser1" } } }; await Should.ThrowAsync <NotOwnedException>(() => sut.Handle(command, CancellationToken.None)); }
public UpdateTeamCommandTests() : base() { // Login user is leader var currentUserServiceMock = new Mock <ICurrentUserService>(); currentUserServiceMock.Setup(m => m.UserId) .Returns(leaderId.ToString()); _sut = new UpdateTeamCommandHandler(_context, currentUserServiceMock.Object); }
public async Task HandleShouldFailWhenRecordWithSameNameAlreadyExist() { // Arrange var id = Guid.NewGuid(); var name = "name"; var image = "image"; var description = "description"; var layout = "layout"; var driverWait = "Yes"; var operators = new List <Guid>() { Guid.NewGuid() }; var filterContent = "{site:123456}"; var version = 1; var team = new Team(TeamId.With(id), new Name(name)); team.SetVersion(version); var teamWriteRepositoryMock = new Mock <ITeamWriteRepository>(); teamWriteRepositoryMock.Setup(x => x.UpdateAsync(It.IsAny <Team>())).Throws <UniqueKeyException>(); var teamWriteRepository = teamWriteRepositoryMock.Object; var teamReadRepositoryMock = new Mock <ITeamReadRepository>(); teamReadRepositoryMock.Setup(x => x.GetAsync(id)).Returns(Task.FromResult(team)); var teamReadRepository = teamReadRepositoryMock.Object; var versionProviderMock = new Mock <IVersionProvider>(); versionProviderMock.Setup(x => x.Generate()).Returns(version); var versionProvider = versionProviderMock.Object; var command = new UpdateTeamCommand(id, name, image, description, driverWait, layout, operators, filterContent, version); var handler = new UpdateTeamCommandHandler(teamWriteRepository, teamReadRepository, versionProvider); // Act var result = await handler.Handle(command, CancellationToken.None); // Assert result.IsFailure.Should().BeTrue(); result.Failures.Should().OnlyContain(x => x.Code == HandlerFaultCode.Conflict.Name && x.Message == HandlerFailures.ConflictTeam && x.Target == "name"); }
public async Task HandleShouldReturnOk() { // Arrange var id = Guid.NewGuid(); var name = "name"; var image = "image"; var description = "description"; var layout = "layout"; var driverWait = "Yes"; var operators = new List <Guid>() { Guid.NewGuid() }; var filterContent = "{site:123456}"; var version = 1; var team = new Team(TeamId.With(id), new Name(name)); team.SetVersion(version); var teamWriteRepositoryMock = new Mock <ITeamWriteRepository>(); teamWriteRepositoryMock.Setup(x => x.UpdateAsync(It.IsAny <Team>())).Returns(Task.CompletedTask); var teamWriteRepository = teamWriteRepositoryMock.Object; var teamReadRepositoryMock = new Mock <ITeamReadRepository>(); teamReadRepositoryMock.Setup(x => x.GetAsync(id)).Returns(Task.FromResult(team)); var teamReadRepository = teamReadRepositoryMock.Object; var versionProviderMock = new Mock <IVersionProvider>(); versionProviderMock.Setup(x => x.Generate()).Returns(version); var versionProvider = versionProviderMock.Object; var command = new UpdateTeamCommand(id, name, image, description, driverWait, layout, operators, filterContent, version); var handler = new UpdateTeamCommandHandler(teamWriteRepository, teamReadRepository, versionProvider); // Act var result = await handler.Handle(command, CancellationToken.None); // Assert result.IsFailure.Should().BeFalse(); result.Should().BeOfType(typeof(Result)); }
public async Task HandleShouldReturnFailWhenNotFound() { // Arrange var id = Guid.NewGuid(); var name = "name"; var image = "image"; var description = "description"; var layout = "layout"; var driverWait = "Yes"; var operators = new List <Guid>() { Guid.NewGuid() }; var filterContent = "{site:123456}"; var version = 1; var teamWriteRepositoryMock = new Mock <ITeamWriteRepository>(); teamWriteRepositoryMock.Setup(x => x.UpdateAsync(It.IsAny <Team>())).Returns(Task.CompletedTask); var teamWriteRepository = teamWriteRepositoryMock.Object; var teamReadRepositoryMock = new Mock <ITeamReadRepository>(); teamReadRepositoryMock.Setup(x => x.GetAsync(id)).Throws <EntityNotFoundDbException>(); var teamReadRepository = teamReadRepositoryMock.Object; var versionProviderMock = new Mock <IVersionProvider>(); versionProviderMock.Setup(x => x.Generate()).Returns(version); var versionProvider = versionProviderMock.Object; var command = new UpdateTeamCommand(id, name, image, description, driverWait, layout, operators, filterContent, version); var handler = new UpdateTeamCommandHandler(teamWriteRepository, teamReadRepository, versionProvider); // Act var result = await handler.Handle(command, CancellationToken.None); // Assert result.IsFailure.Should().BeTrue(); result.Failures.Should().OnlyContain(x => x.Code == HandlerFaultCode.NotFound.Name && x.Message == HandlerFailures.TeamNotFound && x.Target == "id"); }
public async Task UpdateTeamCommand_Can_Update_Team() { using (var dbContext = GetDbContext("UpdateTeamCommand_Can_Update_Team")) { var fakeRepo = new TeamRepository(dbContext); await fakeRepo.AddAsync(new Domain.Entities.Team { Name = "TeamName", Longitude = 8.11, Latitude = 9.43, }); } using (var dbContext = GetDbContext("UpdateTeamCommand_Can_Update_Team")) { var fakeRepo = new TeamRepository(dbContext); var fakeLogger = new Mock <ILogger <UpdateTeamCommandHandler> >(); var handler = new UpdateTeamCommandHandler(fakeRepo, GetMapper(), fakeLogger.Object); var command = new UpdateTeamCommand { Id = 1, Name = "NewTeamName", Longitude = 2.11, Latitude = 6.43, }; var result = await handler.Handle(command, default); Assert.False(result.Notifications.HasErrors()); Assert.Equal(command.Name, result.TeamLookupModel.Name); Assert.Equal(command.Longitude, result.TeamLookupModel.Longitude); Assert.Equal(command.Latitude, result.TeamLookupModel.Latitude); } }