예제 #1
0
파일: input_to.go 프로젝트: xoebus/checkin
func (s *Server) ListBuildsWithVersionAsInput(pipelineDB db.PipelineDB) http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		versionIDString := r.FormValue(":resource_version_id")
		versionID, _ := strconv.Atoi(versionIDString)

		builds, err := pipelineDB.GetBuildsWithVersionAsInput(versionID)
		if err != nil {
			w.WriteHeader(http.StatusInternalServerError)
			return
		}

		presentedBuilds := []atc.Build{}
		for _, build := range builds {
			presentedBuilds = append(presentedBuilds, present.Build(build))
		}

		w.Header().Set("Content-Type", "application/json")

		w.WriteHeader(http.StatusOK)

		json.NewEncoder(w).Encode(presentedBuilds)
	})
}
					Metadata: []db.MetadataField{
						{
							Name:  "some",
							Value: "value",
						},
					},
					PipelineName: "some-pipeline",
				},
				FirstOccurrence: true,
			})
			Expect(err).NotTo(HaveOccurred())

		})

		It("returns the builds for which the provided version id was an input", func() {
			builds, err := pipelineDB.GetBuildsWithVersionAsInput(savedVersionedResource.ID)
			Expect(err).NotTo(HaveOccurred())
			Expect(builds).To(ConsistOf(expectedBuilds))
		})

		It("returns an empty slice of builds when the provided version id doesn't exist", func() {
			builds, err := pipelineDB.GetBuildsWithVersionAsInput(savedVersionedResource.ID + 100)
			Expect(err).NotTo(HaveOccurred())
			Expect(builds).To(Equal([]db.Build{}))
		})
	})

	Context("GetBuildsWithVersionAsOutput", func() {
		var savedVersionedResource db.SavedVersionedResource
		var expectedBuilds []db.Build