public async void ShouldUpdateCorrect() { var updatedClient = new UpdateClientCommand { Id = clientId, CompanyName = GConst.ValidName }; var status = Task.FromResult(await sut.Handle(updatedClient, CancellationToken.None)); var resultId = context.Clients.SingleOrDefault(x => x.CompanyName == GConst.ValidName).Id; Assert.Equal(clientId, resultId); Assert.Equal(GConst.SuccessStatus, status.Status.ToString()); Assert.Equal(GConst.ValidCount, context.Clients.Count()); }
public async Task Handle_Success() { var command = _fixture.Create <UpdateClientCommand>(); var clientDTO = _fixture.Create <ClientDTO>(); _mockClientService.Setup(x => x.UpdateClientAsync(command, CToken)).ReturnsAsync(clientDTO).Verifiable(); var result = await _updateClientCommandHandler.Handle(command, CToken); Assert.AreEqual(clientDTO, result); _mockClientService.Verify(); }
public async Task Handle_ParseUrls() { Random random = new Random(); Guid clientSystemId = random.NextGuid(); BeerClient savedClient = GetSaveBeerClient(random, clientSystemId); var request = new UpdateClientRequest { SystemId = clientSystemId, ClientId = savedClient.ClientId, AllowedCorsOrigins = new[] { "https://myapp.com/" }, AllowedScopes = new[] { "test", "testus" }, DisplayName = random.GetAlphanumericString(), FrontChannelLogoutUri = "http://mylogout.com/logout/", PostLogoutRedirectUris = new[] { "https://myapp2.com/logout-callback/" }, RedirectUris = new[] { "https://myapp2.com/login-callback/" }, }; var repoMock = new Mock <IClientRepository>(MockBehavior.Strict); repoMock.Setup(x => x.CheckIfClientExists(clientSystemId)).ReturnsAsync(true).Verifiable(); repoMock.Setup(x => x.GetClientById(clientSystemId)).ReturnsAsync(savedClient).Verifiable(); repoMock.Setup(x => x.UpdateClient(It.Is <BeerClient>(y => y.DisplayName == request.DisplayName ))).ReturnsAsync(true).Verifiable(); var handler = new UpdateClientCommandHandler(repoMock.Object, Mock.Of <ILogger <UpdateClientCommandHandler> >()); Boolean result = await handler.Handle(new UpdateClientCommand(request), CancellationToken.None); Assert.True(result); Assert.Equal(new[] { "https://myapp.com" }, savedClient.AllowedCorsOrigins); Assert.Equal(request.AllowedScopes, savedClient.AllowedScopes); Assert.Equal(request.DisplayName, savedClient.DisplayName); Assert.Equal("http://mylogout.com/logout", savedClient.FrontChannelLogoutUri); Assert.Equal(new[] { "https://myapp2.com/login-callback" }, savedClient.RedirectUris); Assert.Equal(new[] { "https://myapp2.com/logout-callback" }, savedClient.PostLogoutRedirectUris); repoMock.Verify(); }
public async Task ShouldUpdate_A_Client() { var name = "Vader"; var request = new UpdateClientCommand { Name = name, Id = Guid.NewGuid() }; var mapper = PetShopMappingConfiguration.GetPetShopMappings(); var mockRepository = new Mock <IClientRepository>(); mockRepository.Setup(p => p.Update(It.Is <Client>(c => c.Name == name))); var handler = new UpdateClientCommandHandler(mapper, mockRepository.Object); var result = await handler.Handle(request, CancellationToken.None); result.Message.Should().BeEquivalentTo("Client Updated"); mockRepository.Verify(m => m.Update(It.IsAny <Client>()), Times.Once()); }
public async Task Handle_Failed_ClientIdNotFound() { Random random = new Random(); Guid clientSystemId = random.NextGuid(); var request = new UpdateClientRequest { SystemId = clientSystemId, }; var repoMock = new Mock <IClientRepository>(MockBehavior.Strict); repoMock.Setup(x => x.CheckIfClientExists(clientSystemId)).ReturnsAsync(false).Verifiable(); var handler = new UpdateClientCommandHandler(repoMock.Object, Mock.Of <ILogger <UpdateClientCommandHandler> >()); Boolean result = await handler.Handle(new UpdateClientCommand(request), CancellationToken.None); Assert.False(result); repoMock.Verify(); }
private static async Task SendRequest(bool repoResult, bool setPassword, bool changeClientId) { Random random = new Random(); Guid clientSystemId = random.NextGuid(); var request = new UpdateClientRequest { SystemId = clientSystemId, ClientId = random.GetAlphanumericString(), AllowedCorsOrigins = new[] { "https://myapp.com" }, AllowedScopes = new[] { "test", "testus" }, DisplayName = random.GetAlphanumericString(), FrontChannelLogoutUri = "http://mylogout.com/logout", PostLogoutRedirectUris = new[] { "https://myapp2.com/logout-callback" }, RedirectUris = new[] { "https://myapp2.com/login-callback" }, RequirePkce = false, }; if (setPassword == true) { request.Password = "******"; } BeerClient savedClient = GetSaveBeerClient(random, clientSystemId); var repoMock = new Mock <IClientRepository>(MockBehavior.Strict); repoMock.Setup(x => x.CheckIfClientExists(clientSystemId)).ReturnsAsync(true).Verifiable(); repoMock.Setup(x => x.GetClientById(clientSystemId)).ReturnsAsync(savedClient).Verifiable(); repoMock.Setup(x => x.UpdateClient(It.Is <BeerClient>(y => y.DisplayName == request.DisplayName ))).ReturnsAsync(repoResult).Verifiable(); if (changeClientId == false) { request.ClientId = savedClient.ClientId; } else { repoMock.Setup(x => x.CheckIfClientIdExists(request.ClientId, request.SystemId)).ReturnsAsync(false).Verifiable(); } var handler = new UpdateClientCommandHandler(repoMock.Object, Mock.Of <ILogger <UpdateClientCommandHandler> >()); Boolean actual = await handler.Handle(new UpdateClientCommand(request), CancellationToken.None); Assert.Equal(repoResult, actual); Assert.Equal(request.ClientId, savedClient.ClientId); Assert.Equal(request.AllowedCorsOrigins, savedClient.AllowedCorsOrigins); Assert.Equal(request.AllowedScopes, savedClient.AllowedScopes); Assert.Equal(request.DisplayName, savedClient.DisplayName); Assert.False(savedClient.RequirePkce); Assert.Equal(request.FrontChannelLogoutUri, savedClient.FrontChannelLogoutUri); if (setPassword == false) { Assert.Equal("previousPassword".Sha256(), savedClient.HashedPassword); } else { Assert.Equal("mynewchangedpassword".Sha256(), savedClient.HashedPassword); } Assert.Equal(request.PostLogoutRedirectUris, savedClient.PostLogoutRedirectUris); Assert.Equal(request.RedirectUris, savedClient.RedirectUris); repoMock.Verify(); }