func (f SoftLayerFinder) findByIdInVirtualDiskImages(id int, accountService sl.SoftLayer_Account_Service) (Stemcell, bool, error) { filters := fmt.Sprintf(`{"virtualDiskImages":{"id":{"operation":"%d"}}}`, id) virtualDiskImages, err := accountService.GetVirtualDiskImagesWithFilter(filters) if err != nil { return nil, false, bosherr.WrapError(err, "Getting virtual disk images") } for _, vdImage := range virtualDiskImages { if vdImage.Id == id { return NewSoftLayerStemcell(vdImage.Id, vdImage.Uuid, VirtualDiskImageKind, f.client, f.logger), true, nil } } return nil, false, nil }
_, err := accountService.GetVirtualDiskImages() Expect(err).To(HaveOccurred()) } }) }) }) Context("#GetVirtualDiskImagesWithFilter", func() { BeforeEach(func() { fakeClient.FakeHttpClient.DoRawHttpRequestResponse, err = testhelpers.ReadJsonTestFixtures("services", "SoftLayer_Account_Service_getVirtualDiskImagesWithFilter.json") Expect(err).ToNot(HaveOccurred()) }) It("returns an array of datatypes.SoftLayer_Virtual_Disk_Image", func() { virtualDiskImages, err := accountService.GetVirtualDiskImagesWithFilter(`{"correct-filter":"whatever"}`) Expect(err).ToNot(HaveOccurred()) Expect(virtualDiskImages).ToNot(BeNil()) }) It("returns an error due to failed Json validation", func() { _, err := accountService.GetVirtualDiskImagesWithFilter(`{{"wrong-filter":"whatever"}`) Expect(err).To(HaveOccurred()) }) Context("when HTTP client returns error codes 40x or 50x", func() { It("fails for error code 40x", func() { errorCodes := []int{400, 401, 499} for _, errorCode := range errorCodes { fakeClient.FakeHttpClient.DoRawHttpRequestInt = errorCode