public async void GetStudyByIdAsync_WillThrow_IfStudyDoesNotExist(int id) { await ClearTestDatabase(); var studyService = StudyServiceMockFactory.StudyEfModelService(_serviceProvider); await Assert.ThrowsAsync <NotFoundException>(() => studyService.GetByIdAsync(id, UserOperation.Study_Read)); }
public async void DeleteStudyAsync_ShouldThrow_IfStudyDoesNotExist(int id) { await ClearTestDatabase(); var studyDeleteService = StudyServiceMockFactory.DeleteService(_serviceProvider); await Assert.ThrowsAsync <NotFoundException>(() => studyDeleteService.DeleteStudyAsync(id)); }
public async void FailIfStudyIsMissingVendor(string vendor) { await ClearTestDatabase(); var studyCreateService = StudyServiceMockFactory.CreateService(_serviceProvider); var studyWithInvalidVendor = new StudyCreateDto() { Name = "TestStudy", Vendor = vendor }; await Assert.ThrowsAsync <ArgumentException>(() => studyCreateService.CreateAsync(studyWithInvalidVendor)); }
public async Task FailIfStudyIsMissingName(string name) { await ClearTestDatabase(); var studyCreateService = StudyServiceMockFactory.CreateService(_serviceProvider); var studyWithInvalidName = new StudyCreateDto() { Name = name, Vendor = "Bouvet" }; await Assert.ThrowsAsync <ArgumentException>(() => studyCreateService.CreateAsync(studyWithInvalidName)); }
public async void CloseStudyAsync_ShouldClose_IfStudyExists() { await ClearTestDatabase(); var studyDeleteService = StudyServiceMockFactory.DeleteService(_serviceProvider); var initialStudy = new StudyCreateDto() { Name = "TestStudy12345", Vendor = "Equinor" }; var studyCreateService = StudyServiceMockFactory.CreateService(_serviceProvider); var createdStudy = await studyCreateService.CreateAsync(initialStudy); await studyDeleteService.CloseStudyAsync(createdStudy.Id); var studyReadService = StudyServiceMockFactory.StudyEfModelService(_serviceProvider); _ = await Assert.ThrowsAsync <NotFoundException>(() => studyReadService.GetByIdAsync(createdStudy.Id, UserOperation.Study_Read)); }
public async void UpdatingStudyDetailsWithoutRequiredFieldsShouldBeWellHandled(string name, string vendor) { await ClearTestDatabase(); var studyCreateService = StudyServiceMockFactory.CreateService(_serviceProvider); var initialStudy = new StudyCreateDto() { Name = "TestStudy12345", Vendor = "Equinor" }; var createdStudy = await studyCreateService.CreateAsync(initialStudy); var studyWithoutReqFields = new StudyUpdateDto() { Name = name, Vendor = vendor }; var studyUpdateService = StudyServiceMockFactory.UpdateService(_serviceProvider); await Assert.ThrowsAsync <ArgumentException>(() => studyUpdateService.UpdateMetadataAsync(createdStudy.Id, studyWithoutReqFields)); }
public async Task <StudyParticipantDto> SetupAndAddParticipantForSet(int studyId, string role, string source) { //SETUP var userName = "******"; var userEmail = userName + "@somedomain.com"; var userFullName = "Newly Added User"; var participantToAdd = new ParticipantLookupDto() { DatabaseId = TestUserConstants.COMMON_NEW_PARTICIPANT_DB_ID, ObjectId = TestUserConstants.COMMON_NEW_PARTICIPANT_OBJECTID, EmailAddress = userEmail, FullName = userFullName, UserName = userName, Source = source }; await RefreshAndPopulateTestDb(); //GET REQUIRED SERVICES var db = _serviceProvider.GetService <SepesDbContext>(); var mapper = _serviceProvider.GetService <IMapper>(); var logger = _serviceProvider.GetService <ILogger <StudyParticipantCreateService> >(); var adUserServiceMock = new Mock <IAzureUserService>(); adUserServiceMock.Setup(service => service.GetUserAsync(It.IsAny <string>())).ReturnsAsync(new AzureUserDto() { DisplayName = userFullName, Mail = userEmail }); //Study model service var studyModelService = StudyServiceMockFactory.StudyEfModelService(_serviceProvider); //Used to get current user var userServiceMock = GetUserServiceMock(TestUserConstants.COMMON_CUR_USER_DB_ID, TestUserConstants.COMMON_CUR_USER_OBJECTID); userServiceMock.Setup(service => service.GetByDbIdAsync(TestUserConstants.COMMON_NEW_PARTICIPANT_DB_ID)).ReturnsAsync(new UserDto() { Id = TestUserConstants.COMMON_NEW_PARTICIPANT_DB_ID, ObjectId = TestUserConstants.COMMON_NEW_PARTICIPANT_OBJECTID }); //Queue service mock var queueServiceMock = new Mock <IProvisioningQueueService>(); queueServiceMock.Setup(service => service.SendMessageAsync(It.IsAny <ProvisioningQueueParentDto>(), It.IsAny <TimeSpan?>(), It.IsAny <CancellationToken>())).ReturnsAsync(new ProvisioningQueueParentDto()); var resourceReadServiceMock = new Mock <ICloudResourceReadService>(); resourceReadServiceMock.Setup(service => service.GetDatasetResourceGroupIdsForStudy(It.IsAny <int>())).ReturnsAsync(new List <int> { 1 }); resourceReadServiceMock.Setup(service => service.GetSandboxResourceGroupIdsForStudy(It.IsAny <int>())).ReturnsAsync(new List <int> { 2 }); var operationCreateServiceMock = new Mock <ICloudResourceOperationCreateService>(); var operationUpdateServiceMock = new Mock <ICloudResourceOperationUpdateService>(); var configuration = _serviceProvider.GetService <IConfiguration>(); var studyParticipantService = new StudyParticipantCreateService(db, mapper, logger, userServiceMock.Object, studyModelService, adUserServiceMock.Object, queueServiceMock.Object, resourceReadServiceMock.Object, operationCreateServiceMock.Object, operationUpdateServiceMock.Object); return(await studyParticipantService.AddAsync(studyId, participantToAdd, role)); }