예제 #1
0
        public async Task CanRunDxfJobSuccess(bool enableDxfTileGeneration)
        {
            var request = new DxfTileGenerationRequest
            {
                CustomerUid         = Guid.NewGuid(),
                ProjectUid          = Guid.NewGuid(),
                ImportedFileUid     = Guid.NewGuid(),
                DataOceanRootFolder = "some folder",
                FileName            = "a dxf file",
                DcFileName          = "a dc file",
                DxfUnitsType        = DxfUnitsType.Meters
            };

            var obj         = JObject.Parse(JsonConvert.SerializeObject(request));
            var configStore = new Mock <IConfigurationStore>();

            configStore.Setup(x => x.GetValueBool("SCHEDULER_ENABLE_DXF_TILE_GENERATION"))
            .Returns(enableDxfTileGeneration);

            var mockPegasus = new Mock <IPegasusClient>();

            mockPegasus.Setup(x => x.GenerateDxfTiles(
                                  It.IsAny <string>(),
                                  It.IsAny <string>(),
                                  DxfUnitsType.Meters,
                                  It.IsAny <IHeaderDictionary>(), It.IsAny <Action <IHeaderDictionary> >()))
            .ReturnsAsync(new TileMetadata());

            var mockNotification = new Mock <INotificationHubClient>();

            mockNotification.Setup(n => n.Notify(It.IsAny <ProjectFileRasterTilesGeneratedNotification>()))
            .Returns(Task.FromResult(default(object)));

            var mockTPaaSAuth = new Mock <ITPaaSApplicationAuthentication>();

            mockTPaaSAuth.Setup(t => t.GetApplicationBearerToken())
            .Returns("this is a dummy bearer token");

            var job = new DxfTileGenerationJob(configStore.Object, mockPegasus.Object, mockTPaaSAuth.Object, mockNotification.Object, loggerFactory);

            await job.Run(obj, null);

            var runTimes = enableDxfTileGeneration ? Times.Once() : Times.Never();

            // Verify based on the value of SCHEDULER_ENABLE_DXF_TILE_GENERATION the execution of GenerateDxfTiles().
            mockPegasus.Verify(x => x.GenerateDxfTiles(
                                   It.IsAny <string>(),
                                   It.IsAny <string>(),
                                   DxfUnitsType.Meters,
                                   It.IsAny <IHeaderDictionary>(), It.IsAny <Action <IHeaderDictionary> >()), runTimes);
        }
예제 #2
0
        /// <summary>
        /// Creates a job request for generating raster tiles
        /// </summary>
        public static JobRequest CreateRequest(ImportedFileType importedFileType, string customerUid, string projectUid,
                                               string importedFileUid, string dataOceanRootFolder, string fileName, string dcFileName = null, DxfUnitsType
                                               dxfUnitsType = DxfUnitsType.Meters, DateTime?surveyedUtc = null)
        {
            TileGenerationRequest runParams;
            Guid jobUid;

            switch (importedFileType)
            {
            case ImportedFileType.GeoTiff:
                runParams = new TileGenerationRequest();
                jobUid    = GeoTiffTileGenerationJob.VSSJOB_UID;
                break;

            case ImportedFileType.Linework:
                runParams = new DxfTileGenerationRequest
                {
                    DcFileName   = dcFileName,
                    DxfUnitsType = dxfUnitsType
                };
                jobUid = DxfTileGenerationJob.VSSJOB_UID;
                break;

            default:
                throw new NotImplementedException();
            }

            runParams.CustomerUid         = Guid.Parse(customerUid);
            runParams.ProjectUid          = Guid.Parse(projectUid);
            runParams.ImportedFileUid     = Guid.Parse(importedFileUid);
            runParams.DataOceanRootFolder = dataOceanRootFolder;
            runParams.FileName            = fileName;

            return(new JobRequest
            {
                JobUid = jobUid,
                RunParameters = runParams
            });
        }