github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/db/container_owner_test.go (about) 1 package db_test 2 3 import ( 4 "time" 5 6 sq "github.com/Masterminds/squirrel" 7 "github.com/pf-qiu/concourse/v6/atc" 8 "github.com/pf-qiu/concourse/v6/atc/db" 9 10 . "github.com/onsi/ginkgo" 11 . "github.com/onsi/gomega" 12 ) 13 14 var _ = Describe("ContainerOwner", func() { 15 Describe("ResourceConfigCheckSessionContainerOwner", func() { 16 var ( 17 worker db.Worker 18 19 owner db.ContainerOwner 20 ownerExpiries db.ContainerOwnerExpiries 21 found bool 22 23 resourceConfig db.ResourceConfig 24 ) 25 26 ownerExpiries = db.ContainerOwnerExpiries{ 27 Min: 5 * time.Minute, 28 Max: 5 * time.Minute, 29 } 30 31 BeforeEach(func() { 32 workerPayload := atc.Worker{ 33 ResourceTypes: []atc.WorkerResourceType{defaultWorkerResourceType}, 34 Name: "resource-config-check-session-worker", 35 GardenAddr: "1.2.3.4:7778", 36 BaggageclaimURL: "5.6.7.8:7879", 37 } 38 39 var err error 40 worker, err = workerFactory.SaveWorker(workerPayload, 0) 41 Expect(err).NotTo(HaveOccurred()) 42 43 resourceConfig, err = resourceConfigFactory.FindOrCreateResourceConfig( 44 defaultWorkerResourceType.Type, 45 atc.Source{ 46 "some-type": "source", 47 }, 48 atc.VersionedResourceTypes{}, 49 ) 50 Expect(err).ToNot(HaveOccurred()) 51 }) 52 53 JustBeforeEach(func() { 54 owner = db.NewResourceConfigCheckSessionContainerOwner( 55 resourceConfig.ID(), 56 resourceConfig.OriginBaseResourceType().ID, 57 ownerExpiries, 58 ) 59 }) 60 61 Describe("Find/Create", func() { 62 var foundColumns sq.Eq 63 64 JustBeforeEach(func() { 65 var err error 66 foundColumns, found, err = owner.Find(dbConn) 67 Expect(err).ToNot(HaveOccurred()) 68 }) 69 70 Context("when a resource config exists", func() { 71 var createdColumns map[string]interface{} 72 73 BeforeEach(func() { 74 existingOwner := db.NewResourceConfigCheckSessionContainerOwner( 75 resourceConfig.ID(), 76 resourceConfig.OriginBaseResourceType().ID, 77 ownerExpiries, 78 ) 79 80 tx, err := dbConn.Begin() 81 Expect(err).ToNot(HaveOccurred()) 82 83 createdColumns, err = existingOwner.Create(tx, worker.Name()) 84 Expect(err).ToNot(HaveOccurred()) 85 Expect(createdColumns).ToNot(BeEmpty()) 86 87 Expect(tx.Commit()).To(Succeed()) 88 }) 89 90 It("finds the resource config check session", func() { 91 Expect(foundColumns).To(HaveLen(1)) 92 Expect(foundColumns["resource_config_check_session_id"]).To(ConsistOf(createdColumns["resource_config_check_session_id"])) 93 Expect(found).To(BeTrue()) 94 }) 95 }) 96 97 Context("when there are multiple resource config check sessions", func() { 98 var createdColumns, createdColumns2 map[string]interface{} 99 100 BeforeEach(func() { 101 existingOwner := db.NewResourceConfigCheckSessionContainerOwner( 102 resourceConfig.ID(), 103 resourceConfig.OriginBaseResourceType().ID, 104 ownerExpiries, 105 ) 106 107 tx, err := dbConn.Begin() 108 Expect(err).ToNot(HaveOccurred()) 109 110 createdColumns, err = existingOwner.Create(tx, worker.Name()) 111 Expect(err).ToNot(HaveOccurred()) 112 Expect(createdColumns).ToNot(BeEmpty()) 113 114 createdColumns2, err = existingOwner.Create(tx, defaultWorker.Name()) 115 Expect(err).ToNot(HaveOccurred()) 116 Expect(createdColumns).ToNot(BeEmpty()) 117 118 Expect(tx.Commit()).To(Succeed()) 119 }) 120 121 It("finds both resource config check sessions", func() { 122 Expect(foundColumns).To(HaveLen(1)) 123 Expect(foundColumns["resource_config_check_session_id"]).To(ConsistOf(createdColumns["resource_config_check_session_id"], createdColumns2["resource_config_check_session_id"])) 124 Expect(found).To(BeTrue()) 125 }) 126 }) 127 128 Context("when a resource config check session doesn't exist", func() { 129 It("doesn't find a resource config check session", func() { 130 Expect(found).To(BeFalse()) 131 }) 132 }) 133 }) 134 }) 135 })