public static IStudySpecificDatasetService GetStudySpecificDatasetService(ServiceProvider serviceProvider, List <Study> studies = null, List <Dataset> datasets = null) { if (studies == null) { studies = new List <Study>(); } var db = serviceProvider.GetService <SepesDbContext>(); var config = serviceProvider.GetService <IConfiguration>(); var mapper = serviceProvider.GetService <IMapper>(); var logger = serviceProvider.GetService <ILogger <StudySpecificDatasetService> >(); var userService = UserFactory.GetUserServiceMockForAdmin(1); var studyPermissionService = StudyServiceMockFactory.StudyPermissionService(serviceProvider, userService.Object); var studyModelServiceMock = new Mock <IStudyEfModelService>(); studyModelServiceMock.Setup(x => x.GetForDatasetsAsync(It.IsAny <int>(), It.IsAny <UserOperation>())).ReturnsAsync((int a, UserOperation b) => studies != null ? studies.FirstOrDefault(s => s.Id == a) : null); studyModelServiceMock.Setup(x => x.GetForDatasetCreationAsync(It.IsAny <int>(), It.IsAny <UserOperation>())).ReturnsAsync((int a, UserOperation b) => studies != null ? studies.FirstOrDefault(s => s.Id == a) : null); var dsCloudResourceServiceMock = new Mock <IDatasetCloudResourceService>(); dsCloudResourceServiceMock.Setup(x => x.CreateResourcesForStudySpecificDatasetAsync(It.IsAny <Study>(), It.IsAny <Dataset>(), "192.168.1.1", default(CancellationToken))).Returns(default(Task)); var studySpecificDatasetModelService = GetStudySpecificDatasetModelService(datasets); var studyWbsValidationService = StudyWbsValidationMockServiceFactory.GetService(serviceProvider, true, false); return(new StudySpecificDatasetService(db, mapper, logger, userService.Object, studyPermissionService, studyModelServiceMock.Object, studyWbsValidationService, studySpecificDatasetModelService.Object, dsCloudResourceServiceMock.Object)); }
public async Task AllowStudyCreation_OnFailedWbsValidation_AndSetRelevantProperties() { var study = CreateStudyInvalidWbs(); var studyWbsValidationService = StudyWbsValidationMockServiceFactory.GetService(_serviceProvider, true, true); await studyWbsValidationService.ValidateForStudyCreateOrUpdate(study); Assert.False(study.WbsCodeValid); }
public async Task ThrowIfInvalidAndReValidationThrows() { var study = CreateStudyInvalidWbs(); var studyWbsValidationService = StudyWbsValidationMockServiceFactory.GetService(_serviceProvider, false, true); await Assert.ThrowsAsync <InvalidWbsException>(() => studyWbsValidationService.ValidateForSandboxCreationOrThrow(study)); await Assert.ThrowsAsync <InvalidWbsException>(() => studyWbsValidationService.ValidateForDatasetCreationOrThrow(study)); }
public async Task AllowStudyCreation_OnValidWbs() { var study = CreateStudyValidWbs(); var studyWbsValidationService = StudyWbsValidationMockServiceFactory.GetService(_serviceProvider, true, false); await studyWbsValidationService.ValidateForStudyCreateOrUpdate(study); Assert.True(study.WbsCodeValid); }
public async Task AllowSandboxAndDatasetCreation_OnValidWbs() { var study = CreateStudyValidWbs(); var studyWbsValidationService = StudyWbsValidationMockServiceFactory.GetService(_serviceProvider, true, false); await studyWbsValidationService.ValidateForSandboxCreationOrThrow(study); await studyWbsValidationService.ValidateForDatasetCreationOrThrow(study); Assert.True(study.WbsCodeValid); }
public async Task AllowSandboxCreation_And_UpdateWbsValidationFields_IfReValidationSucceeds() { var study = CreateStudyInvalidWbs(); var studyWbsValidationService = StudyWbsValidationMockServiceFactory.GetService(_serviceProvider, true, false); await studyWbsValidationService.ValidateForSandboxCreationOrThrow(study); await studyWbsValidationService.ValidateForDatasetCreationOrThrow(study); Assert.True(study.WbsCodeValid); Assert.NotNull((study.WbsCodeValidatedAt)); Assert.True((DateTime.UtcNow - study.WbsCodeValidatedAt.Value).TotalSeconds < 10); }
ISandboxService CreateForFailingSandboxCreate(string userAppRole, int userId, int studyId = StudyConstants.CREATED_BY_ME_ID, string wbs = StudyConstants.CREATED_BY_ME_WBS, bool wbsExists = false, bool wbsValidationFails = false) { var study = StudyModelFactory.CreateBasic(id: studyId, wbs: wbs); var studyWbsValidationService = StudyWbsValidationMockServiceFactory.GetService(_serviceProvider, wbsExists, wbsValidationFails); return(SandboxServiceWithMocksFactory.ForSandboxCreate(_serviceProvider, userAppRole, userId, studyWbsValidationService, new List <Study>() { study })); }
SandboxServicesAndMocks CreateMockPackageWithExistingStudy(Study study, bool wbsExists = false, bool wbsValidationFails = false) { var studies = new List <Study>() { study }; //STUDY MODEL SERVICE var studyModelServiceMock = new Mock <IStudyEfModelService>(); studyModelServiceMock .Setup(x => x.GetForSandboxCreateAndDeleteAsync(It.IsAny <int>(), It.IsAny <UserOperation>())) .ReturnsAsync((int a, UserOperation b) => studies?.FirstOrDefault(s => s.Id == a)); //SANDBOX MODEL SERVICE var sandboxModelServiceMock = new Mock <ISandboxModelService>(); var studyWbsValidationService = StudyWbsValidationMockServiceFactory.GetService(_serviceProvider, wbsExists, wbsValidationFails); var sandboxService = SandboxServiceWithMocksFactory.Create(_serviceProvider, AppRoles.Admin, 1, studyModelServiceMock.Object, sandboxModelServiceMock.Object, studyWbsValidationService); return(new SandboxServicesAndMocks(sandboxService, studyModelServiceMock, sandboxModelServiceMock)); }