testcmd.RunCommand(cmd, context, requirementsFactory) Expect(ui.FailedWithUsage).To(BeTrue()) }) It("fails if the user has not set an api endpoint", func() { context := testcmd.NewContext("auth", []string{"username", "password"}) testcmd.RunCommand(cmd, context, requirementsFactory) Expect(testcmd.CommandDidPassRequirements).To(BeFalse()) }) }) Context("when an api endpoint is targeted", func() { BeforeEach(func() { requirementsFactory.ApiEndpointSuccess = true config.SetApiEndpoint("foo.example.org/authenticate") }) It("authenticates successfully", func() { requirementsFactory.ApiEndpointSuccess = true context := testcmd.NewContext("auth", []string{"*****@*****.**", "password"}) testcmd.RunCommand(cmd, context, requirementsFactory) Expect(ui.FailedWithUsage).To(BeFalse()) testassert.SliceContains(ui.Outputs, testassert.Lines{ {"foo.example.org/authenticate"}, {"OK"}, }) Expect(repo.AuthenticateArgs.Credentials).To(Equal([]map[string]string{
models.ServiceOffering{ Plans: []models.ServicePlanFields{ models.ServicePlanFields{Name: "service-plan-c"}, models.ServicePlanFields{Name: "service-plan-d"}}, ServiceOfferingFields: models.ServiceOfferingFields{ Label: "aaa-my-service-offering", Description: "service offering 2 description", }, }} }) Context("when the an API endpoint is not targeted", func() { It("does not meet its requirements", func() { config := testconfig.NewRepository() cmd := NewMarketplaceServices(ui, config, serviceRepo) requirementsFactory.ApiEndpointSuccess = false testcmd.RunCommand(cmd, testcmd.NewContext("marketplace", []string{}), requirementsFactory) Expect(testcmd.CommandDidPassRequirements).To(BeFalse()) }) }) Context("when the user is logged in", func() { BeforeEach(func() { config = testconfig.NewRepositoryWithDefaults() }) Context("when the user has a space targeted", func() { BeforeEach(func() { config.SetSpaceFields(models.SpaceFields{ Guid: "the-space-guid",
models.ServiceOffering{ Plans: []models.ServicePlanFields{ models.ServicePlanFields{Name: "service-plan-c"}, models.ServicePlanFields{Name: "service-plan-d"}}, ServiceOfferingFields: models.ServiceOfferingFields{ Label: "aaa-my-service-offering", Description: "service offering 2 description", }, }} }) Context("when the an API endpoint is not targeted", func() { It("does not meet its requirements", func() { config := testconfig.NewRepository() cmd := NewMarketplaceServices(ui, config, serviceRepo) reqFactory.ApiEndpointSuccess = false testcmd.RunCommand(cmd, testcmd.NewContext("marketplace", []string{}), reqFactory) Expect(testcmd.CommandDidPassRequirements).To(BeFalse()) }) }) Context("when the user is logged in", func() { BeforeEach(func() { config = testconfig.NewRepositoryWithDefaults() }) Context("when the user has a space targeted", func() { BeforeEach(func() { config.SetSpaceFields(models.SpaceFields{ Guid: "the-space-guid",
testcmd.RunCommand(cmd, context, reqFactory) Expect(ui.FailedWithUsage).To(BeTrue()) }) It("fails if the user has not set an api endpoint", func() { context := testcmd.NewContext("auth", []string{"username", "password"}) testcmd.RunCommand(cmd, context, reqFactory) Expect(testcmd.CommandDidPassRequirements).To(BeFalse()) }) }) Context("when an api endpoint is targeted", func() { BeforeEach(func() { reqFactory.ApiEndpointSuccess = true config.SetApiEndpoint("foo.example.org/authenticate") }) It("authenticates successfully", func() { reqFactory.ApiEndpointSuccess = true context := testcmd.NewContext("auth", []string{"*****@*****.**", "password"}) testcmd.RunCommand(cmd, context, reqFactory) Expect(ui.FailedWithUsage).To(BeFalse()) testassert.SliceContains(ui.Outputs, testassert.Lines{ {"foo.example.org/authenticate"}, {"OK"}, }) Expect(repo.AuthenticateArgs.Credentials).To(Equal(map[string]string{