var ( groupName, summary, note string ) BeforeEach(func() { vgbdtGroup.Id = 0 fakeClient.FakeHttpClient.DoRawHttpRequestResponse, err = testhelpers.ReadJsonTestFixtures("services", "SoftLayer_Virtual_Guest_Block_Device_Template_Group_Service_createPublicArchiveTransaction.json") Expect(err).ToNot(HaveOccurred()) groupName = "fake-group-name" summary = "fake-summary" note = "fake-note" }) It("successfully creates a public archive transaction", func() { transactionId, err := vgbdtgService.CreatePublicArchiveTransaction(vgbdtGroup.Id, groupName, summary, note, locations) Expect(err).ToNot(HaveOccurred()) Expect(transactionId).To(Equal(0)) }) 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.CreatePublicArchiveTransaction(vgbdtGroup.Id, groupName, summary, note, locations) Expect(err).To(HaveOccurred()) } })