user4 := models.UserFields{} user4.Username = "******" userRepo.ListUsersInSpaceForRoleStub = func(_ string, roleName models.Role) ([]models.UserFields, error) { userFields := map[models.Role][]models.UserFields{ models.RoleSpaceManager: {user, user2}, models.RoleSpaceDeveloper: {user4}, models.RoleSpaceAuditor: {user3}, }[roleName] return userFields, nil } }) It("tells you about the space users in the given space", func() { runCommand("my-org", "my-space") actualSpaceName, actualOrgGUID := spaceRepo.FindByNameInOrgArgsForCall(0) Expect(actualSpaceName).To(Equal("my-space")) Expect(actualOrgGUID).To(Equal("org1-guid")) Expect(userRepo.ListUsersInSpaceForRoleCallCount()).To(Equal(3)) for i, expectedRole := range []models.Role{models.RoleSpaceManager, models.RoleSpaceDeveloper, models.RoleSpaceAuditor} { spaceGUID, actualRole := userRepo.ListUsersInSpaceForRoleArgsForCall(i) Expect(spaceGUID).To(Equal("space1-guid")) Expect(actualRole).To(Equal(expectedRole)) } Expect(ui.Outputs()).To(BeInDisplayOrder( []string{"Getting users in org", "Org1", "Space1", "my-user"}, []string{"SPACE MANAGER"}, []string{"user1"}, []string{"user2"},
}) Context("when the space does not exist", func() { BeforeEach(func() { org := models.Organization{} org.Name = "org-name" org.GUID = "org-guid" fakeOrgRepo.ListOrgsReturns([]models.Organization{org}, nil) fakeOrgRepo.FindByNameReturns(org, nil) fakeSpaceRepo.FindByNameInOrgReturns(models.Space{}, errors.NewModelNotFoundError("Space", "space-name")) }) It("fails and tells the user", func() { runCommand("sec group", "org-name", "space-name") name, orgGUID := fakeSpaceRepo.FindByNameInOrgArgsForCall(0) Expect(name).To(Equal("space-name")) Expect(orgGUID).To(Equal("org-guid")) Expect(ui.Outputs()).To(ContainSubstrings( []string{"FAILED"}, []string{"Space", "space-name", "not found"}, )) }) }) Context("everything is hunky dory", func() { var securityGroup models.SecurityGroup var org models.Organization BeforeEach(func() { org = models.Organization{}