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())
					}
				})