Пример #1
0
		})

		JustBeforeEach(func() {
			handler.GetByProcessGuidAndIndex(responseRecorder, req)
		})

		Context("when getting the LRP group from the BBS succeeds", func() {
			BeforeEach(func() {
				fakeBBS.ActualLRPGroupByProcessGuidAndIndexReturns(
					&models.ActualLRPGroup{Instance: actualLRP2},
					nil,
				)
			})

			It("calls the BBS to retrieve the actual LRPs", func() {
				Expect(fakeBBS.ActualLRPGroupByProcessGuidAndIndexCallCount()).To(Equal(1))
				processGuid, index := fakeBBS.ActualLRPGroupByProcessGuidAndIndexArgsForCall(0)
				Expect(processGuid).To(Equal("process-guid-1"))
				Expect(index).To(Equal(2))
			})

			It("responds with 200 Status OK", func() {
				Expect(responseRecorder.Code).To(Equal(http.StatusOK))
			})

			It("returns an actual lrp response", func() {
				response := receptor.ActualLRPResponse{}
				err := json.Unmarshal(responseRecorder.Body.Bytes(), &response)
				Expect(err).NotTo(HaveOccurred())

				Expect(response).To(Equal(serialization.ActualLRPProtoToResponse(actualLRP2, false)))
			processGuid = "some-guid"
			index = 1
		})

		JustBeforeEach(func() {
			permissions, buildErr = permissionsBuilder.Build(processGuid, index, metadata)
		})

		It("gets information about the desired lrp referenced in the username", func() {
			Expect(bbsClient.DesiredLRPByProcessGuidCallCount()).To(Equal(1))
			Expect(bbsClient.DesiredLRPByProcessGuidArgsForCall(0)).To(Equal("some-guid"))
		})

		It("gets information about the the actual lrp from the username", func() {
			Expect(bbsClient.ActualLRPGroupByProcessGuidAndIndexCallCount()).To(Equal(1))

			guid, index := bbsClient.ActualLRPGroupByProcessGuidAndIndexArgsForCall(0)
			Expect(guid).To(Equal("some-guid"))
			Expect(index).To(Equal(1))
		})

		It("saves container information in the critical options of the permissions", func() {
			expectedConfig := `{
				"address": "1.2.3.4:3333",
				"host_fingerprint": "host-fingerprint",
				"private_key": "pem-encoded-key",
				"user": "******",
				"password": "******"
			}`