MCPcopy
hub / github.com/cloudfoundry/cli / uploadBodyMatcher

Function uploadBodyMatcher

cf/api/applicationbits/application_bits_test.go:344–394  ·  view source on GitHub ↗
(zipChecks func(zipReader *zip.Reader))

Source from the content-addressed store, hash-verified

342const maxMultipartResponseSizeInBytes = 4096
343
344func uploadBodyMatcher(zipChecks func(zipReader *zip.Reader)) func(*http.Request) {
345 return func(request *http.Request) {
346 defer GinkgoRecover()
347 err := request.ParseMultipartForm(maxMultipartResponseSizeInBytes)
348 if err != nil {
349 Fail(fmt.Sprintf("Failed parsing multipart form %v", err))
350 return
351 }
352 defer request.MultipartForm.RemoveAll()
353
354 Expect(len(request.MultipartForm.Value)).To(Equal(1), "Should have 1 value")
355 valuePart, ok := request.MultipartForm.Value["resources"]
356 Expect(ok).To(BeTrue(), "Resource manifest not present")
357 Expect(len(valuePart)).To(Equal(1), "Wrong number of values")
358
359 resourceManifest := valuePart[0]
360 chompedResourceManifest := strings.Replace(resourceManifest, "\n", "", -1)
361 Expect(chompedResourceManifest).To(Equal(unmatchedResources), "Resources do not match")
362
363 Expect(len(request.MultipartForm.File)).To(Equal(1), "Wrong number of files")
364
365 fileHeaders, ok := request.MultipartForm.File["application"]
366 Expect(ok).To(BeTrue(), "Application file part not present")
367 Expect(len(fileHeaders)).To(Equal(1), "Wrong number of files")
368
369 applicationFile := fileHeaders[0]
370 Expect(applicationFile.Filename).To(Equal("application.zip"), "Wrong file name")
371
372 file, err := applicationFile.Open()
373 if err != nil {
374 Fail(fmt.Sprintf("Cannot get multipart file %v", err.Error()))
375 return
376 }
377
378 length, err := strconv.ParseInt(applicationFile.Header.Get("content-length"), 10, 64)
379 if err != nil {
380 Fail(fmt.Sprintf("Cannot convert content-length to int %v", err.Error()))
381 return
382 }
383
384 if zipChecks != nil {
385 zipReader, err := zip.NewReader(file, length)
386 if err != nil {
387 Fail(fmt.Sprintf("Error reading zip content %v", err.Error()))
388 return
389 }
390
391 zipChecks(zipReader)
392 }
393 }
394}
395
396func createProgressEndpoint(status string) (req testnet.TestRequest) {
397 body := fmt.Sprintf(`

Callers 2

uploadApplicationRequestFunction · 0.85

Calls 2

ErrorMethod · 0.65
GetMethod · 0.65

Tested by

no test coverage detected