1313// See the License for the specific language governing permissions and
1414// limitations under the License.
1515
16- package biz
16+ package biz_test
1717
1818import (
1919 "context"
@@ -23,7 +23,9 @@ import (
2323 "testing"
2424
2525 casAPI "github.com/chainloop-dev/chainloop/app/artifact-cas/api/cas/v1"
26- "github.com/chainloop-dev/chainloop/internal/blobmanager/mocks"
26+ "github.com/chainloop-dev/chainloop/app/controlplane/internal/biz"
27+ "github.com/chainloop-dev/chainloop/app/controlplane/internal/biz/mocks"
28+ blobmock "github.com/chainloop-dev/chainloop/internal/blobmanager/mocks"
2729 "github.com/google/uuid"
2830 "github.com/secure-systems-lab/go-securesystemslib/dsse"
2931 "github.com/stretchr/testify/assert"
@@ -32,7 +34,8 @@ import (
3234 "github.com/stretchr/testify/suite"
3335)
3436
35- func (s * attestationTestSuite ) TestUploadToOCI () {
37+ // Deprecated method
38+ func (s * attestationTestSuite ) TestUploadToCASFallbackOCI () {
3639 runID := uuid .NewString ()
3740 envelope := & dsse.Envelope {}
3841 const expectedDigest = "f845058d865c3d4d491c9019f6afe9c543ad2cd11b31620cc512e341fb03d3d8"
@@ -42,14 +45,34 @@ func (s *attestationTestSuite) TestUploadToOCI() {
4245 FileName : fmt .Sprintf ("attestation-%s.json" , runID ), Digest : expectedDigest ,
4346 }).Return (nil )
4447
45- gotDigest , err := s .uc .UploadAttestationToOCI (context .Background (), envelope , s .uploader , runID )
48+ s .casUploader .On ("Configured" ).Return (false )
49+
50+ gotDigest , err := s .uc .UploadToCAS (ctx , envelope , "my-secret" , runID )
51+ assert .NoError (s .T (), err )
52+ assert .Equal (s .T (), expectedDigest , gotDigest )
53+ }
54+
55+ func (s * attestationTestSuite ) TestUploadToCAS () {
56+ runID := uuid .NewString ()
57+ envelope := & dsse.Envelope {}
58+ const expectedDigest = "f845058d865c3d4d491c9019f6afe9c543ad2cd11b31620cc512e341fb03d3d8"
59+
60+ ctx := context .Background ()
61+ s .casUploader .On (
62+ "Upload" , ctx , "my-secret" , mock .Anything ,
63+ fmt .Sprintf ("attestation-%s.json" , runID ), expectedDigest ,
64+ ).Return (nil )
65+
66+ s .casUploader .On ("Configured" ).Return (true )
67+
68+ gotDigest , err := s .uc .UploadToCAS (ctx , envelope , "my-secret" , runID )
4669 assert .NoError (s .T (), err )
4770 assert .Equal (s .T (), expectedDigest , gotDigest )
4871}
4972
5073func (s * attestationTestSuite ) TestFetchFromStore () {
5174 const expectedDigest = "f845058d865c3d4d491c9019f6afe9c543ad2cd11b31620cc512e341fb03d3d8"
52- want := & Attestation {Envelope : & dsse.Envelope {}}
75+ want := & biz. Attestation {Envelope : & dsse.Envelope {}}
5376
5477 ctx := context .Background ()
5578 s .downloader .On ("Download" , ctx , mock .Anything , expectedDigest ).Return (nil ).Run (
@@ -69,15 +92,22 @@ func TestAttestation(t *testing.T) {
6992}
7093
7194func (s * attestationTestSuite ) SetupTest () {
72- s .uc = NewAttestationUseCase (nil )
73- s .uploader = mocks .NewUploader (s .T ())
74- s .downloader = mocks .NewDownloader (s .T ())
95+ backendProvider := blobmock .NewProvider (s .T ())
96+ ociBackend := blobmock .NewUploaderDownloader (s .T ())
97+ backendProvider .On ("FromCredentials" , mock .Anything , "my-secret" ).Maybe ().Return (ociBackend , nil )
98+
99+ s .casUploader = mocks .NewCASUploader (s .T ())
100+ s .uc = biz .NewAttestationUseCase (s .casUploader , backendProvider , nil )
101+ s .uploader = (* blobmock .Uploader )(ociBackend )
102+ s .downloader = blobmock .NewDownloader (s .T ())
75103}
76104
77105// Utility struct to hold the test suite
78106type attestationTestSuite struct {
79107 suite.Suite
80- uc * AttestationUseCase
81- uploader * mocks.Uploader
82- downloader * mocks.Downloader
108+ uc * biz.AttestationUseCase
109+ // Deprecated: attestation should use the casclient instead of the blobmanager
110+ uploader * blobmock.Uploader
111+ downloader * blobmock.Downloader
112+ casUploader * mocks.CASUploader
83113}
0 commit comments