Skip to content

Commit 0be33b5

Browse files
Rebase fix
1 parent 2942341 commit 0be33b5

File tree

16 files changed

+77
-572
lines changed

16 files changed

+77
-572
lines changed

api/shared/zz_generated.deepcopy.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/v1beta1/zz_generated.deepcopy.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/v1beta2/zz_generated.deepcopy.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/descriptor/cache/cache.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import (
66
"github.com/kyma-project/lifecycle-manager/internal/descriptor/types"
77
)
88

9+
type DescriptorKey string
10+
911
type DescriptorCache struct {
1012
cache sync.Map
1113
}
@@ -16,7 +18,7 @@ func NewDescriptorCache() *DescriptorCache {
1618
}
1719
}
1820

19-
func (d *DescriptorCache) Get(key string) *types.Descriptor {
21+
func (d *DescriptorCache) Get(key DescriptorKey) *types.Descriptor {
2022
value, ok := d.cache.Load(key)
2123
if !ok {
2224
return nil
@@ -29,6 +31,6 @@ func (d *DescriptorCache) Get(key string) *types.Descriptor {
2931
return &types.Descriptor{ComponentDescriptor: desc.Copy()}
3032
}
3133

32-
func (d *DescriptorCache) Set(key string, value *types.Descriptor) {
34+
func (d *DescriptorCache) Set(key DescriptorKey, value *types.Descriptor) {
3335
d.cache.Store(key, value)
3436
}

internal/descriptor/cache/cache_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ func TestGet_ForCacheWithoutEntry_ReturnsNoEntry(t *testing.T) {
1515
descriptorCache := cache.NewDescriptorCache()
1616
key := "key 1"
1717

18-
actual := descriptorCache.Get(key)
18+
actual := descriptorCache.Get(cache.DescriptorKey(key))
1919

2020
assert.Nil(t, actual)
2121
}
@@ -32,9 +32,9 @@ func TestGet_ForCacheWithAnEntry_ReturnsAnEntry(t *testing.T) {
3232
}
3333
desc1 := &types.Descriptor{ComponentDescriptor: ocmDesc1}
3434

35-
descriptorCache.Set(key1, desc1)
35+
descriptorCache.Set(cache.DescriptorKey(key1), desc1)
3636

37-
assertDescriptorEqual(t, desc1, descriptorCache.Get(key1))
37+
assertDescriptorEqual(t, desc1, descriptorCache.Get(cache.DescriptorKey(key1)))
3838
}
3939

4040
func TestGet_ForCacheWithOverwrittenEntry_ReturnsNewEntry(t *testing.T) {
@@ -53,15 +53,15 @@ func TestGet_ForCacheWithOverwrittenEntry_ReturnsNewEntry(t *testing.T) {
5353
},
5454
},
5555
}
56-
descriptorCache.Set(originalKey, originalValue)
57-
assertDescriptorNotEqual(t, newValue, descriptorCache.Get(originalKey))
58-
assert.Nil(t, descriptorCache.Get(newKey))
56+
descriptorCache.Set(cache.DescriptorKey(originalKey), originalValue)
57+
assertDescriptorNotEqual(t, newValue, descriptorCache.Get(cache.DescriptorKey(originalKey)))
58+
assert.Nil(t, descriptorCache.Get(cache.DescriptorKey(newKey)))
5959

60-
descriptorCache.Set(newKey, newValue)
61-
descriptorCache.Set(originalKey, newValue)
60+
descriptorCache.Set(cache.DescriptorKey(newKey), newValue)
61+
descriptorCache.Set(cache.DescriptorKey(originalKey), newValue)
6262

63-
assertDescriptorEqual(t, newValue, descriptorCache.Get(newKey))
64-
assertDescriptorEqual(t, newValue, descriptorCache.Get(originalKey))
63+
assertDescriptorEqual(t, newValue, descriptorCache.Get(cache.DescriptorKey(newKey)))
64+
assertDescriptorEqual(t, newValue, descriptorCache.Get(cache.DescriptorKey(originalKey)))
6565
}
6666

6767
func assertDescriptorEqual(t *testing.T, expected, actual *types.Descriptor) {

internal/descriptor/cache/key.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import (
66
"github.com/kyma-project/lifecycle-manager/internal/descriptor/types/ocmidentity"
77
)
88

9-
type DescriptorKey string
10-
119
func GenerateDescriptorKey(ocmi ocmidentity.Component) DescriptorKey {
1210
return DescriptorKey(fmt.Sprintf("%s:%s", ocmi.Name(), ocmi.Version()))
1311
}

internal/descriptor/cache/key_test.go

Lines changed: 24 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -2,73 +2,32 @@ package cache_test
22

33
import (
44
"testing"
5-
//"github.com/stretchr/testify/assert"
6-
//"github.com/kyma-project/lifecycle-manager/api/shared"
7-
//"github.com/kyma-project/lifecycle-manager/api/v1beta2"
8-
//"github.com/kyma-project/lifecycle-manager/internal/descriptor/cache"
9-
//"github.com/kyma-project/lifecycle-manager/pkg/testutils"
10-
//"github.com/kyma-project/lifecycle-manager/pkg/testutils/builder"
5+
6+
"github.com/kyma-project/lifecycle-manager/internal/descriptor/cache"
7+
"github.com/kyma-project/lifecycle-manager/internal/descriptor/types/ocmidentity"
8+
"github.com/stretchr/testify/assert"
119
)
1210

13-
// TODO: Refactor or remove entirely
1411
func TestGenerateDescriptorCacheKey(t *testing.T) {
15-
/*
16-
testCases := []struct {
17-
name string
18-
template *v1beta2.ModuleTemplate
19-
want cache.DescriptorKey
20-
}{
21-
{
22-
name: "ModuleVersionAnnotation is not nil and valid semver",
23-
template: builder.NewModuleTemplateBuilder().
24-
WithName("name").
25-
WithNamespace(testutils.ControlPlaneNamespace).
26-
WithAnnotation(shared.ModuleVersionAnnotation, "1.0.0").
27-
WithChannel("channel").
28-
WithGeneration(1).
29-
Build(),
30-
want: "name:channel:1:1.0.0",
31-
},
32-
{
33-
name: "ModuleVersionAnnotation is not nil but invalid semver",
34-
template: builder.NewModuleTemplateBuilder().
35-
WithName("name").
36-
WithNamespace(testutils.ControlPlaneNamespace).
37-
WithGeneration(1).
38-
WithAnnotation(shared.ModuleVersionAnnotation, "not-semver").
39-
WithChannel("channel").
40-
Build(),
41-
want: "name:channel:1",
42-
},
43-
{
44-
name: "ModuleVersionAnnotation is not nil but module version is empty",
45-
template: builder.NewModuleTemplateBuilder().
46-
WithName("name").
47-
WithNamespace(testutils.ControlPlaneNamespace).
48-
WithGeneration(2).
49-
WithAnnotation(shared.ModuleVersionAnnotation, "").
50-
WithChannel("channel").
51-
Build(),
52-
want: "name:channel:2",
53-
},
54-
{
55-
name: "ModuleVersionAnnotation is nil",
56-
template: builder.NewModuleTemplateBuilder().
57-
WithName("name").
58-
WithNamespace(testutils.ControlPlaneNamespace).
59-
WithGeneration(3).
60-
WithChannel("channel").
61-
Build(),
62-
want: "name:channel:3",
63-
},
64-
}
12+
testCases := []struct {
13+
name string
14+
moduleName string
15+
moduleVersion string
16+
want string
17+
}{
18+
{
19+
name: "with valid module name and version",
20+
moduleName: "name",
21+
moduleVersion: "1.0.0",
22+
want: "name:1.0.0",
23+
},
24+
}
6525

66-
for i := range testCases {
67-
t.Run(testCases[i].name, func(t *testing.T) {
68-
got := cache.GenerateDescriptorKey(testCases[i].template)
69-
assert.Equalf(t, testCases[i].want, got,
70-
"GetComponentDescriptorCacheKey() = %v, want %v", got, testCases[i].want)
71-
})
72-
}
73-
*/
26+
for _, tc := range testCases {
27+
t.Run(tc.name, func(t *testing.T) {
28+
key := ocmidentity.MustNew(tc.moduleName, tc.moduleVersion)
29+
got := cache.GenerateDescriptorKey(*key)
30+
assert.Equal(t, tc.want, got)
31+
})
32+
}
7433
}

internal/descriptor/provider/provider.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func (c *CachedDescriptorProvider) getDescriptor(ocmi ocmidentity.Component, upd
7676
return nil, fmt.Errorf("cannot get descriptor for component: %w", ErrNameOrVersionEmpty)
7777
}
7878
key := cache.GenerateDescriptorKey(ocmi)
79-
descriptor := c.descriptorCache.Get(string(key))
79+
descriptor := c.descriptorCache.Get(key)
8080
if descriptor != nil {
8181
return descriptor, nil
8282
}
@@ -87,7 +87,7 @@ func (c *CachedDescriptorProvider) getDescriptor(ocmi ocmidentity.Component, upd
8787
}
8888

8989
if updateCache {
90-
c.descriptorCache.Set(string(key), descriptor)
90+
c.descriptorCache.Set(key, descriptor)
9191
}
9292

9393
return descriptor, nil

internal/descriptor/provider/provider_test.go

Lines changed: 4 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -30,51 +30,9 @@ func TestAdd_OnEmptyIdentity_ReturnsErr(t *testing.T) {
3030
require.ErrorIs(t, err, provider.ErrNameOrVersionEmpty)
3131
}
3232

33-
/*
34-
func TestGetDescriptor_OnNilTemplate_ReturnsErrTemplateNil(t *testing.T) {
35-
descriptorProvider := provider.NewCachedDescriptorProvider()
36-
37-
_, err := descriptorProvider.GetDescriptor(nil)
38-
39-
require.Error(t, err)
40-
require.ErrorIs(t, err, provider.ErrTemplateNil)
41-
}
42-
43-
func TestGetDescriptor_OnInvalidRawDescriptor_ReturnsErrDescriptorNil(t *testing.T) {
44-
descriptorProvider := provider.NewCachedDescriptorProvider()
45-
template := builder.NewModuleTemplateBuilder().
46-
WithRawDescriptor([]byte("invalid descriptor")).
47-
WithDescriptor(nil).
48-
Build()
49-
50-
_, err := descriptorProvider.GetDescriptor(template)
51-
52-
require.Error(t, err)
53-
require.ErrorIs(t, err, provider.ErrDescriptorNil)
54-
}
55-
56-
func TestGetDescriptor_OnEmptyCache_ReturnsParsedDescriptor(t *testing.T) {
57-
descriptorProvider := provider.NewCachedDescriptorProvider()
58-
template := builder.NewModuleTemplateBuilder().Build()
59-
60-
_, err := descriptorProvider.GetDescriptor(template)
61-
62-
require.NoError(t, err)
63-
}
64-
65-
func TestAdd_OnInvalidRawDescriptor_ReturnsErrDecode(t *testing.T) {
66-
descriptorProvider := provider.NewCachedDescriptorProvider()
67-
template := builder.NewModuleTemplateBuilder().
68-
WithVersion("1.0.0").
69-
WithRawDescriptor([]byte("invalid descriptor")).
70-
WithDescriptor(nil).
71-
Build()
72-
73-
err := descriptorProvider.Add(template)
74-
*/
7533
func TestGetDescriptor_OnInvalidRawDescriptor_ReturnsErr(t *testing.T) {
7634
descriptorProvider := provider.NewCachedDescriptorProvider(
77-
(&componentdescriptor.FakeService{}).Register([]byte("invalid descriptor")))
35+
componentdescriptor.NewFakeService([]byte("invalid descriptor")))
7836
ocmi, err := ocmidentity.New("test", "v1")
7937
require.NoError(t, err)
8038
_, err = descriptorProvider.GetDescriptor(*ocmi)
@@ -83,20 +41,13 @@ func TestGetDescriptor_OnInvalidRawDescriptor_ReturnsErr(t *testing.T) {
8341
require.ErrorIs(t, err, componentdescriptor.ErrDecode)
8442
}
8543

86-
/*
87-
<<<<<<< HEAD
88-
func TestAdd_OnDescriptorTypeButNull_ReturnsNoError(t *testing.T) {
89-
descriptorProvider := provider.NewCachedDescriptorProvider()
90-
template := builder.NewModuleTemplateBuilder().WithVersion("1.0.0").WithDescriptor(&types.Descriptor{}).Build()
91-
=======
92-
*/
9344
func TestGetDescriptor_OnEmptyCache_ReturnsDescriptorFromService(t *testing.T) {
9445
// given
9546
var moduleTemplateFromFile v1beta2.ModuleTemplate
9647
builder.ReadComponentDescriptorFromFile("v1beta2_template_operator_new_ocm.yaml", &moduleTemplateFromFile)
9748

9849
descriptorProvider := provider.NewCachedDescriptorProvider(
99-
(&componentdescriptor.FakeService{}).Register(moduleTemplateFromFile.Spec.Descriptor.Raw))
50+
componentdescriptor.NewFakeService(moduleTemplateFromFile.Spec.Descriptor.Raw))
10051

10152
ocmi, err := ocmidentity.New("kyma-project.io/module/template-operator", "1.0.0-new-ocm-format")
10253
require.NoError(t, err)
@@ -115,8 +66,7 @@ func TestGetDescriptor_DoesNotUpdateCache(t *testing.T) {
11566
var moduleTemplateFromFile v1beta2.ModuleTemplate
11667
builder.ReadComponentDescriptorFromFile("v1beta2_template_operator_new_ocm.yaml", &moduleTemplateFromFile)
11768

118-
mockService := &componentdescriptor.FakeService{}
119-
mockService.Register(moduleTemplateFromFile.Spec.Descriptor.Raw)
69+
mockService := componentdescriptor.NewFakeService(moduleTemplateFromFile.Spec.Descriptor.Raw)
12070

12171
descriptorProvider := provider.NewCachedDescriptorProvider(mockService)
12272

@@ -144,8 +94,7 @@ func TestGetDescriptor_ReturnsDescriptorFromCache(t *testing.T) {
14494
// given
14595
var moduleTemplateFromFile v1beta2.ModuleTemplate
14696
builder.ReadComponentDescriptorFromFile("v1beta2_template_operator_new_ocm.yaml", &moduleTemplateFromFile)
147-
mockService := &componentdescriptor.FakeService{}
148-
mockService.Register(moduleTemplateFromFile.Spec.Descriptor.Raw)
97+
mockService := componentdescriptor.NewFakeService(moduleTemplateFromFile.Spec.Descriptor.Raw)
14998
descriptorProvider := provider.NewCachedDescriptorProvider(mockService)
15099
ocmi, err := ocmidentity.New("kyma-project.io/module/template-operator", "1.0.0-new-ocm-format")
151100
require.NoError(t, err)

0 commit comments

Comments
 (0)