public static async Task Returns_updated_profile_after_updating() { const string UserId = "User1"; var existingUser = CreateUser.With(userId: UserId); var mockUserRepository = new Mock <IUserRepository>(); mockUserRepository .Setup(r => r.GetUser(UserId)) .ReturnsAsync(existingUser); var request = new ProfilePatchRequest( alternativeRegistrationNumber: "__NEW_ALTERNATIVE_REG__", registrationNumber: "__NEW_REG__", requestReminderEnabled: false, reservationReminderEnabled: true); var controller = new ProfilesController(mockUserRepository.Object) { ControllerContext = CreateControllerContext.WithUsername(UserId) }; var result = await controller.PatchAsync(request); var resultValue = GetResultValue <ProfileResponse>(result); Assert.NotNull(resultValue.Profile); Assert.Equal("__NEW_REG__", resultValue.Profile.RegistrationNumber); Assert.Equal("__NEW_ALTERNATIVE_REG__", resultValue.Profile.AlternativeRegistrationNumber); Assert.False(resultValue.Profile.RequestReminderEnabled); Assert.True(resultValue.Profile.ReservationReminderEnabled); }
public static async Task Saves_combined_updated_editable_properties_and_existing_readonly_properties() { const string UserId = "User1"; var existingUser = CreateUser.With( userId: UserId, alternativeRegistrationNumber: "Z999ABC", commuteDistance: 12.3m, emailAddress: "*****@*****.**", firstName: "John", lastName: "Doe", registrationNumber: "AB12CDE", requestReminderEnabled: true, reservationReminderEnabled: false); var mockUserRepository = new Mock <IUserRepository>(); mockUserRepository .Setup(r => r.GetUser(UserId)) .ReturnsAsync(existingUser); var request = new ProfilePatchRequest( alternativeRegistrationNumber: "__NEW_ALTERNATIVE_REG__", registrationNumber: "__NEW_REG__", requestReminderEnabled: false, reservationReminderEnabled: true); var controller = new ProfilesController(mockUserRepository.Object) { ControllerContext = CreateControllerContext.WithUsername(UserId) }; await controller.PatchAsync(request); mockUserRepository.Verify(r => r.GetUser(UserId), Times.Once); mockUserRepository.Verify( r => r.SaveUser( It.Is <User>(u => u.UserId == UserId && u.AlternativeRegistrationNumber == "__NEW_ALTERNATIVE_REG__" && u.CommuteDistance == 12.3m && u.EmailAddress == "*****@*****.**" && u.FirstName == "John" && u.LastName == "Doe" && u.RegistrationNumber == "__NEW_REG__" && u.RequestReminderEnabled == false && u.ReservationReminderEnabled == true)), Times.Once); mockUserRepository.VerifyNoOtherCalls(); }
public static async Task Defaults_reminder_flags_to_true_when_profile_is_updated() { const string UserId = "User1"; var existingUser = CreateUser.With( userId: UserId, requestReminderEnabled: false); var mockUserRepository = new Mock <IUserRepository>(); mockUserRepository .Setup(r => r.GetUser(UserId)) .ReturnsAsync(existingUser); var request = new ProfilePatchRequest( alternativeRegistrationNumber: "__NEW_ALTERNATIVE_REG__", registrationNumber: "__NEW_REG__", requestReminderEnabled: null, reservationReminderEnabled: null); var controller = new ProfilesController(mockUserRepository.Object) { ControllerContext = CreateControllerContext.WithUsername(UserId) }; await controller.PatchAsync(request); mockUserRepository.Verify(r => r.GetUser(UserId), Times.Once); mockUserRepository.Verify( r => r.SaveUser( It.Is <User>(u => u.UserId == UserId && u.RequestReminderEnabled == true && u.ReservationReminderEnabled == true)), Times.Once); mockUserRepository.VerifyNoOtherCalls(); }