user4 := models.UserFields{} user4.Username = "******" userRepo.ListUsersInSpaceForRoleStub = func(_ string, roleName string) ([]models.UserFields, error) { userFields := map[string][]models.UserFields{ models.SPACE_MANAGER: []models.UserFields{user, user2}, models.SPACE_DEVELOPER: []models.UserFields{user4}, models.SPACE_AUDITOR: []models.UserFields{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 []string{models.SPACE_MANAGER, models.SPACE_DEVELOPER, models.SPACE_AUDITOR} { 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() { BeforeEach(func() { org := models.Organization{} org.Name = "org-name" org.Guid = "org-guid" fakeOrgRepo.ListOrgsReturns([]models.Organization{org}, nil)