github.com/rakutentech/cli@v6.12.5-0.20151006231303-24468b65536e+incompatible/cf/requirements/user_test.go (about)

     1  package requirements_test
     2  
     3  import (
     4  	testapi "github.com/cloudfoundry/cli/cf/api/fakes"
     5  	"github.com/cloudfoundry/cli/cf/models"
     6  	. "github.com/cloudfoundry/cli/cf/requirements"
     7  	testassert "github.com/cloudfoundry/cli/testhelpers/assert"
     8  	testterm "github.com/cloudfoundry/cli/testhelpers/terminal"
     9  	. "github.com/onsi/ginkgo"
    10  	. "github.com/onsi/gomega"
    11  
    12  	. "github.com/cloudfoundry/cli/testhelpers/matchers"
    13  )
    14  
    15  var _ = Describe("UserRequirement", func() {
    16  	Context("when a user with the given name can be found", func() {
    17  		It("returns the user model", func() {
    18  			user := models.UserFields{}
    19  			user.Username = "my-user"
    20  			user.Guid = "my-user-guid"
    21  
    22  			userRepo := &testapi.FakeUserRepository{FindByUsernameUserFields: user}
    23  			ui := new(testterm.FakeUI)
    24  
    25  			userReq := NewUserRequirement("foo", ui, userRepo)
    26  			success := userReq.Execute()
    27  
    28  			Expect(success).To(BeTrue())
    29  			Expect(userRepo.FindByUsernameUsername).To(Equal("foo"))
    30  			Expect(userReq.GetUser()).To(Equal(user))
    31  		})
    32  	})
    33  
    34  	Context("when a user with the given name cannot be found", func() {
    35  		It("panics and prints a failure message", func() {
    36  			userRepo := &testapi.FakeUserRepository{FindByUsernameNotFound: true}
    37  			ui := new(testterm.FakeUI)
    38  
    39  			testassert.AssertPanic(testterm.QuietPanic, func() {
    40  				NewUserRequirement("foo", ui, userRepo).Execute()
    41  			})
    42  
    43  			Expect(ui.Outputs).To(ContainSubstrings(
    44  				[]string{"FAILED"},
    45  				[]string{"not found"},
    46  			))
    47  		})
    48  	})
    49  })