public async Task DownloadsZipsUsingHttpClient(bool isWarmupRequest) { FileUtility.Instance = GetFileSystem().Object; var url = $"http://url/{ZipFileName}"; const int fileSize = RunFromPackageHandler.AriaDownloadThreshold - 1; var handlerMock = new Mock <HttpMessageHandler>(MockBehavior.Strict); handlerMock.Protected().Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()).ReturnsAsync(new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new ReadOnlyMemoryContent(ReadOnlyMemory <byte> .Empty) }); _httpClient = new HttpClient(handlerMock.Object); _runFromPackageHandler = new RunFromPackageHandler(_environment, _httpClient, _meshServiceClientMock.Object, _bashCmdHandlerMock.Object, _zipHandler.Object, _metricsLogger, _logger); var runFromPackageContext = new RunFromPackageContext(EnvironmentSettingNames.AzureWebsiteRunFromPackage, url, fileSize, isWarmupRequest); var filePath = await _runFromPackageHandler.Download(runFromPackageContext); Assert.Equal(ZipFileName, Path.GetFileName(filePath), StringComparer.Ordinal); handlerMock.Protected().Verify <Task <HttpResponseMessage> >("SendAsync", Times.Once(), ItExpr.Is <HttpRequestMessage>(r => IsZipDownloadRequest(r, url)), ItExpr.IsAny <CancellationToken>()); }
public async Task DownloadsLargeZipsUsingAria2c(bool isWarmupRequest) { var url = $"http://url/{ZipFileName}"; FileUtility.Instance = GetFileSystem().Object; const int fileSize = RunFromPackageHandler.AriaDownloadThreshold + 1; var expectedMetricName = isWarmupRequest ? MetricEventNames.LinuxContainerSpecializationZipDownloadWarmup : MetricEventNames.LinuxContainerSpecializationZipDownload; _bashCmdHandlerMock.Setup(b => b.RunBashCommand(It.Is <string>(s => s.StartsWith(RunFromPackageHandler.Aria2CExecutable)), expectedMetricName)).Returns(("", "", 0)); var runFromPackageContext = new RunFromPackageContext(EnvironmentSettingNames.AzureWebsiteRunFromPackage, url, fileSize, isWarmupRequest); var filePath = await _runFromPackageHandler.Download(runFromPackageContext); Assert.Equal(ZipFileName, Path.GetFileName(filePath), StringComparer.Ordinal); _bashCmdHandlerMock.Verify(b => b.RunBashCommand(It.Is <string>(s => s.StartsWith(RunFromPackageHandler.Aria2CExecutable)), expectedMetricName), Times.Once); }