public static User Handle() { var request = GetRequestFromUserInput(); var handler = new CreateUserRequestHandler(); var response = handler.Handle(request); return(response); }
public void Handle_UserHasFirstName_ReturnsDtoWithCorrectFirstName() { var arg = GenerateDtoInCorrectState(); var classToTest = new CreateUserRequestHandler(); var result = classToTest.Handle(arg); result.FirstName.ShouldBe("Matthew"); }
public void Handle_UserHasAge_ReturnsDtoWithCorrectAge() { var expected = 27; var arg = new CreateUserRequest(); arg.Age = expected; var classToTest = new CreateUserRequestHandler(); var result = classToTest.Handle(arg); result.Age.ShouldBe(expected); }
public void Handle_UserHasLastName_ReturnsDtoWithCorrectLastName() { var expected = "Puneky"; var arg = new CreateUserRequest(); arg.LastName = expected; var classToTest = new CreateUserRequestHandler(); var result = classToTest.Handle(arg); result.LastName.ShouldBe(expected); }
public void Handle_UserHasFirstName_ReturnsDtoWithCorrectFirstName() { // Arrange var foo = new CreateUserRequest(); foo.FirstName = "Matthew"; // Act var classToTest = new CreateUserRequestHandler(); var result = classToTest.Handle(foo); // Assert Assert.AreEqual(result.FirstName, "Matthew"); }
public async Task CreateUserRequestHandler_Handle_Returns_EmailExists() { UserContext.OpenInMemoryConnection(); try { var busMock = new Mock <IBus>(); busMock.Setup(m => m.PublishAsync(It.IsAny <UserCreatedEvent>())).Returns(Task.FromResult(true)); var user = new User { UserKey = Guid.NewGuid(), EmailAddress = "*****@*****.**" }; using (var context = UserContext.GetInMemoryContext()) { context.Users.Add(user); context.SaveChanges(); } CreateUserResponse response; var request = new CreateUserRequest { UserKey = Guid.NewGuid(), FirstName = "John", LastName = "Doe", EmailAddress = "*****@*****.**" }; using (var context = UserContext.GetInMemoryContext()) { var handler = new CreateUserRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile()), busMock.Object); response = await handler.Handle(request); } using (var context = UserContext.GetInMemoryContext()) { Assert.AreEqual(1, context.Users.Count()); Assert.AreEqual(ErrorType.EmailExists, response.ErrorType); Assert.IsFalse(response.IsSuccess); } busMock.Verify(m => m.PublishAsync(It.IsAny <UserCreatedEvent>()), Times.Never()); } finally { UserContext.CloseInMemoryConnection(); } }
public void Handle_UserHasAge_ReturnsDtoWithCorrectAge() { int ageToTest = 26; // Arrage var request = new CreateUserRequest(); request.Age = ageToTest; // Act var classToTest = new CreateUserRequestHandler(); var result = classToTest.Handle(request); // Assert (use ShouldBe like in FizzBuzzTests) Assert.AreEqual(result.Age, ageToTest); }
public void Handle_UserHasLastName_ReturnsDtoWithCorrectLastName() { // Arrage var request = new CreateUserRequest(); request.LastName = "Picnic"; // Act var classToTest = new CreateUserRequestHandler(); var result = classToTest.Handle(request); // Assert (use ShouldBe like in FizzBuzzTests) Assert.AreEqual(result.LastName, "Picnic"); }
public async Task CreateUserRequestHandler_Handle_Returns_Success() { UserContext.OpenInMemoryConnection(); try { var busMock = new Mock <IBus>(); busMock.Setup(m => m.PublishAsync(It.IsAny <UserCreatedEvent>())).Returns(Task.FromResult(true)); CreateUserResponse response; var request = new CreateUserRequest { UserKey = Guid.NewGuid(), FirstName = "John", LastName = "Doe" }; using (var context = UserContext.GetInMemoryContext()) { var handler = new CreateUserRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile()), busMock.Object); response = await handler.Handle(request); } using (var context = UserContext.GetInMemoryContext()) { Assert.AreEqual(1, context.Users.Count()); Assert.AreEqual(request.UserKey, context.Users.Single().UserKey); Assert.AreEqual(request.FirstName, context.Users.Single().FirstName); Assert.AreEqual(request.LastName, context.Users.Single().LastName); Assert.AreEqual(request.AddressLine1, context.Users.Single().AddressLine1); Assert.IsNotNull(context.Users.Single().Created); Assert.IsTrue(response.IsSuccess); } busMock.Verify(m => m.PublishAsync(It.Is <UserCreatedEvent>(e => e.UserKey == request.UserKey && e.FirstName == request.FirstName)), Times.Once); } finally { UserContext.CloseInMemoryConnection(); } }
public async Task CreateUserRequestHandler_Handle_Returns_KeyEmpty() { UserContext.OpenInMemoryConnection(); try { var busMock = new Mock <IBus>(); busMock.Setup(m => m.PublishAsync(It.IsAny <UserCreatedEvent>())).Returns(Task.FromResult(true)); CreateUserResponse response; var request = new CreateUserRequest { FirstName = "John", LastName = "Doe" }; using (var context = UserContext.GetInMemoryContext()) { var handler = new CreateUserRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile()), busMock.Object); response = await handler.Handle(request); } using (var context = UserContext.GetInMemoryContext()) { Assert.AreEqual(0, context.Users.Count()); Assert.AreEqual(ErrorType.InvalidKey, response.ErrorType); Assert.IsFalse(response.IsSuccess); } busMock.Verify(m => m.PublishAsync(It.IsAny <UserCreatedEvent>()), Times.Never()); } finally { UserContext.CloseInMemoryConnection(); } }
public async Task SendMessageAsync(Message msg) { await _networkCommunication.SendBytesAsync(new[] { (byte)msg.Type }); await _networkCommunication.SendShortAsync((short)msg.Id); switch (msg) { // Error case ErrorResponse errorResponse: var errorResponseHandler = new ErrorResponseHandler(_networkCommunication); await errorResponseHandler.SendMessageAsync(errorResponse); break; // Login case LoginRequest loginRequest: var loginRequestHandler = new LoginRequestHandler(_networkCommunication); await loginRequestHandler.SendMessageAsync(loginRequest); break; case LoginResponse loginResponse: var loginResponseHandler = new LoginResponseHandler(_networkCommunication); await loginResponseHandler.SendMessageAsync(loginResponse); break; // Create User case CreateUserRequest createUserRequest: var createUserRequestHandler = new CreateUserRequestHandler(_networkCommunication); await createUserRequestHandler.SendMessageAsync(createUserRequest); break; case CreateUserResponse createUserResponse: var createUserResponseHandler = new CreateUserResponseHandler(_networkCommunication); await createUserResponseHandler.SendMessageAsync(createUserResponse); break; // Create photo case CreatePhotoRequest createPhotoRequest: var createPhotoRequestHandler = new CreatePhotoRequestHandler( _networkCommunication, _fileCommunication ); await createPhotoRequestHandler.SendMessageAsync(createPhotoRequest); break; case CreatePhotoResponse createPhotoResponse: var createPhotoResponseHandler = new CreatePhotoResponseHandler(); await createPhotoResponseHandler.SendMessageAsync(createPhotoResponse); break; // Photo list case PhotoListRequest photoListRequest: var photoListRequestHandler = new PhotoListRequestHandler(_networkCommunication); await photoListRequestHandler.SendMessageAsync(photoListRequest); break; case PhotoListResponse photoListResponse: var photoListResponseHandler = new PhotoListResponseHandler( _networkCommunication, _fileCommunication ); await photoListResponseHandler.SendMessageAsync(photoListResponse); break; // User list case UserListRequest userListRequest: var userListRequestHandler = new UserListRequestHandler(); await userListRequestHandler.SendMessageAsync(userListRequest); break; case UserListResponse userListResponse: var userListResponseHandler = new UserListResponseHandler( _networkCommunication ); await userListResponseHandler.SendMessageAsync(userListResponse); break; // Comment photo case CommentPhotoRequest commentPhotoRequest: var commentPhotoRequestHandler = new CommentPhotoRequestHandler(_networkCommunication); await commentPhotoRequestHandler.SendMessageAsync(commentPhotoRequest); break; case CommentPhotoResponse commentPhotoResponse: var commentPhotoResponseHandler = new CommentPhotoResponseHandler( _networkCommunication ); await commentPhotoResponseHandler.SendMessageAsync(commentPhotoResponse); break; // Comment List case CommentListRequest commentListRequest: var commentListRequestHandler = new CommentListRequestHandler(_networkCommunication); await commentListRequestHandler.SendMessageAsync(commentListRequest); break; case CommentListResponse commentListResponse: var commentListResponseHandler = new CommentListResponseHandler( _networkCommunication ); await commentListResponseHandler.SendMessageAsync(commentListResponse); break; // Logout case LogoutRequest logoutRequest: var logoutRequestHandler = new LogoutRequestHandler(); await logoutRequestHandler.SendMessageAsync(logoutRequest); break; case LogoutResponse logoutResponse: var logoutResponseHandler = new LogoutResponseHandler(); await logoutResponseHandler.SendMessageAsync(logoutResponse); break; default: // TODO Create a custom exception throw new Exception($"Message not recognized ID={msg.Id}, type={msg.Type}"); } }
public RequestResult CreateUser([FromBody] CreateUserRequest request, [FromServices] CreateUserRequestHandler handler) { return((RequestResult)handler.Handle(request)); }
public CreateUserRequestHandlerTest() { _userRepository = Substitute.For <IUserRepository>(); _mediator = Substitute.For <IMediator>(); _sut = new CreateUserRequestHandler(_userRepository, _mediator); }