@@ -46,26 +46,61 @@ func TestInternalUpstreamResolver(t *testing.T) {
4646 unresolvedUpstreamD := job .NewUpstreamUnresolvedInferred ("resource-D" )
4747
4848 t .Run ("Resolve" , func (t * testing.T ) {
49- t .Run ("resolves upstream internally" , func (t * testing.T ) {
49+ t .Run ("resolves inferred and static upstream internally" , func (t * testing.T ) {
5050 jobRepo := new (JobRepository )
51-
5251 logWriter := new (mockWriter )
5352 defer logWriter .AssertExpectations (t )
5453
5554 jobRepo .On ("GetAllByResourceDestination" , ctx , jobASources [0 ]).Return ([]* job.Job {jobB }, nil )
5655 jobRepo .On ("GetAllByResourceDestination" , ctx , jobASources [1 ]).Return ([]* job.Job {}, nil )
57-
5856 jobRepo .On ("GetByJobName" , ctx , sampleTenant .ProjectName (), specC .Name ()).Return (jobC , nil )
5957
6058 jobWithUnresolvedUpstream := job .NewWithUpstream (jobA , []* job.Upstream {unresolvedUpstreamB , unresolvedUpstreamC , unresolvedUpstreamD })
61-
6259 expectedJobWithUpstream := job .NewWithUpstream (jobA , []* job.Upstream {internalUpstreamB , internalUpstreamC , unresolvedUpstreamD })
6360
6461 internalUpstreamResolver := resolver .NewInternalUpstreamResolver (jobRepo )
6562 result , err := internalUpstreamResolver .Resolve (ctx , jobWithUnresolvedUpstream )
6663 assert .NoError (t , err )
6764 assert .EqualValues (t , expectedJobWithUpstream .Upstreams (), result .Upstreams ())
6865 })
66+ t .Run ("resolves inferred upstream internally" , func (t * testing.T ) {
67+ jobRepo := new (JobRepository )
68+ logWriter := new (mockWriter )
69+ defer logWriter .AssertExpectations (t )
70+
71+ specX , _ := job .NewSpecBuilder (jobVersion , "job-X" , "sample-owner" , jobSchedule , jobWindow , jobTask ).Build ()
72+ jobXDestination := job .ResourceURN ("resource-X" )
73+ jobX := job .NewJob (sampleTenant , specX , jobXDestination , []job.ResourceURN {"resource-B" })
74+
75+ jobRepo .On ("GetAllByResourceDestination" , ctx , jobX .Sources ()[0 ]).Return ([]* job.Job {jobB }, nil )
76+
77+ jobWithUnresolvedUpstream := job .NewWithUpstream (jobX , []* job.Upstream {unresolvedUpstreamB })
78+ expectedJobWithUpstream := job .NewWithUpstream (jobX , []* job.Upstream {internalUpstreamB })
79+
80+ internalUpstreamResolver := resolver .NewInternalUpstreamResolver (jobRepo )
81+ result , err := internalUpstreamResolver .Resolve (ctx , jobWithUnresolvedUpstream )
82+ assert .NoError (t , err )
83+ assert .EqualValues (t , expectedJobWithUpstream .Upstreams (), result .Upstreams ())
84+ })
85+ t .Run ("resolves static upstream internally" , func (t * testing.T ) {
86+ jobRepo := new (JobRepository )
87+ logWriter := new (mockWriter )
88+ defer logWriter .AssertExpectations (t )
89+
90+ specX , _ := job .NewSpecBuilder (jobVersion , "job-X" , "sample-owner" , jobSchedule , jobWindow , jobTask ).WithSpecUpstream (upstreamSpec ).Build ()
91+ jobXDestination := job .ResourceURN ("resource-X" )
92+ jobX := job .NewJob (sampleTenant , specX , jobXDestination , nil )
93+
94+ jobRepo .On ("GetByJobName" , ctx , sampleTenant .ProjectName (), specC .Name ()).Return (jobC , nil )
95+
96+ jobWithUnresolvedUpstream := job .NewWithUpstream (jobX , []* job.Upstream {unresolvedUpstreamC })
97+ expectedJobWithUpstream := job .NewWithUpstream (jobX , []* job.Upstream {internalUpstreamC })
98+
99+ internalUpstreamResolver := resolver .NewInternalUpstreamResolver (jobRepo )
100+ result , err := internalUpstreamResolver .Resolve (ctx , jobWithUnresolvedUpstream )
101+ assert .NoError (t , err )
102+ assert .EqualValues (t , expectedJobWithUpstream .Upstreams (), result .Upstreams ())
103+ })
69104 t .Run ("should not stop the process but keep appending error when unable to resolve inferred upstream" , func (t * testing.T ) {
70105 jobRepo := new (JobRepository )
71106
0 commit comments