public void Should_allocate_prod_user() { const bool IS_PROD_USER = UserData.IS_PROD_USER; var user = CreateUser(UserType.Individual, IS_PROD_USER); CreateAllocation(user); var request = new AllocateUserRequestBuilder() .WithUserType(user.UserType) .IsProdUser() .Build(); QueryHandler .Setup( x => x.Handle <GetAllocatedUserByUserTypeQuery, UserDto>(It.IsAny <GetAllocatedUserByUserTypeQuery>())) .ReturnsAsync(user); var response = Controller.AllocateSingleUser(request); response.Should().NotBeNull(); var result = (OkObjectResult)response; result.StatusCode.Should().Be((int)HttpStatusCode.OK); var userDetailsResponse = (UserDetailsResponse)result.Value; userDetailsResponse.Should().BeEquivalentTo(user); }
public async Task Should_retrieve_allocations_by_user() { const string ALLOCATED_BY = EmailData.TEST_WEB_MANUAL_USER; var request = new AllocateUserRequestBuilder().WithUserType(UserType.Judge).WithAllocatedBy(ALLOCATED_BY).Build(); var uri = ApiUriFactory.AllocationEndpoints.AllocateSingleUser; await SendPatchRequest(uri, RequestHelper.Serialise(request)); VerifyResponse(HttpStatusCode.OK, true); uri = ApiUriFactory.AllocationEndpoints.GetAllocatedUsers(ALLOCATED_BY); await SendGetRequest(uri); VerifyResponse(HttpStatusCode.OK, true); var allocations = RequestHelper.Deserialise <List <AllocationDetailsResponse> >(Json); allocations.Should().NotBeEmpty(); foreach (var allocation in allocations) { allocation.Allocated.Should().BeTrue(); allocation.AllocatedBy.Should().Be(ALLOCATED_BY); allocation.ExpiresAt.Should().HaveValue(); allocation.Id.Should().NotBeEmpty(); allocation.UserId.Should().NotBeEmpty(); allocation.Username.Should().NotBeNullOrWhiteSpace(); } }
public void Should_create_user_first_names_based_on_test_type(TestType testType) { var user = CreateUser(testType); CreateAllocation(user); var request = new AllocateUserRequestBuilder() .WithUserType(user.UserType) .ForTestType(testType) .Build(); QueryHandler .Setup( x => x.Handle <GetAllocatedUserByUserTypeQuery, UserDto>(It.IsAny <GetAllocatedUserByUserTypeQuery>())) .ReturnsAsync(user); var response = Controller.AllocateSingleUser(request); response.Should().NotBeNull(); var result = (OkObjectResult)response; result.StatusCode.Should().Be((int)HttpStatusCode.OK); var userDetailsResponse = (UserDetailsResponse)result.Value; userDetailsResponse.Should().BeEquivalentTo(user); userDetailsResponse.FirstName.ToLower().Should().Contain(testType == TestType.Automated ? UserData.AUTOMATED_FIRST_NAME_PREFIX.ToLower() : testType.ToString().ToLower()); }
public void Should_return_allocated_user_for_test_type(TestType testType) { var user = CreateUser(testType); CreateAllocation(user); var request = new AllocateUserRequestBuilder() .WithUserType(user.UserType) .ForTestType(testType) .Build(); QueryHandler .Setup( x => x.Handle <GetAllocatedUserByUserTypeQuery, UserDto>(It.IsAny <GetAllocatedUserByUserTypeQuery>())) .ReturnsAsync(user); var response = Controller.AllocateSingleUser(request); response.Should().NotBeNull(); var result = (OkObjectResult)response; result.StatusCode.Should().Be((int)HttpStatusCode.OK); var userDetailsResponse = (UserDetailsResponse)result.Value; userDetailsResponse.Should().BeEquivalentTo(user); }
public async Task Should_pass_validation() { var request = new AllocateUserRequestBuilder().Build(); var result = await _validator.ValidateAsync(request); result.IsValid.Should().BeTrue(); }
protected UserDetailsResponse AllocateUser(UserType userType, bool isEjud = false) { var body = new AllocateUserRequestBuilder().WithUserType(userType).IsEjud(isEjud).Build(); var uri = ApiUriFactory.AllocationEndpoints.AllocateSingleUser; var request = RequestHandler.Patch(uri, body); var response = SendRequest(request); response.StatusCode.Should().Be(HttpStatusCode.OK); response.IsSuccessful.Should().BeTrue(); return(RequestHelper.Deserialise <UserDetailsResponse>(response.Content)); }
public async Task Should_be_greater_than_zero_for_expiry() { var request = new AllocateUserRequestBuilder().WithExpiryInMinutes(-1).Build(); var result = await _validator.ValidateAsync(request); result.IsValid.Should().BeFalse(); result.Errors.Count.Should().Be(1); result.Errors.First().ErrorMessage.Should() .Be(AllocateUserRequestValidator.EXPIRES_IN_GREATER_THAN_ZERO_ERROR_MESSAGE); }
public async Task Should_be_less_than_twelve_hours_for_expiry() { var request = new AllocateUserRequestBuilder() .WithExpiryInMinutes(Convert.ToInt32(TimeSpan.FromHours(12).Add(TimeSpan.FromDays(30)).TotalMinutes)) .Build(); var result = await _validator.ValidateAsync(request); result.IsValid.Should().BeFalse(); result.Errors.Count.Should().Be(1); result.Errors.First().ErrorMessage.Should() .Be(AllocateUserRequestValidator.EXPIRES_IN_LESS_THAN_THIRTY_DAYS_ERROR_MESSAGE); }
public async Task Should_allocate_single_user_no_users_exist(UserType userType) { var request = new AllocateUserRequestBuilder().WithUserType(userType).Build(); var uri = ApiUriFactory.AllocationEndpoints.AllocateSingleUser; await SendPatchRequest(uri, RequestHelper.Serialise(request)); VerifyResponse(HttpStatusCode.OK, true); var response = RequestHelper.Deserialise <UserDetailsResponse>(Json); response.Should().NotBeNull(); Verify.UserDetailsResponse(response, userType); }
private async Task <string> AllocateUser(bool isEjud = false) { var request = new AllocateUserRequestBuilder() .WithUserType(UserType.Judge) .ForTestType(TestType.Manual) .IsEjud(isEjud) .Build(); var uri = ApiUriFactory.AllocationEndpoints.AllocateSingleUser; await SendPatchRequest(uri, RequestHelper.Serialise(request)); VerifyResponse(HttpStatusCode.OK, true); var response = RequestHelper.Deserialise <UserDetailsResponse>(Json); response.Should().NotBeNull(); return(response.Username); }
public async Task Should_allocate_single_ejud_user(UserType userType) { var request = new AllocateUserRequestBuilder() .WithUserType(userType) .IsEjud() .Build(); var uri = ApiUriFactory.AllocationEndpoints.AllocateSingleUser; await SendPatchRequest(uri, RequestHelper.Serialise(request)); VerifyResponse(HttpStatusCode.OK, true); var response = RequestHelper.Deserialise <UserDetailsResponse>(Json); response.Should().NotBeNull(); Verify.EjudUserDetailsResponse(response, userType); response.ContactEmail.Should().EndWith(Context.Config.EjudUsernameStem); response.ContactEmail.Should().NotEndWith(Context.Config.UsernameStem); response.Username.Should().EndWith(Context.Config.EjudUsernameStem); response.Username.Should().NotEndWith(Context.Config.UsernameStem); }
public async Task Should_allocate_none_joh_user_with_ejud_true() { const UserType USER_TYPE = UserType.Individual; var request = new AllocateUserRequestBuilder() .WithUserType(USER_TYPE) .IsEjud() .Build(); var uri = ApiUriFactory.AllocationEndpoints.AllocateSingleUser; await SendPatchRequest(uri, RequestHelper.Serialise(request)); VerifyResponse(HttpStatusCode.OK, true); var response = RequestHelper.Deserialise <UserDetailsResponse>(Json); response.Should().NotBeNull(); Verify.UserDetailsResponse(response, USER_TYPE); response.ContactEmail.Should().NotEndWith(Context.Config.EjudUsernameStem); response.Username.Should().EndWith(Context.Config.UsernameStem); response.Username.Should().NotEndWith(Context.Config.EjudUsernameStem); }
public async Task Should_allocate_user_with_specified_test_type(TestType testType) { var user = await Context.Data.SeedUser(testType); await Context.Data.SeedAllocation(user.Id); var request = new AllocateUserRequestBuilder() .WithUserType(user.UserType) .ForApplication(user.Application) .ForTestType(testType) .Build(); var uri = ApiUriFactory.AllocationEndpoints.AllocateSingleUser; await SendPatchRequest(uri, RequestHelper.Serialise(request)); VerifyResponse(HttpStatusCode.OK, true); var response = RequestHelper.Deserialise <UserDetailsResponse>(Json); response.Should().NotBeNull(); Verify.UserDetailsResponse(response, user); }
public async Task Should_allocate_prod_user() { const bool IS_PROD_USER = UserData.IS_PROD_USER; var user = await Context.Data.SeedUser(UserType.Judge, IS_PROD_USER); await Context.Data.SeedAllocation(user.Id); var request = new AllocateUserRequestBuilder() .WithUserType(user.UserType) .ForApplication(user.Application) .IsProdUser() .Build(); var uri = ApiUriFactory.AllocationEndpoints.AllocateSingleUser; await SendPatchRequest(uri, RequestHelper.Serialise(request)); VerifyResponse(HttpStatusCode.OK, true); var response = RequestHelper.Deserialise <UserDetailsResponse>(Json); response.Should().NotBeNull(); Verify.UserDetailsResponse(response, user); }
public async Task Should_allocate_user_no_users_exist() { const UserType USER_TYPE = UserType.Individual; const Application APPLICATION = Application.TestApi; const string USERNAME_STEM = EmailData.FAKE_EMAIL_STEM; const int NUMBER = 1; var user = new UserBuilder(USERNAME_STEM, NUMBER) .WithUserType(USER_TYPE) .ForApplication(APPLICATION) .BuildUserDto(); var allocationRequest = new AllocateUserRequestBuilder().WithUserType(USER_TYPE).Build(); _allocationService .Setup(x => x.AllocateToService(It.IsAny <UserType>(), It.IsAny <Application>(), It.IsAny <TestType>(), It.IsAny <bool>(), It.IsAny <int>(), It.IsAny <string>())) .Returns(Task.FromResult(user)); var userDetails = await _query.Handle(new GetAllocatedUserByUserTypeQuery(allocationRequest)); userDetails.Should().NotBeNull(); userDetails.Should().BeEquivalentTo(user); }