Context("when the user is logged in and provides the name of a group", func() { BeforeEach(func() { requirementsFactory.LoginSuccess = true group := models.SecurityGroup{} group.Guid = "just-pretend-this-is-a-guid" group.Name = "a-security-group-name" fakeSecurityGroupRepo.ReadReturns(group, nil) }) JustBeforeEach(func() { runCommand("a-security-group-name") }) It("binds the group to the default staging group set", func() { Expect(fakeSecurityGroupRepo.ReadArgsForCall(0)).To(Equal("a-security-group-name")) Expect(fakeStagingSecurityGroupRepo.BindToStagingSetArgsForCall(0)).To(Equal("just-pretend-this-is-a-guid")) }) It("describes what it's doing to the user", func() { Expect(ui.Outputs).To(ContainSubstrings( []string{"Binding", "a-security-group-name", "as", "my-user"}, []string{"OK"}, )) }) Context("when binding the security group to the default set fails", func() { BeforeEach(func() { fakeStagingSecurityGroupRepo.BindToStagingSetReturns(errors.New("WOAH. I know kung fu")) }) It("fails and describes the failure to the user", func() {