productItems, err := productPackageService.GetItemsByType("VIRTUAL_SERVER_INSTANCE") Expect(err).ToNot(HaveOccurred()) Expect(len(productItems)).To(Equal(2)) Expect(productItems[0].Id).To(Equal(123)) Expect(productItems[0].Prices[0].Id).To(Equal(456)) }) }) Context("#GetPackagesByType", func() { BeforeEach(func() { fakeClient.DoRawHttpRequestResponse, err = testhelpers.ReadJsonTestFixtures("services", "SoftLayer_Product_Package_getAllObjects_virtual_server.json") Expect(err).ToNot(HaveOccurred()) }) It("returns an array of datatypes.Softlayer_Product_Package", func() { productPackages, err := productPackageService.GetPackagesByType("VIRTUAL_SERVER_INSTANCE") Expect(err).ToNot(HaveOccurred()) Expect(len(productPackages)).To(Equal(4)) Expect(productPackages[0].Id).To(Equal(200)) Expect(productPackages[0].Name).To(Equal("Cloud Server 1")) }) It("skips packaged marked OUTLET", func() { fakeClient.DoRawHttpRequestResponse, err = testhelpers.ReadJsonTestFixtures("services", "SoftLayer_Product_Package_getAllObjects_virtual_server_with_OUTLET.json") productPackages, err := productPackageService.GetPackagesByType("VIRTUAL_SERVER_INSTANCE") Expect(err).ToNot(HaveOccurred()) Expect(len(productPackages)).To(Equal(3)) // OUTLET should be skipped Expect(productPackages[0].Id).To(Equal(202)) Expect(productPackages[0].Name).To(Equal("Cloud Server 2")) }) })