github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/db/pipeline_factory_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("Pipeline Factory", func() {
    11  	var pipelineFactory db.PipelineFactory
    12  
    13  	BeforeEach(func() {
    14  		pipelineFactory = db.NewPipelineFactory(dbConn, lockFactory)
    15  	})
    16  
    17  	Describe("VisiblePipelines", func() {
    18  		var (
    19  			pipeline1 db.Pipeline
    20  			pipeline2 db.Pipeline
    21  			pipeline3 db.Pipeline
    22  		)
    23  
    24  		BeforeEach(func() {
    25  			err := defaultPipeline.Destroy()
    26  			Expect(err).ToNot(HaveOccurred())
    27  
    28  			team, err := teamFactory.CreateTeam(atc.Team{Name: "some-team"})
    29  			Expect(err).ToNot(HaveOccurred())
    30  
    31  			pipeline1, _, err = team.SavePipeline(atc.PipelineRef{Name: "fake-pipeline"}, atc.Config{
    32  				Jobs: atc.JobConfigs{
    33  					{Name: "job-name"},
    34  				},
    35  			}, db.ConfigVersion(1), false)
    36  			Expect(err).ToNot(HaveOccurred())
    37  			Expect(pipeline1.Reload()).To(BeTrue())
    38  
    39  			pipeline2, _, err = defaultTeam.SavePipeline(atc.PipelineRef{Name: "fake-pipeline-two"}, atc.Config{
    40  				Jobs: atc.JobConfigs{
    41  					{Name: "job-fake"},
    42  				},
    43  			}, db.ConfigVersion(1), false)
    44  			Expect(err).ToNot(HaveOccurred())
    45  			Expect(pipeline2.Reload()).To(BeTrue())
    46  
    47  			pipeline3, _, err = defaultTeam.SavePipeline(atc.PipelineRef{Name: "fake-pipeline-three"}, atc.Config{
    48  				Jobs: atc.JobConfigs{
    49  					{Name: "job-fake-two"},
    50  				},
    51  			}, db.ConfigVersion(1), false)
    52  			Expect(err).ToNot(HaveOccurred())
    53  			Expect(pipeline3.Expose()).To(Succeed())
    54  			Expect(pipeline3.Reload()).To(BeTrue())
    55  		})
    56  
    57  		It("returns all pipelines visible for the given teams", func() {
    58  			pipelines, err := pipelineFactory.VisiblePipelines([]string{"some-team"})
    59  			Expect(err).ToNot(HaveOccurred())
    60  			Expect(len(pipelines)).To(Equal(2))
    61  			Expect(pipelines[0].Name()).To(Equal(pipeline1.Name()))
    62  			Expect(pipelines[1].Name()).To(Equal(pipeline3.Name()))
    63  		})
    64  
    65  		It("returns all pipelines visible when empty team name provided", func() {
    66  			pipelines, err := pipelineFactory.VisiblePipelines([]string{""})
    67  			Expect(err).ToNot(HaveOccurred())
    68  			Expect(len(pipelines)).To(Equal(1))
    69  			Expect(pipelines[0].Name()).To(Equal(pipeline3.Name()))
    70  		})
    71  
    72  		It("returns all pipelines visible when empty teams provided", func() {
    73  			pipelines, err := pipelineFactory.VisiblePipelines([]string{})
    74  			Expect(err).ToNot(HaveOccurred())
    75  			Expect(len(pipelines)).To(Equal(1))
    76  			Expect(pipelines[0].Name()).To(Equal(pipeline3.Name()))
    77  		})
    78  
    79  		It("returns all pipelines visible when nil teams provided", func() {
    80  			pipelines, err := pipelineFactory.VisiblePipelines(nil)
    81  			Expect(err).ToNot(HaveOccurred())
    82  			Expect(len(pipelines)).To(Equal(1))
    83  			Expect(pipelines[0].Name()).To(Equal(pipeline3.Name()))
    84  		})
    85  	})
    86  
    87  	Describe("AllPipelines", func() {
    88  		var (
    89  			pipeline1 db.Pipeline
    90  			pipeline2 db.Pipeline
    91  			pipeline3 db.Pipeline
    92  		)
    93  
    94  		BeforeEach(func() {
    95  			err := defaultPipeline.Destroy()
    96  			Expect(err).ToNot(HaveOccurred())
    97  
    98  			team, err := teamFactory.CreateTeam(atc.Team{Name: "some-team"})
    99  			Expect(err).ToNot(HaveOccurred())
   100  
   101  			pipeline2, _, err = team.SavePipeline(atc.PipelineRef{Name: "fake-pipeline-two"}, atc.Config{
   102  				Jobs: atc.JobConfigs{
   103  					{Name: "job-fake"},
   104  				},
   105  			}, db.ConfigVersion(1), false)
   106  			Expect(err).ToNot(HaveOccurred())
   107  			Expect(pipeline2.Reload()).To(BeTrue())
   108  
   109  			pipeline3, _, err = team.SavePipeline(atc.PipelineRef{Name: "fake-pipeline-three"}, atc.Config{
   110  				Jobs: atc.JobConfigs{
   111  					{Name: "job-fake-two"},
   112  				},
   113  			}, db.ConfigVersion(1), false)
   114  			Expect(err).ToNot(HaveOccurred())
   115  			Expect(pipeline3.Expose()).To(Succeed())
   116  			Expect(pipeline3.Reload()).To(BeTrue())
   117  
   118  			pipeline1, _, err = defaultTeam.SavePipeline(atc.PipelineRef{Name: "fake-pipeline"}, atc.Config{
   119  				Jobs: atc.JobConfigs{
   120  					{Name: "job-name"},
   121  				},
   122  			}, db.ConfigVersion(1), false)
   123  			Expect(err).ToNot(HaveOccurred())
   124  			Expect(pipeline1.Expose()).To(Succeed())
   125  			Expect(pipeline1.Reload()).To(BeTrue())
   126  
   127  		})
   128  
   129  		It("returns all pipelines ordered by team id", func() {
   130  			pipelines, err := pipelineFactory.AllPipelines()
   131  			Expect(err).ToNot(HaveOccurred())
   132  			Expect(len(pipelines)).To(Equal(3))
   133  			Expect(pipelines[0].Name()).To(Equal(pipeline1.Name()))
   134  			Expect(pipelines[1].Name()).To(Equal(pipeline2.Name()))
   135  			Expect(pipelines[2].Name()).To(Equal(pipeline3.Name()))
   136  		})
   137  	})
   138  })