From 7b2addae5f5771276815de141b47b95445ef259c Mon Sep 17 00:00:00 2001 From: Joscha Henningsen Date: Fri, 8 Nov 2024 11:03:44 +0100 Subject: [PATCH] initialize cache for server and tests --- server/backend/movie_test.go | 15 ++++++++++++--- server/backend/rpcserver.go | 1 + 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/server/backend/movie_test.go b/server/backend/movie_test.go index 68bd96c9..4094936e 100644 --- a/server/backend/movie_test.go +++ b/server/backend/movie_test.go @@ -3,6 +3,8 @@ package backend import ( "context" "database/sql" + "github.com/TUM-Dev/Campus-Backend/server/model" + "github.com/hashicorp/golang-lru/v2/expirable" "regexp" "testing" "time" @@ -81,7 +83,7 @@ var ( const ListMoviesQuery = "SELECT `movies`.`kino`,`movies`.`date`,`movies`.`created`,`movies`.`title`,`movies`.`year`,`movies`.`runtime`,`movies`.`genre`,`movies`.`director`,`movies`.`actors`,`movies`.`rating`,`movies`.`description`,`movies`.`trailer`,`movies`.`cover`,`movies`.`link`,`movies`.`location`,`File`.`file` AS `File__file`,`File`.`name` AS `File__name`,`File`.`path` AS `File__path`,`File`.`downloads` AS `File__downloads`,`File`.`url` AS `File__url`,`File`.`downloaded` AS `File__downloaded` FROM `movies` LEFT JOIN `files` `File` ON `movies`.`cover` = `File`.`file` WHERE kino > ? ORDER BY date ASC" func (s *MovieSuite) Test_ListMoviesAll() { - server := CampusServer{db: s.DB} + server := s.getCampusTestServer() s.mock.ExpectQuery(regexp.QuoteMeta(ListMoviesQuery)). WithArgs(-1). WillReturnRows(sqlmock.NewRows([]string{"kino", "date", "created", "title", "year", "runtime", "genre", "director", "actors", "rating", "description", "trailer", "cover", "link", "location", "File__file", "File__name", "File__path", "File__downloads", "File__url", "File__downloaded"}). @@ -93,7 +95,7 @@ func (s *MovieSuite) Test_ListMoviesAll() { } func (s *MovieSuite) Test_ListMoviesOne() { - server := CampusServer{db: s.DB} + server := s.getCampusTestServer() s.mock.ExpectQuery(regexp.QuoteMeta(ListMoviesQuery)). WithArgs(1). WillReturnRows(sqlmock.NewRows([]string{"kino", "date", "created", "title", "year", "runtime", "genre", "director", "actors", "rating", "description", "trailer", "cover", "link", "location", "File__file", "File__name", "File__path", "File__downloads", "File__url", "File__downloaded"}). @@ -104,7 +106,7 @@ func (s *MovieSuite) Test_ListMoviesOne() { } func (s *MovieSuite) Test_ListMoviesNone() { - server := CampusServer{db: s.DB} + server := s.getCampusTestServer() s.mock.ExpectQuery(regexp.QuoteMeta(ListMoviesQuery)). WithArgs(42). WillReturnRows(sqlmock.NewRows([]string{"kino", "date", "created", "title", "year", "runtime", "genre", "director", "actors", "rating", "description", "trailer", "cover", "link", "location", "File__file", "File__name", "File__path", "File__downloads", "File__url", "File__downloaded"})) @@ -122,3 +124,10 @@ func (s *MovieSuite) AfterTest(_, _ string) { func TestMovieSuite(t *testing.T) { suite.Run(t, new(MovieSuite)) } + +func (s *MovieSuite) getCampusTestServer() *CampusServer { + return &CampusServer{ + db: s.DB, + moviesCache: expirable.NewLRU[string, []model.Movie](1024, nil, time.Minute*30), + } +} diff --git a/server/backend/rpcserver.go b/server/backend/rpcserver.go index 9682629a..22844bc4 100644 --- a/server/backend/rpcserver.go +++ b/server/backend/rpcserver.go @@ -32,5 +32,6 @@ func New(db *gorm.DB) *CampusServer { feedbackEmailLastReuestAt: &sync.Map{}, newsSourceCache: expirable.NewLRU[string, []model.NewsSource](1, nil, time.Hour*6), newsCache: expirable.NewLRU[string, []model.News](1024, nil, time.Minute*30), + moviesCache: expirable.NewLRU[string, []model.Movie](1024, nil, time.Minute*30), } }