public async Task <HttpResponseMessage> ActivateAsync(dynamic model) { await _accountService.ActivateAsync(model); return(Request.OK("Activation successful.")); }
public async Task TestWithInvalidUserRequestAsync() { // arrange var obj = new { username = "******", password = "******" }; var repository = new Mock <IRepository>(); var settings = new ApplicationSettings(); var validationService = new Mock <ValidationService>(repository.Object, settings); var administrationService = new Mock <AdministrationService>(repository.Object, validationService.Object); var mailService = new Mock <MailService>(repository.Object); var request = new UserRequest { Id = 1, Username = obj.username, RequestType = UserRequestType.ResetPassword }; repository .Setup(x => x.GetAsync <UserRequest>(1)) .ReturnsAsync(request); var credentials = JObject.FromObject(obj); string q; using (var algorithm = TripleDES.Create()) { var ciphertext = CryptoUtilities.Encrypt(credentials.ToString(), algorithm.Key, algorithm.IV); q = 1 + ":" + ciphertext; } dynamic model = JObject.FromObject(new { q }); var accountService = new AccountService(repository.Object, validationService.Object, administrationService.Object, mailService.Object); // act var exception = await TestUtilities.ThrowsAsync <ServiceException>(async() => await accountService.ActivateAsync(model)); // assert Assert.Equal(ServiceReason.InvalidUserRequest, exception.Reason); repository.Verify(x => x.GetAsync <UserRequest>(It.IsAny <int>()), Times.Once); }
public async Task TestDefaultBehaviorAsync() { // arrange var obj = new { username = "******" }; var repository = new Mock <IRepository>(); var settings = new ApplicationSettings(); var validationService = new Mock <ValidationService>(repository.Object, settings); var administrationService = new Mock <AdministrationService>(repository.Object, validationService.Object); var mailService = new Mock <MailService>(repository.Object); var user = new User { Username = obj.username }; var request = new UserRequest { Id = 1, Username = obj.username, RequestType = UserRequestType.Activation }; var userSet = TestUtilities.CreateDbSetMock(new List <User> { user }); repository .Setup(x => x.AsQueryable <User>()) .Returns(userSet.Object); repository .Setup(x => x.GetAsync <User>(1)) .ReturnsAsync(user); repository .Setup(x => x.GetAsync <UserRequest>(1)) .ReturnsAsync(request); var password = Guid.NewGuid().ToString(); var credentials = JObject.FromObject(new { obj.username, password }); string q; using (var algorithm = TripleDES.Create()) { request.Key = algorithm.Key; request.IV = algorithm.IV; request.Password = CryptoUtilities.CreateHash(password); var ciphertext = CryptoUtilities.Encrypt(credentials.ToString(), algorithm.Key, algorithm.IV); q = 1 + ":" + ciphertext; } dynamic model = JObject.FromObject(new { q }); var accountService = new AccountService(repository.Object, validationService.Object, administrationService.Object, mailService.Object); // act await TestUtilities.DoesNotThrowAsync(async() => await accountService.ActivateAsync(model)); // assert Assert.True(user.Enabled); repository.Verify(x => x.GetAsync <UserRequest>(It.IsAny <int>()), Times.Once); repository.Verify(x => x.AsQueryable <User>(), Times.Once); repository.Verify(x => x.UpdateAsync(user), Times.Once()); repository.Verify(x => x.UpdateAsync(request), Times.Once()); }
public async Task TestWithInvalidQueryAsync() { // arrange var repository = new Mock <IRepository>(); var settings = new ApplicationSettings(); var validationService = new Mock <ValidationService>(repository.Object, settings); var administrationService = new Mock <AdministrationService>(repository.Object, validationService.Object); var mailService = new Mock <MailService>(repository.Object); dynamic model = JObject.FromObject(new { q = "something invalid" }); var accountService = new AccountService(repository.Object, validationService.Object, administrationService.Object, mailService.Object); // act var exception = await TestUtilities.ThrowsAsync <ServiceException>(async() => await accountService.ActivateAsync(model)); // assert Assert.Equal(ServiceReason.InvalidUserRequest, exception.Reason); repository.Verify(x => x.GetAsync <UserRequest>(It.IsAny <int>()), Times.Never); }