Skip to content
Snippets Groups Projects
Commit 83fa22b0 authored by Pavel Antonov's avatar Pavel Antonov :asterisk:
Browse files

Merge branch 'cherry-pick-cf99f709' into 'release/0.26'

Merge branch 'hotfix/PRXS-2697-FixItemsCache' into 'master'

See merge request perxis/perxis-go!262
parents b9e2677b 0ee06b70
No related branches found
No related tags found
No related merge requests found
...@@ -35,7 +35,7 @@ func (m cachingMiddleware) Get(ctx context.Context, spaceId, envId, collectionId ...@@ -35,7 +35,7 @@ func (m cachingMiddleware) Get(ctx context.Context, spaceId, envId, collectionId
value, e := m.cache.Get(makeKey(spaceId, envId, collectionId, itemId)) value, e := m.cache.Get(makeKey(spaceId, envId, collectionId, itemId))
if e == nil { if e == nil {
return value.(*service.Item), err return value.(*service.Item).Clone(), err
} }
itm, err = m.Items.Get(ctx, spaceId, envId, collectionId, itemId, options...) itm, err = m.Items.Get(ctx, spaceId, envId, collectionId, itemId, options...)
if err == nil { if err == nil {
...@@ -43,12 +43,14 @@ func (m cachingMiddleware) Get(ctx context.Context, spaceId, envId, collectionId ...@@ -43,12 +43,14 @@ func (m cachingMiddleware) Get(ctx context.Context, spaceId, envId, collectionId
if err != nil { if err != nil {
return nil, err return nil, err
} }
m.cache.Set(makeKey(itm.SpaceID, env.ID, itm.CollectionID, itm.ID), itm) _ = m.cache.Set(makeKey(itm.SpaceID, env.ID, itm.CollectionID, itm.ID), itm)
for _, al := range env.Aliases { for _, al := range env.Aliases {
m.cache.Set(makeKey(itm.SpaceID, al, itm.CollectionID, itm.ID), itm) _ = m.cache.Set(makeKey(itm.SpaceID, al, itm.CollectionID, itm.ID), itm)
} }
return itm.Clone(), err
} }
return itm, err
return nil, err
} }
func (m cachingMiddleware) Update(ctx context.Context, item *service.Item, options ...*service.UpdateOptions) (err error) { func (m cachingMiddleware) Update(ctx context.Context, item *service.Item, options ...*service.UpdateOptions) (err error) {
...@@ -59,11 +61,11 @@ func (m cachingMiddleware) Update(ctx context.Context, item *service.Item, optio ...@@ -59,11 +61,11 @@ func (m cachingMiddleware) Update(ctx context.Context, item *service.Item, optio
if err != nil { if err != nil {
return err return err
} }
m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID)) _ = m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID)) _ = m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
for _, al := range env.Aliases { for _, al := range env.Aliases {
m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID)) _ = m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID)) _ = m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
} }
} }
return err return err
...@@ -77,11 +79,11 @@ func (m cachingMiddleware) Delete(ctx context.Context, del *service.Item, option ...@@ -77,11 +79,11 @@ func (m cachingMiddleware) Delete(ctx context.Context, del *service.Item, option
if err != nil { if err != nil {
return err return err
} }
m.cache.Remove(makeKey(del.SpaceID, env.ID, del.CollectionID, del.ID)) _ = m.cache.Remove(makeKey(del.SpaceID, env.ID, del.CollectionID, del.ID))
m.cachePublished.Remove(makeKey(del.SpaceID, env.ID, del.CollectionID, del.ID)) _ = m.cachePublished.Remove(makeKey(del.SpaceID, env.ID, del.CollectionID, del.ID))
for _, al := range env.Aliases { for _, al := range env.Aliases {
m.cache.Remove(makeKey(del.SpaceID, al, del.CollectionID, del.ID)) _ = m.cache.Remove(makeKey(del.SpaceID, al, del.CollectionID, del.ID))
m.cachePublished.Remove(makeKey(del.SpaceID, al, del.CollectionID, del.ID)) _ = m.cachePublished.Remove(makeKey(del.SpaceID, al, del.CollectionID, del.ID))
} }
} }
...@@ -96,11 +98,11 @@ func (m cachingMiddleware) Publish(ctx context.Context, item *service.Item, opti ...@@ -96,11 +98,11 @@ func (m cachingMiddleware) Publish(ctx context.Context, item *service.Item, opti
if err != nil { if err != nil {
return err return err
} }
m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID)) _ = m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID)) _ = m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
for _, al := range env.Aliases { for _, al := range env.Aliases {
m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID)) _ = m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID)) _ = m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
} }
} }
return err return err
...@@ -114,11 +116,11 @@ func (m cachingMiddleware) Unpublish(ctx context.Context, item *service.Item, op ...@@ -114,11 +116,11 @@ func (m cachingMiddleware) Unpublish(ctx context.Context, item *service.Item, op
if err != nil { if err != nil {
return err return err
} }
m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID)) _ = m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID)) _ = m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
for _, al := range env.Aliases { for _, al := range env.Aliases {
m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID)) _ = m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID)) _ = m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
} }
} }
return err return err
...@@ -132,7 +134,7 @@ func (m cachingMiddleware) GetPublished(ctx context.Context, spaceId, envId, col ...@@ -132,7 +134,7 @@ func (m cachingMiddleware) GetPublished(ctx context.Context, spaceId, envId, col
if e == nil { if e == nil {
value := val.(map[string]*service.Item) value := val.(map[string]*service.Item)
if i, ok := value[opts.LocaleID]; ok { if i, ok := value[opts.LocaleID]; ok {
return i, nil return i.Clone(), nil
} }
} }
...@@ -148,13 +150,14 @@ func (m cachingMiddleware) GetPublished(ctx context.Context, spaceId, envId, col ...@@ -148,13 +150,14 @@ func (m cachingMiddleware) GetPublished(ctx context.Context, spaceId, envId, col
value = val.(map[string]*service.Item) value = val.(map[string]*service.Item)
} }
value[opts.LocaleID] = itm value[opts.LocaleID] = itm
m.cachePublished.Set(makeKey(itm.SpaceID, env.ID, itm.CollectionID, itm.ID), value) _ = m.cachePublished.Set(makeKey(itm.SpaceID, env.ID, itm.CollectionID, itm.ID), value)
for _, al := range env.Aliases { for _, al := range env.Aliases {
m.cachePublished.Set(makeKey(itm.SpaceID, al, itm.CollectionID, itm.ID), value) _ = m.cachePublished.Set(makeKey(itm.SpaceID, al, itm.CollectionID, itm.ID), value)
} }
return itm.Clone(), err
} }
return itm, err return nil, err
} }
func (m cachingMiddleware) Archive(ctx context.Context, item *service.Item, options ...*service.ArchiveOptions) (err error) { func (m cachingMiddleware) Archive(ctx context.Context, item *service.Item, options ...*service.ArchiveOptions) (err error) {
...@@ -165,11 +168,11 @@ func (m cachingMiddleware) Archive(ctx context.Context, item *service.Item, opti ...@@ -165,11 +168,11 @@ func (m cachingMiddleware) Archive(ctx context.Context, item *service.Item, opti
if err != nil { if err != nil {
return err return err
} }
m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID)) _ = m.cache.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID)) _ = m.cachePublished.Remove(makeKey(item.SpaceID, env.ID, item.CollectionID, item.ID))
for _, al := range env.Aliases { for _, al := range env.Aliases {
m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID)) _ = m.cache.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID)) _ = m.cachePublished.Remove(makeKey(item.SpaceID, al, item.CollectionID, item.ID))
} }
} }
return err return err
......
...@@ -47,10 +47,10 @@ func TestItemsCache(t *testing.T) { ...@@ -47,10 +47,10 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.Get(ctx, spaceID, envID, colID, itemID) v2, err := svc.Get(ctx, spaceID, envID, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша, при повторном запросе.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша, при повторном запросе.")
v3, err := svc.Get(ctx, spaceID, envAlias, colID, itemID) v3, err := svc.Get(ctx, spaceID, envAlias, colID, itemID)
assert.Same(t, v3, v2, "Ожидается получение объекта из кеша, при запросе того же объекта по alias окружения.") assert.Equal(t, v3, v2, "Ожидается получение объекта из кеша, при запросе того же объекта по alias окружения.")
require.NoError(t, err) require.NoError(t, err)
env.AssertExpectations(t) env.AssertExpectations(t)
...@@ -71,10 +71,10 @@ func TestItemsCache(t *testing.T) { ...@@ -71,10 +71,10 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.Get(ctx, spaceID, envAlias, colID, itemID) v2, err := svc.Get(ctx, spaceID, envAlias, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша, при повторном запросе.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша, при повторном запросе.")
v3, err := svc.Get(ctx, spaceID, envID, colID, itemID) v3, err := svc.Get(ctx, spaceID, envID, colID, itemID)
assert.Same(t, v3, v2, "Ожидается получение объекта из кеша, при запросе того же объекта по ID окружения.") assert.Equal(t, v3, v2, "Ожидается получение объекта из кеша, при запросе того же объекта по ID окружения.")
require.NoError(t, err) require.NoError(t, err)
env.AssertExpectations(t) env.AssertExpectations(t)
...@@ -95,11 +95,11 @@ func TestItemsCache(t *testing.T) { ...@@ -95,11 +95,11 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID}) v2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
v3, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID}) v3, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v2, v3, "Ожидается получение объекта из кеша, при запросе того же объекта по alias окружения.") assert.Equal(t, v2, v3, "Ожидается получение объекта из кеша, при запросе того же объекта по alias окружения.")
env.AssertExpectations(t) env.AssertExpectations(t)
itms.AssertExpectations(t) itms.AssertExpectations(t)
...@@ -119,11 +119,11 @@ func TestItemsCache(t *testing.T) { ...@@ -119,11 +119,11 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID}) v2, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
v3, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID}) v3, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v2, v3, "Ожидается получение объекта из кеша, при запросе того же объекта по ID окружения.") assert.Equal(t, v2, v3, "Ожидается получение объекта из кеша, при запросе того же объекта по ID окружения.")
env.AssertExpectations(t) env.AssertExpectations(t)
itms.AssertExpectations(t) itms.AssertExpectations(t)
...@@ -152,19 +152,19 @@ func TestItemsCache(t *testing.T) { ...@@ -152,19 +152,19 @@ func TestItemsCache(t *testing.T) {
v2loc1, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: loc1}) v2loc1, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: loc1})
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1loc1, v2loc1, "Ожидается получение объекта c локализацией loc1 из кеша.") assert.Equal(t, v1loc1, v2loc1, "Ожидается получение объекта c локализацией loc1 из кеша.")
v2loc2, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: loc2}) v2loc2, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: loc2})
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1loc2, v2loc2, "Ожидается получение объекта c локализацией loc2 из кеша.") assert.Equal(t, v1loc2, v2loc2, "Ожидается получение объекта c локализацией loc2 из кеша.")
v3loc1, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: loc1}) v3loc1, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: loc1})
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v2loc1, v3loc1, "Ожидается получение объекта c локализацией loc1 из кеша, при запросе того же объекта по ID окружения.") assert.Equal(t, v2loc1, v3loc1, "Ожидается получение объекта c локализацией loc1 из кеша, при запросе того же объекта по ID окружения.")
v3loc2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: loc2}) v3loc2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: loc2})
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v2loc2, v3loc2, "Ожидается получение объекта c локализацией loc2 из кеша, при запросе того же объекта по ID окружения.") assert.Equal(t, v2loc2, v3loc2, "Ожидается получение объекта c локализацией loc2 из кеша, при запросе того же объекта по ID окружения.")
env.AssertExpectations(t) env.AssertExpectations(t)
itms.AssertExpectations(t) itms.AssertExpectations(t)
...@@ -185,7 +185,7 @@ func TestItemsCache(t *testing.T) { ...@@ -185,7 +185,7 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.Get(ctx, spaceID, envID, colID, itemID) v2, err := svc.Get(ctx, spaceID, envID, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
itms.On("Update", mock.Anything, mock.Anything).Return(nil).Once() itms.On("Update", mock.Anything, mock.Anything).Return(nil).Once()
env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once() env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
...@@ -198,7 +198,7 @@ func TestItemsCache(t *testing.T) { ...@@ -198,7 +198,7 @@ func TestItemsCache(t *testing.T) {
v3, err := svc.Get(ctx, spaceID, envID, colID, itemID) v3, err := svc.Get(ctx, spaceID, envID, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.NotSame(t, v3, v2, "Ожидается удаление объекта из кэша после обновления и получение его заново из сервиса.") assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша после обновления и получение его заново из сервиса.")
env.AssertExpectations(t) env.AssertExpectations(t)
itms.AssertExpectations(t) itms.AssertExpectations(t)
...@@ -218,7 +218,7 @@ func TestItemsCache(t *testing.T) { ...@@ -218,7 +218,7 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.Get(ctx, spaceID, envID, colID, itemID) v2, err := svc.Get(ctx, spaceID, envID, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
itms.On("Archive", mock.Anything, mock.Anything).Return(nil).Once() itms.On("Archive", mock.Anything, mock.Anything).Return(nil).Once()
env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once() env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
...@@ -231,7 +231,7 @@ func TestItemsCache(t *testing.T) { ...@@ -231,7 +231,7 @@ func TestItemsCache(t *testing.T) {
v3, err := svc.Get(ctx, spaceID, envID, colID, itemID) v3, err := svc.Get(ctx, spaceID, envID, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.NotSame(t, v3, v2, "Ожидается удаление объекта из кэша после архивации и получение из сервиса.") assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша после архивации и получение из сервиса.")
env.AssertExpectations(t) env.AssertExpectations(t)
itms.AssertExpectations(t) itms.AssertExpectations(t)
...@@ -251,7 +251,7 @@ func TestItemsCache(t *testing.T) { ...@@ -251,7 +251,7 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.Get(ctx, spaceID, envID, colID, itemID) v2, err := svc.Get(ctx, spaceID, envID, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
itms.On("Publish", mock.Anything, mock.Anything).Return(nil).Once() itms.On("Publish", mock.Anything, mock.Anything).Return(nil).Once()
env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once() env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
...@@ -263,7 +263,7 @@ func TestItemsCache(t *testing.T) { ...@@ -263,7 +263,7 @@ func TestItemsCache(t *testing.T) {
v3, err := svc.Get(ctx, spaceID, envID, colID, itemID) v3, err := svc.Get(ctx, spaceID, envID, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.NotSame(t, v3, v2, "Ожидается удаление объекта из кэша после публикации и получение заново из сервиса.") assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша после публикации и получение заново из сервиса.")
env.AssertExpectations(t) env.AssertExpectations(t)
itms.AssertExpectations(t) itms.AssertExpectations(t)
...@@ -283,11 +283,11 @@ func TestItemsCache(t *testing.T) { ...@@ -283,11 +283,11 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.Get(ctx, spaceID, envID, colID, itemID) v2, err := svc.Get(ctx, spaceID, envID, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша при повторном запросе.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша при повторном запросе.")
v3, err := svc.Get(ctx, spaceID, envAlias, colID, itemID) v3, err := svc.Get(ctx, spaceID, envAlias, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v2, v3, "Ожидается получение объекта из кеша по alias окружения.") assert.Equal(t, v2, v3, "Ожидается получение объекта из кеша по alias окружения.")
itms.On("Delete", mock.Anything, mock.Anything).Return(nil).Once() itms.On("Delete", mock.Anything, mock.Anything).Return(nil).Once()
env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once() env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
...@@ -323,7 +323,7 @@ func TestItemsCache(t *testing.T) { ...@@ -323,7 +323,7 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.Get(ctx, spaceID, envID, colID, itemID) v2, err := svc.Get(ctx, spaceID, envID, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once() env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
itms.On("Unpublish", mock.Anything, mock.Anything).Return(nil).Once() itms.On("Unpublish", mock.Anything, mock.Anything).Return(nil).Once()
...@@ -336,7 +336,7 @@ func TestItemsCache(t *testing.T) { ...@@ -336,7 +336,7 @@ func TestItemsCache(t *testing.T) {
v3, err := svc.Get(ctx, spaceID, envID, colID, itemID) v3, err := svc.Get(ctx, spaceID, envID, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.NotSame(t, v3, v2, "Ожидается удаление объекта из кэша после снятия с публикации и получение заново из сервиса.") assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша после снятия с публикации и получение заново из сервиса.")
env.AssertExpectations(t) env.AssertExpectations(t)
itms.AssertExpectations(t) itms.AssertExpectations(t)
...@@ -356,7 +356,7 @@ func TestItemsCache(t *testing.T) { ...@@ -356,7 +356,7 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.Get(ctx, spaceID, envAlias, colID, itemID) v2, err := svc.Get(ctx, spaceID, envAlias, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша по alias окружения.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша по alias окружения.")
itms.On("Publish", mock.Anything, mock.Anything).Return(nil).Once() itms.On("Publish", mock.Anything, mock.Anything).Return(nil).Once()
env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once() env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
...@@ -389,7 +389,7 @@ func TestItemsCache(t *testing.T) { ...@@ -389,7 +389,7 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.Get(ctx, spaceID, envAlias, colID, itemID) v2, err := svc.Get(ctx, spaceID, envAlias, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша по alias окружения.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша по alias окружения.")
itms.On("Update", mock.Anything, mock.Anything).Return(nil).Once() itms.On("Update", mock.Anything, mock.Anything).Return(nil).Once()
env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once() env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
...@@ -402,7 +402,7 @@ func TestItemsCache(t *testing.T) { ...@@ -402,7 +402,7 @@ func TestItemsCache(t *testing.T) {
v3, err := svc.Get(ctx, spaceID, envAlias, colID, itemID) v3, err := svc.Get(ctx, spaceID, envAlias, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.NotSame(t, v3, v2, "Ожидается удаление объекта из кэша при обновлении и получение из сервиса по alias окружения.") assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша при обновлении и получение из сервиса по alias окружения.")
env.AssertExpectations(t) env.AssertExpectations(t)
itms.AssertExpectations(t) itms.AssertExpectations(t)
...@@ -422,7 +422,7 @@ func TestItemsCache(t *testing.T) { ...@@ -422,7 +422,7 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.Get(ctx, spaceID, envAlias, colID, itemID) v2, err := svc.Get(ctx, spaceID, envAlias, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша по alias окружения.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша по alias окружения.")
itms.On("Unpublish", mock.Anything, mock.Anything).Return(nil).Once() itms.On("Unpublish", mock.Anything, mock.Anything).Return(nil).Once()
env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once() env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
...@@ -435,7 +435,7 @@ func TestItemsCache(t *testing.T) { ...@@ -435,7 +435,7 @@ func TestItemsCache(t *testing.T) {
v3, err := svc.Get(ctx, spaceID, envAlias, colID, itemID) v3, err := svc.Get(ctx, spaceID, envAlias, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.NotSame(t, v3, v2, "Ожидается удаление объекта из кэша после снятия с публикации и получение из сервиса по alias окружения.") assert.NotEqual(t, v3, v2, "Ожидается удаление объекта из кэша после снятия с публикации и получение из сервиса по alias окружения.")
env.AssertExpectations(t) env.AssertExpectations(t)
itms.AssertExpectations(t) itms.AssertExpectations(t)
...@@ -455,11 +455,11 @@ func TestItemsCache(t *testing.T) { ...@@ -455,11 +455,11 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID}) v2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
v3, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID}) v3, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v2, v3, "Ожидается получение объекта из кеша по о alias окружения.") assert.Equal(t, v2, v3, "Ожидается получение объекта из кеша по о alias окружения.")
itms.On("Update", mock.Anything, mock.Anything).Return(nil).Once() itms.On("Update", mock.Anything, mock.Anything).Return(nil).Once()
env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once() env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
...@@ -496,11 +496,11 @@ func TestItemsCache(t *testing.T) { ...@@ -496,11 +496,11 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID}) v2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
v3, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID}) v3, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v2, v3, "Ожидается получение объекта из кеша по о alias окружения.") assert.Equal(t, v2, v3, "Ожидается получение объекта из кеша по о alias окружения.")
itms.On("Archive", mock.Anything, mock.Anything).Return(nil).Once() itms.On("Archive", mock.Anything, mock.Anything).Return(nil).Once()
env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once() env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
...@@ -537,11 +537,11 @@ func TestItemsCache(t *testing.T) { ...@@ -537,11 +537,11 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID}) v2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
v3, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID}) v3, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v2, v3, "Ожидается получение объекта из кеша по о alias окружения.") assert.Equal(t, v2, v3, "Ожидается получение объекта из кеша по о alias окружения.")
itms.On("Delete", mock.Anything, mock.Anything).Return(nil).Once() itms.On("Delete", mock.Anything, mock.Anything).Return(nil).Once()
env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once() env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
...@@ -578,11 +578,11 @@ func TestItemsCache(t *testing.T) { ...@@ -578,11 +578,11 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID}) v2, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
v3, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID}) v3, err := svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v2, v3, "Ожидается получение объекта из кеша по о alias окружения.") assert.Equal(t, v2, v3, "Ожидается получение объекта из кеша по о alias окружения.")
itms.On("Unpublish", mock.Anything, mock.Anything).Return(nil).Once() itms.On("Unpublish", mock.Anything, mock.Anything).Return(nil).Once()
env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once() env.On("Get", mock.Anything, spaceID, envID).Return(&environments.Environment{ID: envID, SpaceID: spaceID, Aliases: []string{envAlias}}, nil).Once()
...@@ -623,14 +623,14 @@ func TestItemsCache(t *testing.T) { ...@@ -623,14 +623,14 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.Get(ctx, spaceID, envID, colID, itemID) v2, err := svc.Get(ctx, spaceID, envID, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
v3, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID}) v3, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
require.NoError(t, err) require.NoError(t, err)
v4, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID}) v4, err := svc.GetPublished(ctx, spaceID, envID, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v3, v4, "Ожидается получение опубликованного объекта из кеша.") assert.Equal(t, v3, v4, "Ожидается получение опубликованного объекта из кеша.")
itms.On("Unpublish", mock.Anything, mock.Anything).Return(nil).Once() itms.On("Unpublish", mock.Anything, mock.Anything).Return(nil).Once()
err = svc.Unpublish(ctx, &items.Item{ID: itemID, SpaceID: spaceID, EnvID: envAlias, CollectionID: colID, State: items.StatePublished}) err = svc.Unpublish(ctx, &items.Item{ID: itemID, SpaceID: spaceID, EnvID: envAlias, CollectionID: colID, State: items.StatePublished})
...@@ -643,7 +643,7 @@ func TestItemsCache(t *testing.T) { ...@@ -643,7 +643,7 @@ func TestItemsCache(t *testing.T) {
v5, err := svc.Get(ctx, spaceID, envID, colID, itemID) v5, err := svc.Get(ctx, spaceID, envID, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.NotSame(t, v5, v2, "Ожидается удаление объекта из кэша и получение заново из сервиса.") assert.NotEqual(t, v5, v2, "Ожидается удаление объекта из кэша и получение заново из сервиса.")
_, err = svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID}) _, err = svc.GetPublished(ctx, spaceID, envAlias, colID, itemID, &items.GetPublishedOptions{LocaleID: locID})
require.Error(t, err) require.Error(t, err)
...@@ -667,7 +667,7 @@ func TestItemsCache(t *testing.T) { ...@@ -667,7 +667,7 @@ func TestItemsCache(t *testing.T) {
v2, err := svc.Get(ctx, spaceID, envID, colID, itemID) v2, err := svc.Get(ctx, spaceID, envID, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.Same(t, v1, v2, "Ожидается получение объекта из кеша.") assert.Equal(t, v1, v2, "Ожидается получение объекта из кеша.")
time.Sleep(2 * ttl) time.Sleep(2 * ttl)
...@@ -677,6 +677,7 @@ func TestItemsCache(t *testing.T) { ...@@ -677,6 +677,7 @@ func TestItemsCache(t *testing.T) {
v3, err := svc.Get(ctx, spaceID, envID, colID, itemID) v3, err := svc.Get(ctx, spaceID, envID, colID, itemID)
require.NoError(t, err) require.NoError(t, err)
assert.NotSame(t, v2, v3, "Ожидается удаление объекта из кэша и получение из сервиса.") assert.NotSame(t, v2, v3, "Ожидается удаление объекта из кэша и получение из сервиса.")
assert.Equal(t, v2, v3)
env.AssertExpectations(t) env.AssertExpectations(t)
itms.AssertExpectations(t) itms.AssertExpectations(t)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment