Context("#CopyToExternalSource", func() { var configuration datatypes.SoftLayer_Container_Virtual_Guest_Block_Device_Template_Configuration BeforeEach(func() { configuration = datatypes.SoftLayer_Container_Virtual_Guest_Block_Device_Template_Configuration{ Name: "fake-configuration-name", Note: "fake-configuration-note", OperatingSystemReferenceCode: "fake-operating-system-reference-code", Uri: "swift://FakeObjectStorageAccountName>@fake-clusterName/fake-containerName/fake-fileName.vhd", } fakeClient.FakeHttpClient.DoRawHttpRequestResponse, err = testhelpers.ReadJsonTestFixtures("services", "SoftLayer_Virtual_Guest_Block_Device_Template_Group_Service_copyToExternalSource.json") Expect(err).ToNot(HaveOccurred()) }) It("successfully copies the virtual guest device template group to an external source", func() { copied, err := vgbdtgService.CopyToExternalSource(configuration) Expect(err).ToNot(HaveOccurred()) Expect(copied).To(BeTrue()) }) 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 _, err := vgbdtgService.CopyToExternalSource(configuration) Expect(err).To(HaveOccurred()) } })