github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/db/resource_config_test.go (about) 1 package db_test 2 3 import ( 4 "github.com/pf-qiu/concourse/v6/atc" 5 "github.com/pf-qiu/concourse/v6/atc/db" 6 . "github.com/onsi/ginkgo" 7 . "github.com/onsi/gomega" 8 ) 9 10 var _ = Describe("ResourceConfig", func() { 11 var resourceConfig db.ResourceConfig 12 13 Context("when non-unique", func() { 14 BeforeEach(func() { 15 types, err := defaultPipeline.ResourceTypes() 16 Expect(err).ToNot(HaveOccurred()) 17 18 resourceConfig, err = resourceConfigFactory.FindOrCreateResourceConfig( 19 defaultWorkerResourceType.Type, 20 atc.Source{"some": "source"}, 21 types.Deserialize(), 22 ) 23 Expect(err).ToNot(HaveOccurred()) 24 }) 25 26 Describe("FindOrCreateScope", func() { 27 Context("given no resource", func() { 28 It("finds or creates a global scope", func() { 29 createdScope, err := resourceConfig.FindOrCreateScope(nil) 30 Expect(err).ToNot(HaveOccurred()) 31 Expect(createdScope.Resource()).To(BeNil()) 32 Expect(createdScope.ResourceConfig().ID()).To(Equal(resourceConfig.ID())) 33 34 foundScope, err := resourceConfig.FindOrCreateScope(nil) 35 Expect(err).ToNot(HaveOccurred()) 36 Expect(foundScope.ID()).To(Equal(createdScope.ID())) 37 }) 38 }) 39 40 Context("given a resource", func() { 41 Context("with global resources disabled", func() { 42 BeforeEach(func() { 43 // XXX(check-refactor): make this non global 44 atc.EnableGlobalResources = false 45 }) 46 47 It("finds or creates a unique scope", func() { 48 createdScope, err := resourceConfig.FindOrCreateScope(defaultResource) 49 Expect(err).ToNot(HaveOccurred()) 50 Expect(createdScope.Resource()).ToNot(BeNil()) 51 Expect(createdScope.Resource().ID()).To(Equal(defaultResource.ID())) 52 Expect(createdScope.ResourceConfig().ID()).To(Equal(resourceConfig.ID())) 53 54 foundScope, err := resourceConfig.FindOrCreateScope(defaultResource) 55 Expect(err).ToNot(HaveOccurred()) 56 Expect(foundScope.ID()).To(Equal(createdScope.ID())) 57 }) 58 }) 59 60 Context("with global resources enabled", func() { 61 BeforeEach(func() { 62 atc.EnableGlobalResources = true 63 }) 64 65 It("finds or creates a global scope", func() { 66 createdScope, err := resourceConfig.FindOrCreateScope(defaultResource) 67 Expect(err).ToNot(HaveOccurred()) 68 Expect(createdScope.Resource()).To(BeNil()) 69 Expect(createdScope.ResourceConfig().ID()).To(Equal(resourceConfig.ID())) 70 71 foundScope, err := resourceConfig.FindOrCreateScope(defaultResource) 72 Expect(err).ToNot(HaveOccurred()) 73 Expect(foundScope.ID()).To(Equal(createdScope.ID())) 74 }) 75 }) 76 }) 77 }) 78 }) 79 80 Context("when using a unique base resource type", func() { 81 BeforeEach(func() { 82 types, err := defaultPipeline.ResourceTypes() 83 Expect(err).ToNot(HaveOccurred()) 84 85 resourceConfig, err = resourceConfigFactory.FindOrCreateResourceConfig( 86 uniqueWorkerResourceType.Type, 87 atc.Source{"some": "source"}, 88 types.Deserialize(), 89 ) 90 Expect(err).ToNot(HaveOccurred()) 91 }) 92 93 Describe("FindOrCreateScope", func() { 94 Context("given no resource", func() { 95 It("finds or creates a global scope", func() { 96 createdScope, err := resourceConfig.FindOrCreateScope(nil) 97 Expect(err).ToNot(HaveOccurred()) 98 Expect(createdScope.Resource()).To(BeNil()) 99 Expect(createdScope.ResourceConfig().ID()).To(Equal(resourceConfig.ID())) 100 101 foundScope, err := resourceConfig.FindOrCreateScope(nil) 102 Expect(err).ToNot(HaveOccurred()) 103 Expect(foundScope.ID()).To(Equal(createdScope.ID())) 104 }) 105 }) 106 107 Context("given a resource", func() { 108 It("finds or creates a unique scope", func() { 109 createdScope, err := resourceConfig.FindOrCreateScope(defaultResource) 110 Expect(err).ToNot(HaveOccurred()) 111 Expect(createdScope.Resource()).ToNot(BeNil()) 112 Expect(createdScope.Resource().ID()).To(Equal(defaultResource.ID())) 113 Expect(createdScope.ResourceConfig().ID()).To(Equal(resourceConfig.ID())) 114 115 foundScope, err := resourceConfig.FindOrCreateScope(defaultResource) 116 Expect(err).ToNot(HaveOccurred()) 117 Expect(foundScope.ID()).To(Equal(createdScope.ID())) 118 }) 119 }) 120 }) 121 }) 122 })