1 package resolver
2
3 import (
4 "context"
5 "testing"
6
7 "github.com/golang/mock/gomock"
8 "github.com/stretchr/testify/assert"
9
10 "edge-infra.dev/pkg/edge/api/graph/model"
11 "edge-infra.dev/pkg/edge/api/mocks"
12 )
13
14 func TestAddArtifactCompatibility(t *testing.T) {
15 mock := gomock.NewController(t)
16 compatibilityService := mocks.NewMockCompatibilityService(mock)
17
18 compatibilityService.EXPECT().GetArtifactVersionCompatibility(context.Background(), gomock.Any(), nil).
19 Return(&model.ArtifactCompatibility{}, nil).AnyTimes()
20
21 compatibilityService.EXPECT().AddArtifactCompatibility(context.Background(), gomock.Any()).
22 Return(true, nil).Times(1)
23
24 artInput := artifactCompatiblityInput()
25
26 response, err := compatibilityService.AddArtifactCompatibility(context.Background(), *artInput)
27 assert.NoError(t, err)
28 assert.NotNil(t, response)
29 }
30
31 func TestDeleteArtifactCompatibility(t *testing.T) {
32 mock := gomock.NewController(t)
33 compatibilityService := mocks.NewMockCompatibilityService(mock)
34
35 compatibilityService.EXPECT().GetArtifactVersionCompatibility(context.Background(), gomock.Any(), nil).
36 Return(&model.ArtifactCompatibility{}, nil).AnyTimes()
37
38 compatibilityService.EXPECT().DeleteArtifactCompatibility(context.Background(), gomock.Any()).
39 Return(true, nil).Times(1)
40
41 artInput := artifactCompatiblityInput()
42
43 response, err := compatibilityService.DeleteArtifactCompatibility(context.Background(), *artInput)
44 assert.NoError(t, err)
45 assert.NotNil(t, response)
46 }
47
48 func TestGetArtifactVersionCompatibility(t *testing.T) {
49 mock := gomock.NewController(t)
50 compatibilityService := mocks.NewMockCompatibilityService(mock)
51
52 compatibilityService.EXPECT().GetArtifactVersionCompatibility(context.Background(), gomock.Any(), nil).
53 Return(&model.ArtifactCompatibility{}, nil).AnyTimes()
54
55 compatibilityService.EXPECT().IsCompatible(context.Background(), gomock.Any(), gomock.Any()).
56 Return(true, nil).AnyTimes()
57
58 artInput := artifactCompatiblityInput()
59
60 response, err := compatibilityService.GetArtifactVersionCompatibility(context.Background(), model.ArtifactVersion{Name: artInput.Artifact.Name, Version: artInput.Artifact.Version}, nil)
61 assert.NoError(t, err)
62 assert.NotNil(t, response)
63 }
64
65 func TestCheckVersionSupport(t *testing.T) {
66 mock := gomock.NewController(t)
67 compatibilityService := mocks.NewMockCompatibilityService(mock)
68
69 compatibilityService.EXPECT().GetArtifactVersionCompatibility(context.Background(), gomock.Any(), nil).
70 Return(&model.ArtifactCompatibility{}, nil).AnyTimes()
71
72 compatibilityService.EXPECT().IsCompatible(context.Background(), gomock.Any(), gomock.Any()).
73 Return(true, nil).AnyTimes()
74
75 artInput := artifactCompatiblityInput()
76
77 response, err := compatibilityService.IsCompatible(context.Background(), model.ArtifactVersion{Name: artInput.Artifact.Name, Version: artInput.Artifact.Version}, model.ArtifactVersion{Name: artInput.CompatibleArtifacts[0].Name, Version: artInput.CompatibleArtifacts[0].Version})
78 assert.NoError(t, err)
79 assert.NotNil(t, response)
80 }
81
82 func artifactCompatiblityInput() *model.ArtifactCompatibilityPayload {
83 defaultBwc := 1
84 return &model.ArtifactCompatibilityPayload{
85 Artifact: &model.ArtifactInput{
86 Name: "test-artifact",
87 Version: "1.10",
88 },
89 NthIndex: &defaultBwc,
90 CompatibleArtifacts: []*model.ArtifactInput{
91 {
92 Name: "compatible-Artifact1",
93 Version: "1",
94 },
95 {
96 Name: "compatible-Artifact1",
97 Version: "2",
98 },
99 },
100 }
101 }
102
View as plain text