示例#1
0
        public void Persist_UnSuccessful()
        {
            var projectUid = Guid.NewGuid();

            var csvExportUserPreference = new CSVExportUserPreferences();
            var requestArgument         = new CSVExportRequestArgument
                                          (
                projectUid, new FilterSet(new CombinedFilter()), null,
                CoordType.Northeast, OutputTypes.PassCountLastPass,
                csvExportUserPreference, new List <CSVExportMappedMachine>(), false, false
                                          )
            {
                TRexNodeID = Guid.NewGuid()
            };

            var dataRows = new List <string>()
            {
                "string one", "string two"
            };

            var    csvExportFileWriter = new CSVExportFileWriter(requestArgument);
            Action act = () => csvExportFileWriter.PersistResult(dataRows);

            act.Should().Throw <ArgumentNullException>();
            var projectDir = Path.Combine(Path.GetTempPath(), projectUid.ToString());

            if (Directory.Exists(projectDir))
            {
                Directory.Delete(projectDir, true);
            }
        }
示例#2
0
        public void CreateHeaders_VedaFinalPass()
        {
            var projectUid = Guid.NewGuid();

            var csvExportUserPreference = new CSVExportUserPreferences();
            var requestArgument         = new CSVExportRequestArgument
                                          (
                projectUid, new FilterSet(new CombinedFilter()), "the filename",
                CoordType.Northeast, OutputTypes.VedaFinalPass,
                csvExportUserPreference, new List <CSVExportMappedMachine>(), false, false
                                          )
            {
                TRexNodeID = Guid.NewGuid()
            };

            var dataRows = new List <string>()
            {
                "string one", "string two"
            };

            var mockTransferProxy = new Mock <ITransferProxy>();

            mockTransferProxy.Setup(t => t.UploadToBucket(It.IsAny <Stream>(), It.IsAny <string>(), It.IsAny <string>()));
            var mockTransferProxyFactory = new Mock <ITransferProxyFactory>();

            mockTransferProxyFactory.Setup(x => x.NewProxy(It.IsAny <TransferProxyType>())).Returns(mockTransferProxy.Object);

            DIBuilder
            .Continue()
            .Add(x => x.AddSingleton(mockTransferProxyFactory.Object))
            .Complete();

            var csvExportFileWriter = new CSVExportFileWriter(requestArgument, true);

            csvExportFileWriter.PersistResult(dataRows);

            var localExportPath = FilePathHelper.GetTempFolderForExport(requestArgument.ProjectID, "");
            var uniqueFileName  = requestArgument.FileName + "__" + requestArgument.TRexNodeID;

            var firstFile = Path.Combine(localExportPath, uniqueFileName, requestArgument.FileName + CSV_extension);

            if (!FileSystem.Exists(firstFile))
            {
                Assert.True(true, $"firstFile: {firstFile} should exist");
            }

            string header;

            using (var fs = new StreamReader(firstFile)) header = fs.ReadLine();
            header.Should().NotBeNullOrEmpty();
            header.Should().Be("Time,CellN_m,CellE_m,Elevation_m,PassCount,LastRadioLtncy,DesignName,Machine,Speed_km/h,LastGPSMode,GPSAccTol_m,TargPassCount,TotalPasses,Lift,LastCMV,TargCMV,LastMDP,TargMDP,LastRMV,LastFreq_Hz,LastAmp_mm,TargThickness_m,MachineGear,VibeState,LastTemp,_c");

            var projectDir = localExportPath.Remove(localExportPath.Length - 7);

            if (Directory.Exists(projectDir))
            {
                Directory.Delete(projectDir, true);
            }
        }
示例#3
0
        public void Persist_Successful()
        {
            var projectUid = Guid.NewGuid();

            var csvExportUserPreference = new CSVExportUserPreferences();
            var requestArgument         = new CSVExportRequestArgument
                                          (
                projectUid, new FilterSet(new CombinedFilter()), "the filename",
                CoordType.Northeast, OutputTypes.PassCountLastPass,
                csvExportUserPreference, new List <CSVExportMappedMachine>(), false, false
                                          )
            {
                TRexNodeID = Guid.NewGuid()
            };

            var dataRows = new List <string> {
                "string one", "string two"
            };

            var mockTransferProxy = new Mock <ITransferProxy>();

            mockTransferProxy.Setup(t => t.UploadToBucket(It.IsAny <Stream>(), It.IsAny <string>(), It.IsAny <string>()));
            var mockTransferProxyFactory = new Mock <ITransferProxyFactory>();

            mockTransferProxyFactory.Setup(x => x.NewProxy(It.IsAny <TransferProxyType>())).Returns(mockTransferProxy.Object);

            DIBuilder
            .Continue()
            .Add(x => x.AddSingleton(mockTransferProxyFactory.Object))
            .Complete();

            var csvExportFileWriter = new CSVExportFileWriter(requestArgument);
            var s3FullPath          = csvExportFileWriter.PersistResult(dataRows);

            s3FullPath.Should().NotBeNull();
            s3FullPath.Should().Be($"project/{requestArgument.ProjectID}/TRexExport/{requestArgument.FileName}__{requestArgument.TRexNodeID}.zip");

            var projectDir = Path.Combine(Path.GetTempPath(), projectUid.ToString());

            if (Directory.Exists(projectDir))
            {
                Directory.Delete(projectDir, true);
            }
        }
示例#4
0
        public void CreateHeaders_RestrictOutputSize_TwoFiles()
        {
            var projectUid = Guid.NewGuid();

            var userPreferences = new UserPreferences {
                TemperatureUnits = (int)TemperatureUnitEnum.Fahrenheit
            };
            var csvExportUserPreference = AutoMapperUtility.Automapper.Map <CSVExportUserPreferences>(userPreferences);

            var requestArgument = new CSVExportRequestArgument
                                  (
                projectUid, new FilterSet(new CombinedFilter()), "the filename",
                CoordType.Northeast, OutputTypes.VedaFinalPass,
                csvExportUserPreference, new List <CSVExportMappedMachine>(), true, true
                                  )
            {
                TRexNodeID = Guid.NewGuid()
            };

            var dataRows = new List <string>(70000);

            for (int i = 0; i < 70000; i++)
            {
                dataRows.Add($"row number: {i}");
            }
            ;

            var mockTransferProxy = new Mock <ITransferProxy>();

            mockTransferProxy.Setup(t => t.UploadToBucket(It.IsAny <Stream>(), It.IsAny <string>(), It.IsAny <string>()));
            var mockTransferProxyFactory = new Mock <ITransferProxyFactory>();

            mockTransferProxyFactory.Setup(x => x.NewProxy(It.IsAny <TransferProxyType>())).Returns(mockTransferProxy.Object);

            DIBuilder
            .Continue()
            .Add(x => x.AddSingleton(mockTransferProxyFactory.Object))
            .Complete();

            var csvExportFileWriter = new CSVExportFileWriter(requestArgument, true);

            csvExportFileWriter.PersistResult(dataRows);

            var localExportPath = FilePathHelper.GetTempFolderForExport(requestArgument.ProjectID, "");
            var uniqueFileName  = requestArgument.FileName + "__" + requestArgument.TRexNodeID;
            var zipFullPath     = Path.Combine(localExportPath, uniqueFileName) + ZIP_extension;

            if (!FileSystem.Exists(zipFullPath))
            {
                Assert.True(true, $"zipFullPath: {zipFullPath} should exist");
            }
            using (var zip = ZipFile.OpenRead(zipFullPath))
            {
                zip.Entries.Count.Should().Be(2);

                var firstFileName     = Path.Combine(requestArgument.FileName + "(1)" + CSV_extension);
                var firstFileNamePath = Path.Combine(localExportPath, uniqueFileName, firstFileName);
                new FileInfo(firstFileNamePath).Length.Should().Be(1234316);
                zip.Entries[0].Name.Should().Be(firstFileName);
                var fileInfo = new FileInfo(firstFileNamePath);
                zip.Entries[0].Length.Should().Be(fileInfo.Length);

                var secondFileName     = Path.Combine(requestArgument.FileName + "(2)" + CSV_extension);
                var secondFileNamePath = Path.Combine(localExportPath, uniqueFileName, secondFileName);
                new FileInfo(secondFileNamePath).Length.Should().Be(85096);
                zip.Entries[1].Name.Should().Be(secondFileName);
                fileInfo = new FileInfo(secondFileNamePath);
                zip.Entries[1].Length.Should().Be(fileInfo.Length);
            }

            var projectDir = localExportPath.Remove(localExportPath.Length - 7);

            if (Directory.Exists(projectDir))
            {
                Directory.Delete(projectDir, true);
            }
        }
示例#5
0
        public void CreateHeaders_RestrictOutputSize_SingleFile()
        {
            var projectUid = Guid.NewGuid();

            var userPreferences = new UserPreferences()
            {
                TemperatureUnits = (int)TemperatureUnitEnum.Fahrenheit
            };
            var csvExportUserPreference = AutoMapperUtility.Automapper.Map <CSVExportUserPreferences>(userPreferences);

            var requestArgument = new CSVExportRequestArgument
                                  (
                projectUid, new FilterSet(new CombinedFilter()), "the filename",
                CoordType.Northeast, OutputTypes.VedaFinalPass,
                csvExportUserPreference, new List <CSVExportMappedMachine>(), true, true
                                  )
            {
                TRexNodeID = Guid.NewGuid()
            };

            var dataRows = new List <string> {
                "string one", "string two"
            };

            var mockTransferProxy = new Mock <ITransferProxy>();

            mockTransferProxy.Setup(t => t.UploadToBucket(It.IsAny <Stream>(), It.IsAny <string>(), It.IsAny <string>()));
            var mockTransferProxyFactory = new Mock <ITransferProxyFactory>();

            mockTransferProxyFactory.Setup(x => x.NewProxy(It.IsAny <TransferProxyType>())).Returns(mockTransferProxy.Object);

            DIBuilder
            .Continue()
            .Add(x => x.AddSingleton(mockTransferProxyFactory.Object))
            .Complete();

            var csvExportFileWriter = new CSVExportFileWriter(requestArgument, true);

            csvExportFileWriter.PersistResult(dataRows);

            var localExportPath = FilePathHelper.GetTempFolderForExport(requestArgument.ProjectID, "");
            var uniqueFileName  = requestArgument.FileName + "__" + requestArgument.TRexNodeID;
            var zipFullPath     = Path.Combine(localExportPath, uniqueFileName) + ZIP_extension;

            var firstFile = Path.Combine(localExportPath, uniqueFileName, requestArgument.FileName + CSV_extension);

            if (!FileSystem.Exists(firstFile))
            {
                Assert.True(true, $"firstFile: {firstFile} should exist");
            }

            if (!FileSystem.Exists(zipFullPath))
            {
                Assert.True(true, $"zipFullPath: {zipFullPath} should exist");
            }
            using (var zip = ZipFile.OpenRead(zipFullPath))
            {
                zip.Entries.Count.Should().Be(1);
                zip.Entries[0].Name.Should().Be(requestArgument.FileName + CSV_extension);

                var fileInfo = new System.IO.FileInfo(firstFile);
                fileInfo.Length.Should().Be(285);
                zip.Entries[0].Length.Should().Be(fileInfo.Length);
            }

            string header;

            using (var fs = new StreamReader(firstFile)) header = fs.ReadLine();
            header.Should().NotBeNullOrEmpty();
            header.Should().Be("Time,CellN_FT,CellE_FT,Elevation_FT,PassCount,lastRadioLtncy,DesignName,Machine,Speed_mph,LastGPSMode,GPSAccTol_FT,TargPassCount,TotalPasses,Lift,LastCMV,TargCMV,LastMDP,TargMDP,LastRMV,LastFreq_Hz,LastAmp_mm,TargThickness_FT,MachineGear,VibeState,LastTemp,_f");

            var projectDir = localExportPath.Remove(localExportPath.Length - 7);

            if (Directory.Exists(projectDir))
            {
                Directory.Delete(projectDir, true);
            }
        }