Expect(err).ToNot(HaveOccurred())
				Expect(pingable).To(BeTrue())
			})

			It("checks that the virtual guest instance is NOT pigable", func() {
				fakeClient.DoRawHttpRequestResponse = []byte("false")

				pingable, err := virtualGuestService.IsPingable(virtualGuest.Id)
				Expect(err).ToNot(HaveOccurred())
				Expect(pingable).To(BeFalse())
			})
		})

		Context("when there are API errors", func() {
			It("returns false and error", func() {
				fakeClient.DoRawHttpRequestError = errors.New("fake-error")

				pingable, err := virtualGuestService.IsPingable(virtualGuest.Id)
				Expect(err).To(HaveOccurred())
				Expect(pingable).To(BeFalse())
			})
		})

		Context("when the API returns invalid or empty result", func() {
			It("returns false and error", func() {
				fakeClient.DoRawHttpRequestResponse = []byte("fake")

				pingable, err := virtualGuestService.IsPingable(virtualGuest.Id)
				Expect(err).To(HaveOccurred())
				Expect(err.Error()).To(ContainSubstring("Failed to checking that virtual guest is pingable"))
				Expect(pingable).To(BeFalse())
				err := vm.SetMetadata(metadata)

				Expect(err).ToNot(HaveOccurred())
				Expect(softLayerClient.DoRawHttpRequestResponseCount).To(Equal(0))
			})

			It("at least one tag found", func() {
				err := vm.SetMetadata(metadata)

				Expect(err).ToNot(HaveOccurred())
				Expect(softLayerClient.DoRawHttpRequestResponseCount).To(Equal(1))
			})

			Context("when SLVG.SetTags call fails", func() {
				BeforeEach(func() {
					softLayerClient.DoRawHttpRequestError = errors.New("fake-error")
				})

				It("fails with error", func() {
					err := vm.SetMetadata(metadata)

					Expect(err).To(HaveOccurred())
				})
			})
		})
	})

	Describe("ConfigureNetworks", func() {
		var (
			networks Networks
		)