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  })