}) It("fails with usage when a name is not provided", func() { runCommand() Expect(ui.Outputs()).To(ContainSubstrings( []string{"Incorrect Usage", "Requires", "argument"}, )) }) }) Context("when the user is logged in and provides the name of a group", func() { BeforeEach(func() { requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) group := models.SecurityGroup{} group.GUID = "being-a-guid" group.Name = "security-group-name" fakeSecurityGroupRepo.ReadReturns(group, nil) }) JustBeforeEach(func() { runCommand("security-group-name") }) It("Describes what it is doing to the user", func() { Expect(ui.Outputs()).To(ContainSubstrings( []string{"Binding", "security-group-name", "as", "my-user"}, []string{"OK"}, []string{"TIP: Changes will not apply to existing running applications until they are restarted."}, )) })
var securityGroup models.SecurityGroup var org models.Organization BeforeEach(func() { org = models.Organization{} org.Name = "org-name" org.GUID = "org-guid" fakeOrgRepo.FindByNameReturns(org, nil) space := models.Space{} space.Name = "space-name" space.GUID = "space-guid" fakeSpaceRepo.FindByNameInOrgReturns(space, nil) securityGroup = models.SecurityGroup{} securityGroup.Name = "security-group" securityGroup.GUID = "security-group-guid" fakeSecurityGroupRepo.ReadReturns(securityGroup, nil) }) Context("when space is provided", func() { JustBeforeEach(func() { runCommand("security-group", "org-name", "space-name") }) It("assigns the security group to the space", func() { secGroupGUID, spaceGUID := fakeSpaceBinder.BindSpaceArgsForCall(0) Expect(secGroupGUID).To(Equal("security-group-guid")) Expect(spaceGUID).To(Equal("space-guid")) })
)) }) Context("when there are no security groups", func() { It("Should tell the user that there are no security groups", func() { repo.FindAllReturns([]models.SecurityGroup{}, nil) runCommand() Expect(ui.Outputs()).To(ContainSubstrings([]string{"No security groups"})) }) }) Context("when there is at least one security group", func() { BeforeEach(func() { securityGroup := models.SecurityGroup{} securityGroup.Name = "my-group" securityGroup.GUID = "group-guid" repo.FindAllReturns([]models.SecurityGroup{securityGroup}, nil) }) Describe("Where there are spaces assigned", func() { BeforeEach(func() { securityGroups := []models.SecurityGroup{ { SecurityGroupFields: models.SecurityGroupFields{ Name: "my-group", GUID: "group-guid", }, Spaces: []models.Space{ {