Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        public async void DeleteStudyAsync_ShouldThrow_IfStudyDoesNotExist(int id)
        {
            await ClearTestDatabase();

            var studyDeleteService = StudyServiceMockFactory.DeleteService(_serviceProvider);

            await Assert.ThrowsAsync <NotFoundException>(() => studyDeleteService.DeleteStudyAsync(id));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        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));
        }