github.com/loggregator/cli@v6.33.1-0.20180224010324-82334f081791+incompatible/cf/requirements/max_api_version_test.go (about) 1 package requirements_test 2 3 import ( 4 "code.cloudfoundry.org/cli/cf/configuration/coreconfig" 5 "code.cloudfoundry.org/cli/cf/requirements" 6 "github.com/blang/semver" 7 8 testconfig "code.cloudfoundry.org/cli/util/testhelpers/configuration" 9 10 . "github.com/onsi/ginkgo" 11 . "github.com/onsi/gomega" 12 ) 13 14 var _ = Describe("MaxAPIVersionRequirement", func() { 15 var ( 16 config coreconfig.Repository 17 requirement requirements.MaxAPIVersionRequirement 18 ) 19 20 BeforeEach(func() { 21 config = testconfig.NewRepository() 22 maximumVersion, err := semver.Make("1.2.3") 23 Expect(err).NotTo(HaveOccurred()) 24 25 requirement = requirements.NewMaxAPIVersionRequirement(config, "version-restricted-feature", maximumVersion) 26 }) 27 28 Context("Execute", func() { 29 Context("when the config's api version is less than the maximum version", func() { 30 BeforeEach(func() { 31 config.SetAPIVersion("1.2.2") 32 }) 33 34 It("succeeds", func() { 35 err := requirement.Execute() 36 Expect(err).NotTo(HaveOccurred()) 37 }) 38 }) 39 40 Context("when the config's api version is equal to the maximum version", func() { 41 BeforeEach(func() { 42 config.SetAPIVersion("1.2.3") 43 }) 44 45 It("succeeds", func() { 46 err := requirement.Execute() 47 Expect(err).NotTo(HaveOccurred()) 48 }) 49 }) 50 51 Context("when the config's api version is greater than the maximum version", func() { 52 BeforeEach(func() { 53 config.SetAPIVersion("1.2.4") 54 }) 55 56 It("returns an error", func() { 57 err := requirement.Execute() 58 Expect(err).To(HaveOccurred()) 59 Expect(err.Error()).To(ContainSubstring("version-restricted-feature only works up to CF API version 1.2.3. Your target is 1.2.4.")) 60 }) 61 }) 62 63 Context("when the config's api version can not be parsed", func() { 64 BeforeEach(func() { 65 config.SetAPIVersion("-") 66 }) 67 68 It("returns an error", func() { 69 err := requirement.Execute() 70 Expect(err).To(HaveOccurred()) 71 Expect(err.Error()).To(ContainSubstring("Unable to parse CC API Version '-'")) 72 }) 73 }) 74 75 Context("when the config's api version is empty", func() { 76 BeforeEach(func() { 77 config.SetAPIVersion("") 78 }) 79 80 It("returns an error", func() { 81 err := requirement.Execute() 82 Expect(err).To(HaveOccurred()) 83 Expect(err.Error()).To(ContainSubstring("Unable to determine CC API Version. Please log in again.")) 84 }) 85 }) 86 }) 87 })