_, err := hardwareService.RebootHard(1234567)
					Expect(err).To(HaveOccurred())
				}
			})
		})
	})

	Context("#SetTags", func() {
		BeforeEach(func() {
			fakeClient.FakeHttpClient.DoRawHttpRequestResponse, err = testhelpers.ReadJsonTestFixtures("services", "SoftLayer_Hardware_Service_setTags.json")
			Expect(err).ToNot(HaveOccurred())
		})

		It("sets tags: tag0, tag1, tag2 to hardware instance", func() {
			tags := []string{"tag0", "tag1", "tag2"}
			tagsWasSet, err := hardwareService.SetTags(1234567, tags)

			Expect(err).ToNot(HaveOccurred())
			Expect(tagsWasSet).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

					tags := []string{"tag0", "tag1", "tag2"}
					_, err := hardwareService.SetTags(1234567, tags)
					Expect(err).To(HaveOccurred())
				}