})

		It("fails when not logged in", func() {
			runCommand("just", "enough", "args")

			Expect(testcmd.CommandDidPassRequirements).To(BeFalse())
		})
	})

	Context("when logged in", func() {
		BeforeEach(func() {
			requirementsFactory.LoginSuccess = true
		})

		It("creates a service auth token, obviously", func() {
			runCommand("a label", "a provider", "a value")

			Expect(ui.Outputs).To(ContainSubstrings(
				[]string{"Creating service auth token as", "my-user"},
				[]string{"OK"},
			))

			authToken := models.ServiceAuthTokenFields{}
			authToken.Label = "a label"
			authToken.Provider = "a provider"
			authToken.Token = "a value"
			Expect(authTokenRepo.CreatedServiceAuthTokenFields).To(Equal(authToken))
		})
	})
})
		authTokenRepo := &testapi.FakeAuthTokenRepo{}
		requirementsFactory := &testreq.FakeReqFactory{}
		args := []string{"MY-TOKEN-LABLE", "my-provider", "my-token-abc123"}

		requirementsFactory.LoginSuccess = true
		callUpdateServiceAuthToken(args, requirementsFactory, authTokenRepo)
		Expect(testcmd.CommandDidPassRequirements).To(BeTrue())

		requirementsFactory.LoginSuccess = false
		callUpdateServiceAuthToken(args, requirementsFactory, authTokenRepo)
		Expect(testcmd.CommandDidPassRequirements).To(BeFalse())
	})
	It("TestUpdateServiceAuthToken", func() {

		foundAuthToken := models.ServiceAuthTokenFields{}
		foundAuthToken.Guid = "found-auth-token-guid"
		foundAuthToken.Label = "found label"
		foundAuthToken.Provider = "found provider"

		authTokenRepo := &testapi.FakeAuthTokenRepo{FindByLabelAndProviderServiceAuthTokenFields: foundAuthToken}
		requirementsFactory := &testreq.FakeReqFactory{LoginSuccess: true}
		args := []string{"a label", "a provider", "a value"}

		ui := callUpdateServiceAuthToken(args, requirementsFactory, authTokenRepo)
		expectedAuthToken := models.ServiceAuthTokenFields{}
		expectedAuthToken.Guid = "found-auth-token-guid"
		expectedAuthToken.Label = "found label"
		expectedAuthToken.Provider = "found provider"
		expectedAuthToken.Token = "a value"
		authTokenRepo := &testapi.FakeAuthTokenRepo{}
		requirementsFactory := &testreq.FakeReqFactory{}

		requirementsFactory.LoginSuccess = false
		callListServiceAuthTokens(requirementsFactory, authTokenRepo)
		Expect(testcmd.CommandDidPassRequirements).To(BeFalse())

		requirementsFactory.LoginSuccess = true
		callListServiceAuthTokens(requirementsFactory, authTokenRepo)
		Expect(testcmd.CommandDidPassRequirements).To(BeTrue())
	})
	It("TestListServiceAuthTokens", func() {

		requirementsFactory := &testreq.FakeReqFactory{LoginSuccess: true}
		authTokenRepo := &testapi.FakeAuthTokenRepo{}
		authToken := models.ServiceAuthTokenFields{}
		authToken.Label = "a label"
		authToken.Provider = "a provider"
		authToken2 := models.ServiceAuthTokenFields{}
		authToken2.Label = "a second label"
		authToken2.Provider = "a second provider"
		authTokenRepo.FindAllAuthTokens = []models.ServiceAuthTokenFields{authToken, authToken2}

		ui := callListServiceAuthTokens(requirementsFactory, authTokenRepo)
		Expect(ui.Outputs).To(ContainSubstrings(
			[]string{"Getting service auth tokens as", "my-user"},
			[]string{"OK"},
			[]string{"label", "provider"},
			[]string{"a label", "a provider"},
			[]string{"a second label", "a second provider"},
		))