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() { Expect(ui.Outputs).To(ContainSubstrings( []string{"FAILED"}, []string{"WOAH. I know kung fu"}, )) }) }) Context("when the security group with the given name cannot be found", func() { BeforeEach(func() { fakeSecurityGroupRepo.ReadReturns(models.SecurityGroup{}, errors.New("Crème insufficiently brûlée'd")) })