From 61fa6090c88d013fdbe39cb1a7fefd58d3c60cfd Mon Sep 17 00:00:00 2001 From: Hugh Brace Date: Thu, 4 Dec 2025 15:39:11 +0000 Subject: [PATCH 01/12] Send search content updated message to kafka --- api/api.go | 4 +- api/dataset_test.go | 170 +++++++++++++--------- api/dimensions_test.go | 4 +- api/editions_test.go | 30 ++-- api/interfaces.go | 9 ++ api/metadata_test.go | 32 ++--- api/static_versions_test.go | 60 ++++---- api/versions.go | 26 ++++ api/versions_test.go | 144 ++++++++++--------- api/webendpoints_test.go | 2 +- config/config.go | 2 + config/config_test.go | 1 + dimension/dimension_test.go | 2 +- features/static_versions_put.feature | 203 ++++++++++++++------------- features/steps/steps.go | 27 ++++ instance/instance_external_test.go | 2 +- service/initialise.go | 14 +- service/service.go | 22 ++- service/service_test.go | 46 +++--- 19 files changed, 469 insertions(+), 331 deletions(-) create mode 100644 api/interfaces.go diff --git a/api/api.go b/api/api.go index e9c2a628..524f7ff6 100644 --- a/api/api.go +++ b/api/api.go @@ -77,10 +77,11 @@ type DatasetAPI struct { smDatasetAPI *application.StateMachineDatasetAPI filesAPIClient filesAPISDK.Clienter authToken string + searchContentUpdated *SearchContentUpdated } // Setup creates a new Dataset API instance and register the API routes based on the application configuration. -func Setup(ctx context.Context, cfg *config.Configuration, router *mux.Router, dataStore store.DataStore, urlBuilder *url.Builder, downloadGenerators map[models.DatasetType]DownloadsGenerator, datasetPermissions, permissions AuthHandler, enableURLRewriting bool, smDatasetAPI *application.StateMachineDatasetAPI) *DatasetAPI { +func Setup(ctx context.Context, cfg *config.Configuration, router *mux.Router, dataStore store.DataStore, urlBuilder *url.Builder, downloadGenerators map[models.DatasetType]DownloadsGenerator, datasetPermissions, permissions AuthHandler, enableURLRewriting bool, smDatasetAPI *application.StateMachineDatasetAPI, searchContentUpdated *SearchContentUpdated) *DatasetAPI { api := &DatasetAPI{ dataStore: dataStore, host: cfg.DatasetAPIURL, @@ -100,6 +101,7 @@ func Setup(ctx context.Context, cfg *config.Configuration, router *mux.Router, d MaxRequestOptions: cfg.MaxRequestOptions, defaultLimit: cfg.DefaultLimit, smDatasetAPI: smDatasetAPI, + searchContentUpdated: searchContentUpdated, } paginator := pagination.NewPaginator(cfg.DefaultLimit, cfg.DefaultOffset, cfg.DefaultMaxLimit) diff --git a/api/dataset_test.go b/api/dataset_test.go index 3f55a02d..64d97b32 100644 --- a/api/dataset_test.go +++ b/api/dataset_test.go @@ -20,6 +20,7 @@ import ( storetest "github.com/ONSdigital/dp-dataset-api/store/datastoretest" "github.com/ONSdigital/dp-dataset-api/url" filesAPISDKMocks "github.com/ONSdigital/dp-files-api/sdk/mocks" + kafka "github.com/ONSdigital/dp-kafka/v4" dprequest "github.com/ONSdigital/dp-net/v3/request" "github.com/gorilla/mux" @@ -60,8 +61,29 @@ func getAuthorisationHandlerMock() *mocks.AuthHandlerMock { } } +//func getSearchContentUpdatedProducerMock() *SearchContentUpdated { +// producerMock := &mocks.KafkaProducerMock{ +// OutputFunc: func() chan kafka.BytesMessage { +// return make(chan kafka.BytesMessage, 1) +// }, +// } +// return &SearchContentUpdated{ +// Producer: producerMock, +// } +//} + +func getSearchContentUpdatedMock() *mocks.KafkaProducerMock { + producerMock := &mocks.KafkaProducerMock{ + OutputFunc: func() chan kafka.BytesMessage { + return make(chan kafka.BytesMessage, 1) + }, + } + + return producerMock +} + // GetAPIWithCMDMocks also used in other tests, so exported -func GetAPIWithCMDMocks(mockedDataStore store.Storer, mockedGeneratedDownloads DownloadsGenerator, datasetPermissions, permissions AuthHandler) *DatasetAPI { +func GetAPIWithCMDMocks(mockedDataStore store.Storer, mockedGeneratedDownloads DownloadsGenerator, datasetPermissions, permissions AuthHandler, searchContentUpdated SearchContentUpdated) *DatasetAPI { mu.Lock() defer mu.Unlock() cfg, err := config.Get() @@ -84,6 +106,16 @@ func GetAPIWithCMDMocks(mockedDataStore store.Storer, mockedGeneratedDownloads D models.CantabularFlexibleTable: mockedGeneratedDownloads, } + //producerMock := &mocks.KafkaProducerMock{ + // OutputFunc: func() chan kafka.BytesMessage { + // return nil + // }, + //} + // + //searchContentUpdated := SearchContentUpdated{ + // Producer: producerMock, + //} + states := []application.State{application.Published, application.EditionConfirmed, application.Associated} transitions := []application.Transition{{ Label: "published", @@ -161,7 +193,7 @@ func GetAPIWithCMDMocks(mockedDataStore store.Storer, mockedGeneratedDownloads D StateMachine: application.NewStateMachine(testContext, states, transitions, store.DataStore{Backend: mockedDataStore}), } - return Setup(testContext, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, mockedMapGeneratedDownloads, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI) + return Setup(testContext, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, mockedMapGeneratedDownloads, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI, &searchContentUpdated) } // GetAPIWithCMDMocks also used in other tests, so exported @@ -217,7 +249,7 @@ func GetAPIWithCantabularMocks(mockedDataStore store.Storer, mockedGeneratedDown StateMachine: application.NewStateMachine(testContext, states, transitions, store.DataStore{Backend: mockedDataStore}), } - return Setup(testContext, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, mockedMapGeneratedDownloads, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI) + return Setup(testContext, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, mockedMapGeneratedDownloads, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI, nil) } func createRequestWithAuth(method, target string, body io.Reader) *http.Request { @@ -245,7 +277,7 @@ func TestGetDatasetsReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 11, 12) @@ -270,7 +302,7 @@ func TestGetDatasetsReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 11, 12) @@ -295,7 +327,7 @@ func TestGetDatasetsReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 11, 12) So(actualResponse, ShouldResemble, []*models.Dataset{{ID: "123-456", Type: "static", IsBasedOn: &models.IsBasedOn{ID: "Example"}}}) @@ -325,7 +357,7 @@ func TestGetDatasetsReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 10, 0) @@ -358,7 +390,7 @@ func TestGetDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 6, 7) assertInternalServerErr(w) @@ -386,7 +418,7 @@ func TestGetDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 6, 7) So(len(mockedDataStore.GetDatasetsCalls()), ShouldEqual, 0) @@ -410,7 +442,7 @@ func TestGetDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 6, 7) So(len(mockedDataStore.GetDatasetsCalls()), ShouldEqual, 0) @@ -438,7 +470,7 @@ func TestGetDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 6, 7) So(len(mockedDataStore.GetDatasetsByQueryParamsCalls()), ShouldEqual, 1) @@ -465,7 +497,7 @@ func TestGetDatasetReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -486,7 +518,7 @@ func TestGetDatasetReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -509,7 +541,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -529,7 +561,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -551,7 +583,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -576,7 +608,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -605,7 +637,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -634,7 +666,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -663,7 +695,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -692,7 +724,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -721,7 +753,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -750,7 +782,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -779,7 +811,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -811,7 +843,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -843,7 +875,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -875,7 +907,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -907,7 +939,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -939,7 +971,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -973,7 +1005,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -1006,7 +1038,7 @@ func TestPostDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusConflict) @@ -1038,7 +1070,7 @@ func TestPostDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -1073,7 +1105,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1105,7 +1137,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -1134,7 +1166,7 @@ func TestPostDatasetReturnsError(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusUnauthorized) @@ -1170,7 +1202,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusConflict) @@ -1203,7 +1235,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Body.String(), ShouldResemble, "invalid fields: [QMI]\n") @@ -1234,7 +1266,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Body.String(), ShouldResemble, "invalid fields: [QMI]\n") @@ -1265,7 +1297,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Body.String(), ShouldResemble, "invalid fields: [QMI]\n") @@ -1296,7 +1328,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1330,7 +1362,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -1366,7 +1398,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1413,7 +1445,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1461,7 +1493,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1493,7 +1525,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1525,7 +1557,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1557,7 +1589,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1589,7 +1621,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1621,7 +1653,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1655,7 +1687,7 @@ func TestPutDatasetReturnsError(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1688,7 +1720,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -1721,7 +1753,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -1757,7 +1789,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1790,7 +1822,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1823,7 +1855,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1854,7 +1886,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusUnauthorized) @@ -1888,7 +1920,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusConflict) @@ -1921,7 +1953,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -1958,7 +1990,7 @@ func TestDeleteDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNoContent) @@ -1992,7 +2024,7 @@ func TestDeleteDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNoContent) @@ -2065,7 +2097,7 @@ func TestDeleteDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.filesAPIClient = &mockFilesAPIClient api.Router.ServeHTTP(w, r) @@ -2105,7 +2137,7 @@ func TestDeleteDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2137,7 +2169,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusForbidden) @@ -2168,7 +2200,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -2198,7 +2230,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNoContent) @@ -2229,7 +2261,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -2249,7 +2281,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { mockedDataStore := &storetest.StorerMock{} datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusUnauthorized) @@ -2304,7 +2336,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -2356,7 +2388,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.filesAPIClient = &mockFilesAPIClient api.Router.ServeHTTP(w, r) diff --git a/api/dimensions_test.go b/api/dimensions_test.go index 91f80c88..1c07dbcd 100644 --- a/api/dimensions_test.go +++ b/api/dimensions_test.go @@ -19,7 +19,7 @@ import ( func initAPIWithMockedStore(mockedStore *storetest.StorerMock) *DatasetAPI { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - return GetAPIWithCMDMocks(mockedStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + return GetAPIWithCMDMocks(mockedStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) } func TestGetDimensionsReturnsOk(t *testing.T) { @@ -39,7 +39,7 @@ func TestGetDimensionsReturnsOk(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) diff --git a/api/editions_test.go b/api/editions_test.go index fde726f2..9029640e 100644 --- a/api/editions_test.go +++ b/api/editions_test.go @@ -63,7 +63,7 @@ func TestGetEditionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) list, totalCount, err := api.getEditions(w, r, 20, 0) So(w.Code, ShouldEqual, http.StatusOK) @@ -255,7 +255,7 @@ func TestGetEditionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) _, totalCount, _ := api.getEditions(w, r, 20, 0) editions, err := utils.MapVersionsToEditionUpdate(publishedLatestVersion, nil) @@ -475,7 +475,7 @@ func TestGetEditionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) _, totalCount, _ := api.getEditions(w, r, 20, 0) editions, err := utils.MapVersionsToEditionUpdate(publishedLatestVersion, unpublishedLatestVersion) @@ -505,7 +505,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -531,7 +531,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -560,7 +560,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -588,7 +588,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -616,7 +616,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -644,7 +644,7 @@ func TestGetEditionReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -669,7 +669,7 @@ func TestGetEditionReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -694,7 +694,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -718,7 +718,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -745,7 +745,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -771,7 +771,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -797,7 +797,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) diff --git a/api/interfaces.go b/api/interfaces.go new file mode 100644 index 00000000..a0c69322 --- /dev/null +++ b/api/interfaces.go @@ -0,0 +1,9 @@ +package api + +import ( + kafka "github.com/ONSdigital/dp-kafka/v4" +) + +type KafkaProducer interface { + Output() chan kafka.BytesMessage +} diff --git a/api/metadata_test.go b/api/metadata_test.go index f6b95df0..8a5dfcf6 100644 --- a/api/metadata_test.go +++ b/api/metadata_test.go @@ -60,7 +60,7 @@ func TestPutMetadata(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) edition := version.Edition versionNo := strconv.Itoa(version.Version) @@ -300,7 +300,7 @@ func TestGetMetadataReturnsOk(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -360,7 +360,7 @@ func TestGetMetadataReturnsOk(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -422,7 +422,7 @@ func TestGetMetadataReturnsOk(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -480,7 +480,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -508,7 +508,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -542,7 +542,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -576,7 +576,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -610,7 +610,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -639,7 +639,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -674,7 +674,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -695,7 +695,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -718,7 +718,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -741,7 +741,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -779,7 +779,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -820,7 +820,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) diff --git a/api/static_versions_test.go b/api/static_versions_test.go index 25cf864a..0cf8383d 100644 --- a/api/static_versions_test.go +++ b/api/static_versions_test.go @@ -70,7 +70,7 @@ func TestGetDatasetEditions_WithQueryParam_Success(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -149,7 +149,7 @@ func TestGetDatasetEditions_WithPublishedParam(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -190,7 +190,7 @@ func TestGetDatasetEditions_WithPublishedParam(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -212,7 +212,7 @@ func TestGetDatasetEditions_WithPublishedParam(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -296,7 +296,7 @@ func TestGetDatasetEditions_WithoutQueryParam_Success(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -366,7 +366,7 @@ func TestGetDatasetEditions_InvalidQueryParam_Failure(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -395,7 +395,7 @@ func TestGetDatasetEditions_GetStaticVersionsByState_Failure(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called and no versions are found", func() { r := createRequestWithAuth("GET", "http://localhost:22000/dataset-editions?state=associated", http.NoBody) @@ -444,7 +444,7 @@ func TestGetDatasetEditions_GetDataset_Failure(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called and the dataset is not found", func() { r := createRequestWithAuth("GET", "http://localhost:22000/dataset-editions", http.NoBody) @@ -477,7 +477,7 @@ func TestGetDatasetEditions_GetDataset_Failure(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called and the datastore fails", func() { r := createRequestWithAuth("GET", "http://localhost:22000/dataset-editions", http.NoBody) @@ -549,7 +549,7 @@ func TestAddDatasetVersionCondensed_Success(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(successResponse.Status, ShouldEqual, http.StatusCreated) @@ -619,7 +619,7 @@ func TestAddDatasetVersionCondensed_Success(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, getAuthorisationHandlerMock(), getAuthorisationHandlerMock()) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, getAuthorisationHandlerMock(), getAuthorisationHandlerMock(), SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(successResponse.Status, ShouldEqual, http.StatusCreated) @@ -656,7 +656,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) castErr := errorResponse.Errors[0] @@ -698,7 +698,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(successResponse.Status, ShouldEqual, http.StatusCreated) @@ -727,7 +727,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(errorResponse.Status, ShouldEqual, http.StatusInternalServerError) @@ -810,7 +810,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(errorResponse.Status, ShouldEqual, http.StatusNotFound) @@ -907,7 +907,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) @@ -951,7 +951,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(errorResponse.Status, ShouldEqual, http.StatusBadRequest) @@ -1012,7 +1012,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(errorResponse.Status, ShouldEqual, http.StatusBadRequest) @@ -1159,7 +1159,7 @@ func TestCreateVersion_Success(t *testing.T) { returnedVersionJSON, err := json.Marshal(expectedVersion) So(err, ShouldBeNil) - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1236,7 +1236,7 @@ func TestCreateVersion_Failure(t *testing.T) { permissions := getAuthorisationHandlerMock() Convey("When the JSON body provided is invalid", t, func() { - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/invalid", http.NoBody) vars := map[string]string{ "dataset_id": "123", @@ -1262,7 +1262,7 @@ func TestCreateVersion_Failure(t *testing.T) { validVersionJSON, err := json.Marshal(validVersion) So(err, ShouldBeNil) - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/invalid", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1291,7 +1291,7 @@ func TestCreateVersion_Failure(t *testing.T) { invalidTypeVersionJSON, err := json.Marshal(invalidTypeVersion) So(err, ShouldBeNil) - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(invalidTypeVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1321,7 +1321,7 @@ func TestCreateVersion_Failure(t *testing.T) { invalidVersionJSON, err := json.Marshal(invalidVersion) So(err, ShouldBeNil) - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/100", bytes.NewBuffer(invalidVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1359,7 +1359,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1391,7 +1391,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1426,7 +1426,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1461,7 +1461,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1499,7 +1499,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1537,7 +1537,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1578,7 +1578,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", diff --git a/api/versions.go b/api/versions.go index 5d28e354..ce1d6855 100644 --- a/api/versions.go +++ b/api/versions.go @@ -13,6 +13,7 @@ import ( errs "github.com/ONSdigital/dp-dataset-api/apierrors" "github.com/ONSdigital/dp-dataset-api/models" "github.com/ONSdigital/dp-dataset-api/utils" + kafka "github.com/ONSdigital/dp-kafka/v4" dpresponse "github.com/ONSdigital/dp-net/v3/handlers/response" dphttp "github.com/ONSdigital/dp-net/v3/http" "github.com/ONSdigital/dp-net/v3/links" @@ -47,6 +48,10 @@ var ( } ) +type SearchContentUpdated struct { + Producer KafkaProducer +} + // getVersions returns a list of versions, the total count of versions that match the query parameters and an error // TODO: Refactor this to reduce the complexity // @@ -791,6 +796,27 @@ func (api *DatasetAPI) putState(w http.ResponseWriter, r *http.Request) { } } + if updatedVersion.State == models.PublishedState { + searchContentUpdatedEvent := map[string]interface{}{ + "uri": updatedVersion.Links.Version.HRef, + "title": updatedVersion.Edition, + "content_type": updatedVersion.Type, + } + jsonBytes, err := json.Marshal(searchContentUpdatedEvent) + if err != nil { + log.Error(ctx, "failed to marshal searchContentUpdatedEvent for kafka: %w", err, logData) + } + + api.searchContentUpdated.Producer.Output() <- kafka.BytesMessage{Value: jsonBytes, Context: ctx} + if err != nil { + log.Error(ctx, "putState endpoint: failed to send search content update", err, logData) + handleVersionAPIErr(ctx, err, w, logData) + return + } + log.Info(ctx, "putState endpoint: sent search content update to kafka", logData) + + } + setJSONContentType(w) w.WriteHeader(http.StatusOK) log.Info(ctx, "putState endpoint: request successful", logData) diff --git a/api/versions_test.go b/api/versions_test.go index 2e03d9c2..4976abc2 100644 --- a/api/versions_test.go +++ b/api/versions_test.go @@ -73,7 +73,7 @@ func TestGetVersionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) list, totalCount, err := api.getVersions(w, r, 20, 0) So(w.Code, ShouldEqual, http.StatusOK) @@ -108,7 +108,7 @@ func TestGetVersionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) list, totalCount, err := api.getVersions(w, r, 20, 0) So(w.Code, ShouldEqual, http.StatusOK) @@ -143,7 +143,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -167,7 +167,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -195,7 +195,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -227,7 +227,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -258,7 +258,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -293,7 +293,7 @@ func TestGetVersionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -339,7 +339,7 @@ func TestGetVersionReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("With an etag", func() { version.ETag = "version-etag" @@ -399,7 +399,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -420,7 +420,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -451,7 +451,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -485,7 +485,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -518,7 +518,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -539,7 +539,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -560,7 +560,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -579,7 +579,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -620,7 +620,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -694,7 +694,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { permissions := getAuthorisationHandlerMock() Convey("Given a valid request is executed", func() { - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) Convey("Then the request is successful, with the expected calls", func() { @@ -731,7 +731,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { return "", nil } - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) Convey("Then the request is successful, with the expected calls including the update retry", func() { @@ -806,7 +806,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -857,7 +857,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { UnlockInstanceFunc: func(context.Context, string) {}, } - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -984,7 +984,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) ctx := context.Background() @@ -1127,7 +1127,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1387,7 +1387,7 @@ func updateVersionDownloadTest(r *http.Request) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1462,7 +1462,7 @@ func TestPutVersionGenerateDownloadsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, mockDownloadGenerator, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, mockDownloadGenerator, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) Convey("then an internal server error response is returned", func() { @@ -1549,7 +1549,7 @@ func TestPutEmptyVersion(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) Convey("then a http status ok is returned", func() { @@ -1607,7 +1607,7 @@ func TestPutEmptyVersion(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) Convey("then a http status ok is returned", func() { @@ -1665,7 +1665,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1705,7 +1705,8 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -1748,7 +1749,8 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1782,7 +1784,8 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1816,7 +1819,8 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1865,7 +1869,8 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -1912,7 +1917,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -1963,7 +1968,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -2003,7 +2008,8 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusUnauthorized) @@ -2043,7 +2049,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusForbidden) @@ -2101,7 +2107,8 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -2230,7 +2237,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2549,7 +2556,7 @@ func TestDetachVersionReturnOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2616,7 +2623,7 @@ func TestDetachVersionReturnOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2665,7 +2672,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2700,7 +2707,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2738,7 +2745,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2779,7 +2786,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2820,7 +2827,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2869,7 +2876,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2921,7 +2928,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2961,7 +2968,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2989,7 +2996,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3017,7 +3024,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3069,7 +3076,7 @@ func TestDeleteVersionStaticDatasetReturnOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3099,7 +3106,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3141,7 +3148,8 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -3182,7 +3190,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3232,7 +3240,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3268,7 +3276,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3307,7 +3315,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3477,7 +3485,9 @@ func TestPutStateReturnsOk(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + scuProducerMock := getSearchContentUpdatedMock() + searchContentUpdated := SearchContentUpdated{Producer: scuProducerMock} + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, searchContentUpdated) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -3490,6 +3500,7 @@ func TestPutStateReturnsOk(t *testing.T) { So(mockedDataStore.UpsertVersionStaticCalls(), ShouldHaveLength, 1) So(mockedDataStore.UpsertDatasetCalls(), ShouldHaveLength, 1) So(mockedDataStore.CheckEditionExistsStaticCalls(), ShouldHaveLength, 1) + So(len(scuProducerMock.OutputCalls()), ShouldEqual, 1) }) } @@ -3503,7 +3514,7 @@ func TestPutStateReturnsError(t *testing.T) { mockedDataStore := &storetest.StorerMock{} permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) api.putState(w, r) @@ -3519,7 +3530,7 @@ func TestPutStateReturnsError(t *testing.T) { mockedDataStore := &storetest.StorerMock{} permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3535,7 +3546,7 @@ func TestPutStateReturnsError(t *testing.T) { mockedDataStore := &storetest.StorerMock{} permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3554,7 +3565,7 @@ func TestPutStateReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3573,7 +3584,7 @@ func TestPutStateReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3948,7 +3959,8 @@ func TestPutVersionEditionValidationNonStatic(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) diff --git a/api/webendpoints_test.go b/api/webendpoints_test.go index 85c5af0c..ff024a04 100644 --- a/api/webendpoints_test.go +++ b/api/webendpoints_test.go @@ -368,5 +368,5 @@ func GetWebAPIWithMocks(ctx context.Context, mockedDataStore store.Storer, mocke cfg.DatasetAPIURL = host cfg.EnablePrivateEndpoints = false - return Setup(ctx, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, mockedMapDownloadGenerators, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI) + return Setup(ctx, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, mockedMapDownloadGenerators, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI, nil) } diff --git a/config/config.go b/config/config.go index 9eeac249..044b92af 100644 --- a/config/config.go +++ b/config/config.go @@ -29,6 +29,7 @@ type Configuration struct { KafkaSecSkipVerify bool `envconfig:"KAFKA_SEC_SKIP_VERIFY"` GenerateDownloadsTopic string `envconfig:"GENERATE_DOWNLOADS_TOPIC"` CantabularExportStartTopic string `envconfig:"CANTABULAR_EXPORT_START"` + SearchContentUpdatedTopic string `envconfig:"SEARCH_CONTENT_UPDATED_TOPIC"` CodeListAPIURL string `envconfig:"CODE_LIST_API_URL"` DatasetAPIURL string `envconfig:"DATASET_API_URL"` FilesAPIURL string `envconfig:"FILES_API_URL"` @@ -87,6 +88,7 @@ func Get() (*Configuration, error) { KafkaProducerMinBrokersHealthy: 2, GenerateDownloadsTopic: "filter-job-submitted", CantabularExportStartTopic: "cantabular-export-start", + SearchContentUpdatedTopic: "search-content-updated", CodeListAPIURL: "http://localhost:22400", DatasetAPIURL: "http://localhost:22000", FilesAPIURL: "http://localhost:26900", diff --git a/config/config_test.go b/config/config_test.go index f7f02e78..d242bed4 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -31,6 +31,7 @@ func TestSpec(t *testing.T) { So(cfg.KafkaSecSkipVerify, ShouldBeFalse) So(cfg.GenerateDownloadsTopic, ShouldEqual, "filter-job-submitted") So(cfg.CantabularExportStartTopic, ShouldEqual, "cantabular-export-start") + So(cfg.SearchContentUpdatedTopic, ShouldEqual, "search-content-updated") So(cfg.DatasetAPIURL, ShouldEqual, "http://localhost:22000") So(cfg.CodeListAPIURL, ShouldEqual, "http://localhost:22400") So(cfg.DownloadServiceSecretKey, ShouldEqual, "QB0108EZ-825D-412C-9B1D-41EF7747F462") diff --git a/dimension/dimension_test.go b/dimension/dimension_test.go index d6ad9ace..73ad577e 100644 --- a/dimension/dimension_test.go +++ b/dimension/dimension_test.go @@ -1544,7 +1544,7 @@ func getAPIWithCMDMocks(ctx context.Context, mockedDataStore store.Storer, mocke datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - return api.Setup(ctx, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, downloadGenerators, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI) + return api.Setup(ctx, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, downloadGenerators, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI, nil) } func getAuthorisationHandlerMock() *mocks.AuthHandlerMock { diff --git a/features/static_versions_put.feature b/features/static_versions_put.feature index 63ccb66c..218945a7 100644 --- a/features/static_versions_put.feature +++ b/features/static_versions_put.feature @@ -1,7 +1,7 @@ Feature: Static Dataset Versions PUT API - Background: We have static datasets for PUT version testing - Given I have a static dataset with version: + Background: We have static datasets for PUT version testing + Given I have a static dataset with version: """ { "dataset": { @@ -43,19 +43,19 @@ Feature: Static Dataset Versions PUT API } """ - Scenario: PUT updates static dataset version successfully - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" + Scenario: PUT updates static dataset version successfully + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" """ { "state": "approved", "type": "static" } """ - Then the HTTP status code should be "200" - And I should receive the following JSON response: + Then the HTTP status code should be "200" + And I should receive the following JSON response: """ { "dataset_id": "static-dataset-update", @@ -89,11 +89,11 @@ Feature: Static Dataset Versions PUT API } """ - Scenario: PUT updates static dataset version with new data - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" + Scenario: PUT updates static dataset version with new data + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" """ { "release_date": "2025-03-01T09:00:00.000Z", @@ -102,13 +102,13 @@ Feature: Static Dataset Versions PUT API "type": "static" } """ - Then the HTTP status code should be "200" + Then the HTTP status code should be "200" - Scenario: PUT updates static dataset version distributions - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" + Scenario: PUT updates static dataset version distributions + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" """ { "distributions": [ @@ -130,13 +130,13 @@ Feature: Static Dataset Versions PUT API "type": "static" } """ - Then the HTTP status code should be "200" + Then the HTTP status code should be "200" - Scenario: PUT updates static dataset version edition - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" + Scenario: PUT updates static dataset version edition + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" """ { "edition": "2025-revised", @@ -144,71 +144,71 @@ Feature: Static Dataset Versions PUT API "type": "static" } """ - Then the HTTP status code should be "200" + Then the HTTP status code should be "200" - Scenario: PUT fails for non-existent version - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/999" + Scenario: PUT fails for non-existent version + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/999" """ { "state": "approved", "type": "static" } """ - Then the HTTP status code should be "404" + Then the HTTP status code should be "404" - Scenario: PUT fails for non-existent dataset - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/non-existent/editions/2025/versions/1" + Scenario: PUT fails for non-existent dataset + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/non-existent/editions/2025/versions/1" """ { "state": "approved", "type": "static" } """ - Then the HTTP status code should be "404" + Then the HTTP status code should be "404" - Scenario: PUT fails when not authorised - Given private endpoints are enabled - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" + Scenario: PUT fails when not authorised + Given private endpoints are enabled + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" """ { "state": "approved", "type": "static" } """ - Then the HTTP status code should be "401" + Then the HTTP status code should be "401" - Scenario: PUT state endpoint updates successfully - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" + Scenario: PUT state endpoint updates successfully + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" """ { "state": "approved" } """ - Then the HTTP status code should be "200" + Then the HTTP status code should be "200" - Scenario: PUT state transitions from associated to approved - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" + Scenario: PUT state transitions from associated to approved + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" """ { "state": "approved" } """ - Then the HTTP status code should be "200" + Then the HTTP status code should be "200" - Scenario: PUT state transitions from approved to published - Given I have a static dataset with version: + Scenario: PUT state transitions from approved to published + Given I have a static dataset with version: """ { "dataset": { @@ -252,53 +252,53 @@ Feature: Static Dataset Versions PUT API } } """ - And private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-publish/editions/2025/versions/1/state" + And private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-publish/editions/2025/versions/1/state" """ { "state": "published" } """ - Then the HTTP status code should be "200" - - Scenario: PUT state fails with invalid state transition from associated to published - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" + Then the HTTP status code should be "200" + + Scenario: PUT state fails with invalid state transition from associated to published + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" """ { "state": "published" } """ - Then the HTTP status code should be "400" + Then the HTTP status code should be "400" - Scenario: PUT state fails with invalid state - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" + Scenario: PUT state fails with invalid state + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" """ { "state": "invalid-state" } """ - Then the HTTP status code should be "400" + Then the HTTP status code should be "400" - Scenario: PUT state fails when not authorised - Given private endpoints are enabled - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" + Scenario: PUT state fails when not authorised + Given private endpoints are enabled + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" """ { "state": "approved" } """ - Then the HTTP status code should be "401" - -Scenario: PUT fails when updating edition-id to existing edition for static dataset - Given I have a static dataset with version: + Then the HTTP status code should be "401" + + Scenario: PUT fails when updating edition-id to existing edition for static dataset + Given I have a static dataset with version: """ { "dataset": { @@ -330,7 +330,7 @@ Scenario: PUT fails when updating edition-id to existing edition for static data } } """ - And I have a static dataset with version: + And I have a static dataset with version: """ { "dataset": { @@ -362,27 +362,27 @@ Scenario: PUT fails when updating edition-id to existing edition for static data } } """ - And private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-conflict/editions/2025/versions/1" + And private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-conflict/editions/2025/versions/1" """ { "edition": "existing-edition", "type": "static" } """ - Then the HTTP status code should be "409" - And I should receive the following response: + Then the HTTP status code should be "409" + And I should receive the following response: """ the edition-id already exists """ - Scenario: PUT succeeds when updating edition-id to new edition for static dataset - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" + Scenario: PUT succeeds when updating edition-id to new edition for static dataset + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" """ { "edition": "2025-new-edition", @@ -390,9 +390,9 @@ Scenario: PUT fails when updating edition-id to existing edition for static data "type": "static" } """ - Then the HTTP status code should be "200" + Then the HTTP status code should be "200" -Scenario: PUT state handles idempotent transitions correctly + Scenario: PUT state handles idempotent transitions correctly Given I have a static dataset with version: """ { @@ -427,6 +427,7 @@ Scenario: PUT state handles idempotent transitions correctly """ And private endpoints are enabled And I am identified as "user@ons.gov.uk" +# And I have a real kafka container with topic "search-content-updated" And I am authorised When I PUT "/datasets/static-dataset-published/editions/2025/versions/1/state" """ @@ -434,4 +435,12 @@ Scenario: PUT state handles idempotent transitions correctly "state": "published" } """ - Then the HTTP status code should be "200" \ No newline at end of file + Then the HTTP status code should be "200" +# And these kafka messages are produced: +# """ +# { +# "content_type": "static", +# "title": "Static Dataset Published Test", +# "uri": "http://localhost:22000/datasets/static-dataset-published/editions/2025/versions/1 +# } +# """ \ No newline at end of file diff --git a/features/steps/steps.go b/features/steps/steps.go index 98774b40..96fe54fa 100644 --- a/features/steps/steps.go +++ b/features/steps/steps.go @@ -55,6 +55,7 @@ func (c *DatasetComponent) RegisterSteps(ctx *godog.ScenarioContext) { ctx.Step(`^the response header "([^"]*)" should not be empty$`, c.theResponseHeaderShouldNotBeEmpty) ctx.Step(`^the dataset "([^"]*)" should have next equal to current$`, c.theDatasetShouldHaveNextEqualToCurrent) ctx.Step(`^the "([^"]*)" feature flag is "([^"]*)"$`, c.theFeatureFlagIs) + ctx.Step(`^these kafka messages are produced:$`, c.theseKafkaMessagesAreProduced) } func (c *DatasetComponent) theFeatureFlagIs(flagName, status string) error { @@ -274,6 +275,32 @@ func (c *DatasetComponent) theseCantabularGeneratorDownloadsEventsAreProduced(ev return nil } +func (c *DatasetComponent) theseKafkaMessagesAreProduced(events *godog.Table) error { + messages := []string{} + listen := true + + for listen { + select { + case <-time.After(10 * time.Second): + listen = false + case <-c.consumer.Channels().Closer: + return errors.New("closer channel closed") + case msg, ok := <-c.consumer.Channels().Upstream: + if !ok { + return errors.New("upstream channel closed") + } + messages = append(messages, string(msg.GetData())) + msg.Commit() + msg.Release() + } + } + + if diff := cmp.Diff(messages, events); diff != "" { + return fmt.Errorf("-got +expected)\n%s", diff) + } + return nil +} + func (c *DatasetComponent) iHaveTheseEditions(editionsJSON *godog.DocString) error { editions := []models.Edition{} diff --git a/instance/instance_external_test.go b/instance/instance_external_test.go index 8cc0db9e..1d7b0bb8 100644 --- a/instance/instance_external_test.go +++ b/instance/instance_external_test.go @@ -779,5 +779,5 @@ func getAPIWithCantabularMocks(ctx context.Context, mockedDataStore store.Storer cfg.DatasetAPIURL = "http://localhost:22000" cfg.EnablePrivateEndpoints = true - return api.Setup(ctx, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, mockedMapDownloadGenerators, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI) + return api.Setup(ctx, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, mockedMapDownloadGenerators, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI, nil) } diff --git a/service/initialise.go b/service/initialise.go index 2339f9e4..4b7e8129 100644 --- a/service/initialise.go +++ b/service/initialise.go @@ -17,12 +17,12 @@ import ( // ExternalServiceList holds the initialiser and initialisation state of external services. type ExternalServiceList struct { - GenerateDownloadsProducer bool - Graph bool - HealthCheck bool - MongoDB bool - FilesAPIClient bool - Init Initialiser + KafkaProducer bool + Graph bool + HealthCheck bool + MongoDB bool + FilesAPIClient bool + Init Initialiser } // NewServiceList creates a new service list with the provided initialiser @@ -57,7 +57,7 @@ func (e *ExternalServiceList) GetProducer(ctx context.Context, cfg *config.Confi if err != nil { return } - e.GenerateDownloadsProducer = true + e.KafkaProducer = true return } diff --git a/service/service.go b/service/service.go index 348015b5..73f16988 100644 --- a/service/service.go +++ b/service/service.go @@ -49,6 +49,7 @@ type Service struct { mongoDB store.MongoDB generateCMDDownloadsProducer kafka.IProducer generateCantabularDownloadsProducer kafka.IProducer + searchContentUpdatedProducer kafka.IProducer identityClient *clientsidentity.Client filesAPIClient filesAPISDK.Clienter server HTTPServer @@ -250,6 +251,11 @@ func (svc *Service) Run(ctx context.Context, buildTime, gitCommit, version strin log.Fatal(ctx, "could not obtain generate downloads producer for cantabular", err) return err } + svc.searchContentUpdatedProducer, err = svc.serviceList.GetProducer(ctx, svc.config, svc.config.SearchContentUpdatedTopic) + if err != nil { + log.Fatal(ctx, "could not obtain search content updated producer", err) + return err + } } downloadGeneratorCantabular := &download.CantabularGenerator{ @@ -262,6 +268,10 @@ func (svc *Service) Run(ctx context.Context, buildTime, gitCommit, version strin Marshaller: schema.GenerateCMDDownloadsEvent, } + searchContentUpdated := &api.SearchContentUpdated{ + Producer: adapter.NewProducerAdapter(svc.searchContentUpdatedProducer), + } + downloadGenerators := map[models.DatasetType]api.DownloadsGenerator{ models.CantabularBlob: downloadGeneratorCantabular, models.CantabularTable: downloadGeneratorCantabular, @@ -319,7 +329,7 @@ func (svc *Service) Run(ctx context.Context, buildTime, gitCommit, version strin datasetPermissions, permissions := getAuthorisationHandlers(ctx, svc.config) sm := GetStateMachine(ctx, ds) svc.smDS = application.Setup(ds, smDownloadGenerators, sm) - svc.api = api.Setup(ctx, svc.config, r, ds, urlBuilder, downloadGenerators, datasetPermissions, permissions, enableURLRewriting, svc.smDS) + svc.api = api.Setup(ctx, svc.config, r, ds, urlBuilder, downloadGenerators, datasetPermissions, permissions, enableURLRewriting, svc.smDS, searchContentUpdated) // Set the files API client on the DatasetAPI after initialisation if svc.config.EnablePrivateEndpoints && svc.filesAPIClient != nil { @@ -333,6 +343,7 @@ func (svc *Service) Run(ctx context.Context, buildTime, gitCommit, version strin if svc.config.EnablePrivateEndpoints { svc.generateCMDDownloadsProducer.LogErrors(ctx) svc.generateCantabularDownloadsProducer.LogErrors(ctx) + svc.searchContentUpdatedProducer.LogErrors(ctx) } // Run the http server in a new go-routine @@ -502,8 +513,8 @@ func (svc *Service) Close(ctx context.Context) error { } } - // Close GenerateDownloadsProducer (if it exists) - if svc.serviceList.GenerateDownloadsProducer { + // Close KafkaProducer (if it exists) + if svc.serviceList.KafkaProducer { log.Info(shutdownContext, "closing generated downloads kafka producer", log.Data{"producer": "DimensionExtracted"}) if err := svc.generateCMDDownloadsProducer.Close(shutdownContext); err != nil { log.Warn(shutdownContext, "error while closing generated downloads kafka producer", log.Data{"producer": "DimensionExtracted", "err": err.Error()}) @@ -567,6 +578,11 @@ func (svc *Service) registerCheckers(ctx context.Context) (err error) { log.Error(ctx, "error adding check for cantabular kafka downloads producer", err) } + if err = svc.healthCheck.AddCheck("Kafka Search Content Updated Producer", svc.searchContentUpdatedProducer.Checker); err != nil { + hasErrors = true + log.Error(ctx, "error adding check for search content updated kafka producer", err) + } + if err = svc.healthCheck.AddCheck("Files API Client", svc.filesAPIClient.Checker); err != nil { hasErrors = true log.Error(ctx, "error adding check for files api client", err) diff --git a/service/service_test.go b/service/service_test.go index 9a7aca6c..27065a53 100644 --- a/service/service_test.go +++ b/service/service_test.go @@ -135,7 +135,7 @@ func TestRun(t *testing.T) { So(svcList.MongoDB, ShouldBeFalse) So(svcList.Graph, ShouldBeFalse) So(svcList.FilesAPIClient, ShouldBeFalse) - So(svcList.GenerateDownloadsProducer, ShouldBeFalse) + So(svcList.KafkaProducer, ShouldBeFalse) So(svcList.HealthCheck, ShouldBeFalse) }) }) @@ -155,7 +155,7 @@ func TestRun(t *testing.T) { So(svcList.MongoDB, ShouldBeTrue) So(svcList.Graph, ShouldBeFalse) So(svcList.FilesAPIClient, ShouldBeFalse) - So(svcList.GenerateDownloadsProducer, ShouldBeFalse) + So(svcList.KafkaProducer, ShouldBeFalse) So(svcList.HealthCheck, ShouldBeFalse) }) }) @@ -176,7 +176,7 @@ func TestRun(t *testing.T) { So(svcList.MongoDB, ShouldBeTrue) So(svcList.Graph, ShouldBeTrue) So(svcList.FilesAPIClient, ShouldBeFalse) - So(svcList.GenerateDownloadsProducer, ShouldBeFalse) + So(svcList.KafkaProducer, ShouldBeFalse) So(svcList.HealthCheck, ShouldBeFalse) }) }) @@ -198,7 +198,7 @@ func TestRun(t *testing.T) { So(svcList.MongoDB, ShouldBeTrue) So(svcList.Graph, ShouldBeTrue) So(svcList.FilesAPIClient, ShouldBeTrue) - So(svcList.GenerateDownloadsProducer, ShouldBeFalse) + So(svcList.KafkaProducer, ShouldBeFalse) So(svcList.HealthCheck, ShouldBeFalse) }) }) @@ -221,7 +221,7 @@ func TestRun(t *testing.T) { So(svcList.MongoDB, ShouldBeTrue) So(svcList.Graph, ShouldBeTrue) So(svcList.FilesAPIClient, ShouldBeTrue) - So(svcList.GenerateDownloadsProducer, ShouldBeTrue) + So(svcList.KafkaProducer, ShouldBeTrue) So(svcList.HealthCheck, ShouldBeFalse) }) }) @@ -252,16 +252,17 @@ func TestRun(t *testing.T) { So(err.Error(), ShouldResemble, fmt.Sprintf("unable to register checkers: %s", errAddheckFail.Error())) So(svcList.MongoDB, ShouldBeTrue) So(svcList.Graph, ShouldBeTrue) - So(svcList.GenerateDownloadsProducer, ShouldBeTrue) + So(svcList.KafkaProducer, ShouldBeTrue) So(svcList.FilesAPIClient, ShouldBeTrue) So(svcList.HealthCheck, ShouldBeTrue) - So(len(hcMockAddFail.AddCheckCalls()), ShouldEqual, 6) + So(len(hcMockAddFail.AddCheckCalls()), ShouldEqual, 7) So(hcMockAddFail.AddCheckCalls()[0].Name, ShouldResemble, "Zebedee") So(hcMockAddFail.AddCheckCalls()[1].Name, ShouldResemble, "Kafka Generate Downloads Producer") So(hcMockAddFail.AddCheckCalls()[2].Name, ShouldResemble, "Kafka Generate Cantabular Downloads Producer") - So(hcMockAddFail.AddCheckCalls()[3].Name, ShouldResemble, "Files API Client") - So(hcMockAddFail.AddCheckCalls()[4].Name, ShouldResemble, "Graph DB") - So(hcMockAddFail.AddCheckCalls()[5].Name, ShouldResemble, "Mongo DB") + So(hcMockAddFail.AddCheckCalls()[3].Name, ShouldResemble, "Kafka Search Content Updated Producer") + So(hcMockAddFail.AddCheckCalls()[4].Name, ShouldResemble, "Files API Client") + So(hcMockAddFail.AddCheckCalls()[5].Name, ShouldResemble, "Graph DB") + So(hcMockAddFail.AddCheckCalls()[6].Name, ShouldResemble, "Mongo DB") }) }) @@ -285,18 +286,19 @@ func TestRun(t *testing.T) { So(svcList.MongoDB, ShouldBeTrue) So(svcList.Graph, ShouldBeTrue) So(svcList.FilesAPIClient, ShouldBeTrue) - So(svcList.GenerateDownloadsProducer, ShouldBeTrue) + So(svcList.KafkaProducer, ShouldBeTrue) So(svcList.HealthCheck, ShouldBeTrue) }) Convey("The checkers are registered and the healthcheck and http server started", func() { - So(len(hcMock.AddCheckCalls()), ShouldEqual, 6) + So(len(hcMock.AddCheckCalls()), ShouldEqual, 7) So(hcMock.AddCheckCalls()[0].Name, ShouldResemble, "Zebedee") So(hcMock.AddCheckCalls()[1].Name, ShouldResemble, "Kafka Generate Downloads Producer") So(hcMock.AddCheckCalls()[2].Name, ShouldResemble, "Kafka Generate Cantabular Downloads Producer") - So(hcMock.AddCheckCalls()[3].Name, ShouldResemble, "Files API Client") - So(hcMock.AddCheckCalls()[4].Name, ShouldResemble, "Graph DB") - So(hcMock.AddCheckCalls()[5].Name, ShouldResemble, "Mongo DB") + So(hcMock.AddCheckCalls()[3].Name, ShouldResemble, "Kafka Search Content Updated Producer") + So(hcMock.AddCheckCalls()[4].Name, ShouldResemble, "Files API Client") + So(hcMock.AddCheckCalls()[5].Name, ShouldResemble, "Graph DB") + So(hcMock.AddCheckCalls()[6].Name, ShouldResemble, "Mongo DB") So(len(initMock.DoGetHTTPServerCalls()), ShouldEqual, 1) So(initMock.DoGetHTTPServerCalls()[0].BindAddr, ShouldEqual, ":22000") So(len(hcMock.StartCalls()), ShouldEqual, 1) @@ -324,7 +326,7 @@ func TestRun(t *testing.T) { So(svcList.MongoDB, ShouldBeTrue) So(svcList.Graph, ShouldBeFalse) So(svcList.FilesAPIClient, ShouldBeFalse) - So(svcList.GenerateDownloadsProducer, ShouldBeFalse) + So(svcList.KafkaProducer, ShouldBeFalse) So(svcList.HealthCheck, ShouldBeTrue) }) @@ -439,12 +441,12 @@ func TestClose(t *testing.T) { }) fullSvcList := &service.ExternalServiceList{ - GenerateDownloadsProducer: true, - Graph: true, - HealthCheck: true, - MongoDB: true, - FilesAPIClient: true, - Init: nil, + KafkaProducer: true, + Graph: true, + HealthCheck: true, + MongoDB: true, + FilesAPIClient: true, + Init: nil, } Convey("Closing the service results in all the initialised dependencies being closed in the expected order", func() { From 89d6278d4f3c7979adc7da8a281f978b1882f53e Mon Sep 17 00:00:00 2001 From: Hugh Brace Date: Mon, 8 Dec 2025 14:07:15 +0000 Subject: [PATCH 02/12] Get tests working --- api/api.go | 4 +- api/dataset_test.go | 157 ++++++++++++--------------- api/dimensions_test.go | 4 +- api/editions_test.go | 30 ++--- api/metadata_test.go | 32 +++--- api/static_versions_test.go | 60 +++++----- api/versions.go | 36 +++--- api/versions_test.go | 132 +++++++++++----------- features/static_versions_put.feature | 19 ++-- features/steps/steps.go | 14 ++- service/service.go | 14 +-- 11 files changed, 247 insertions(+), 255 deletions(-) diff --git a/api/api.go b/api/api.go index 524f7ff6..c6305a63 100644 --- a/api/api.go +++ b/api/api.go @@ -77,11 +77,11 @@ type DatasetAPI struct { smDatasetAPI *application.StateMachineDatasetAPI filesAPIClient filesAPISDK.Clienter authToken string - searchContentUpdated *SearchContentUpdated + searchContentUpdated *SearchContentUpdatedProducer } // Setup creates a new Dataset API instance and register the API routes based on the application configuration. -func Setup(ctx context.Context, cfg *config.Configuration, router *mux.Router, dataStore store.DataStore, urlBuilder *url.Builder, downloadGenerators map[models.DatasetType]DownloadsGenerator, datasetPermissions, permissions AuthHandler, enableURLRewriting bool, smDatasetAPI *application.StateMachineDatasetAPI, searchContentUpdated *SearchContentUpdated) *DatasetAPI { +func Setup(ctx context.Context, cfg *config.Configuration, router *mux.Router, dataStore store.DataStore, urlBuilder *url.Builder, downloadGenerators map[models.DatasetType]DownloadsGenerator, datasetPermissions, permissions AuthHandler, enableURLRewriting bool, smDatasetAPI *application.StateMachineDatasetAPI, searchContentUpdated *SearchContentUpdatedProducer) *DatasetAPI { api := &DatasetAPI{ dataStore: dataStore, host: cfg.DatasetAPIURL, diff --git a/api/dataset_test.go b/api/dataset_test.go index 64d97b32..3ef99e7d 100644 --- a/api/dataset_test.go +++ b/api/dataset_test.go @@ -61,17 +61,6 @@ func getAuthorisationHandlerMock() *mocks.AuthHandlerMock { } } -//func getSearchContentUpdatedProducerMock() *SearchContentUpdated { -// producerMock := &mocks.KafkaProducerMock{ -// OutputFunc: func() chan kafka.BytesMessage { -// return make(chan kafka.BytesMessage, 1) -// }, -// } -// return &SearchContentUpdated{ -// Producer: producerMock, -// } -//} - func getSearchContentUpdatedMock() *mocks.KafkaProducerMock { producerMock := &mocks.KafkaProducerMock{ OutputFunc: func() chan kafka.BytesMessage { @@ -83,7 +72,7 @@ func getSearchContentUpdatedMock() *mocks.KafkaProducerMock { } // GetAPIWithCMDMocks also used in other tests, so exported -func GetAPIWithCMDMocks(mockedDataStore store.Storer, mockedGeneratedDownloads DownloadsGenerator, datasetPermissions, permissions AuthHandler, searchContentUpdated SearchContentUpdated) *DatasetAPI { +func GetAPIWithCMDMocks(mockedDataStore store.Storer, mockedGeneratedDownloads DownloadsGenerator, datasetPermissions, permissions AuthHandler, searchContentUpdated SearchContentUpdatedProducer) *DatasetAPI { mu.Lock() defer mu.Unlock() cfg, err := config.Get() @@ -105,17 +94,7 @@ func GetAPIWithCMDMocks(mockedDataStore store.Storer, mockedGeneratedDownloads D models.CantabularTable: mockedGeneratedDownloads, models.CantabularFlexibleTable: mockedGeneratedDownloads, } - - //producerMock := &mocks.KafkaProducerMock{ - // OutputFunc: func() chan kafka.BytesMessage { - // return nil - // }, - //} - // - //searchContentUpdated := SearchContentUpdated{ - // Producer: producerMock, - //} - + states := []application.State{application.Published, application.EditionConfirmed, application.Associated} transitions := []application.Transition{{ Label: "published", @@ -277,7 +256,7 @@ func TestGetDatasetsReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 11, 12) @@ -302,7 +281,7 @@ func TestGetDatasetsReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 11, 12) @@ -327,7 +306,7 @@ func TestGetDatasetsReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 11, 12) So(actualResponse, ShouldResemble, []*models.Dataset{{ID: "123-456", Type: "static", IsBasedOn: &models.IsBasedOn{ID: "Example"}}}) @@ -357,7 +336,7 @@ func TestGetDatasetsReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 10, 0) @@ -390,7 +369,7 @@ func TestGetDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 6, 7) assertInternalServerErr(w) @@ -418,7 +397,7 @@ func TestGetDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 6, 7) So(len(mockedDataStore.GetDatasetsCalls()), ShouldEqual, 0) @@ -442,7 +421,7 @@ func TestGetDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 6, 7) So(len(mockedDataStore.GetDatasetsCalls()), ShouldEqual, 0) @@ -470,7 +449,7 @@ func TestGetDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 6, 7) So(len(mockedDataStore.GetDatasetsByQueryParamsCalls()), ShouldEqual, 1) @@ -497,7 +476,7 @@ func TestGetDatasetReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -518,7 +497,7 @@ func TestGetDatasetReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -541,7 +520,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -561,7 +540,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -583,7 +562,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -608,7 +587,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -637,7 +616,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -666,7 +645,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -695,7 +674,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -724,7 +703,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -753,7 +732,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -782,7 +761,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -811,7 +790,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -843,7 +822,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -875,7 +854,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -907,7 +886,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -939,7 +918,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -971,7 +950,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -1005,7 +984,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -1038,7 +1017,7 @@ func TestPostDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusConflict) @@ -1070,7 +1049,7 @@ func TestPostDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -1105,7 +1084,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1137,7 +1116,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -1166,7 +1145,7 @@ func TestPostDatasetReturnsError(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusUnauthorized) @@ -1202,7 +1181,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusConflict) @@ -1235,7 +1214,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Body.String(), ShouldResemble, "invalid fields: [QMI]\n") @@ -1266,7 +1245,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Body.String(), ShouldResemble, "invalid fields: [QMI]\n") @@ -1297,7 +1276,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Body.String(), ShouldResemble, "invalid fields: [QMI]\n") @@ -1328,7 +1307,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1362,7 +1341,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -1398,7 +1377,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1445,7 +1424,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1493,7 +1472,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1525,7 +1504,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1557,7 +1536,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1589,7 +1568,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1621,7 +1600,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1653,7 +1632,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1687,7 +1666,7 @@ func TestPutDatasetReturnsError(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1720,7 +1699,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -1753,7 +1732,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -1789,7 +1768,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1822,7 +1801,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1855,7 +1834,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1886,7 +1865,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusUnauthorized) @@ -1920,7 +1899,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusConflict) @@ -1953,7 +1932,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -1990,7 +1969,7 @@ func TestDeleteDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNoContent) @@ -2024,7 +2003,7 @@ func TestDeleteDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNoContent) @@ -2097,7 +2076,7 @@ func TestDeleteDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.filesAPIClient = &mockFilesAPIClient api.Router.ServeHTTP(w, r) @@ -2137,7 +2116,7 @@ func TestDeleteDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2169,7 +2148,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusForbidden) @@ -2200,7 +2179,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -2230,7 +2209,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNoContent) @@ -2261,7 +2240,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -2281,7 +2260,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { mockedDataStore := &storetest.StorerMock{} datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusUnauthorized) @@ -2336,7 +2315,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -2388,7 +2367,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.filesAPIClient = &mockFilesAPIClient api.Router.ServeHTTP(w, r) diff --git a/api/dimensions_test.go b/api/dimensions_test.go index 1c07dbcd..5ae9ac84 100644 --- a/api/dimensions_test.go +++ b/api/dimensions_test.go @@ -19,7 +19,7 @@ import ( func initAPIWithMockedStore(mockedStore *storetest.StorerMock) *DatasetAPI { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - return GetAPIWithCMDMocks(mockedStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + return GetAPIWithCMDMocks(mockedStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) } func TestGetDimensionsReturnsOk(t *testing.T) { @@ -39,7 +39,7 @@ func TestGetDimensionsReturnsOk(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) diff --git a/api/editions_test.go b/api/editions_test.go index 9029640e..b07f3de2 100644 --- a/api/editions_test.go +++ b/api/editions_test.go @@ -63,7 +63,7 @@ func TestGetEditionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) list, totalCount, err := api.getEditions(w, r, 20, 0) So(w.Code, ShouldEqual, http.StatusOK) @@ -255,7 +255,7 @@ func TestGetEditionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) _, totalCount, _ := api.getEditions(w, r, 20, 0) editions, err := utils.MapVersionsToEditionUpdate(publishedLatestVersion, nil) @@ -475,7 +475,7 @@ func TestGetEditionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) _, totalCount, _ := api.getEditions(w, r, 20, 0) editions, err := utils.MapVersionsToEditionUpdate(publishedLatestVersion, unpublishedLatestVersion) @@ -505,7 +505,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -531,7 +531,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -560,7 +560,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -588,7 +588,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -616,7 +616,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -644,7 +644,7 @@ func TestGetEditionReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -669,7 +669,7 @@ func TestGetEditionReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -694,7 +694,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -718,7 +718,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -745,7 +745,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -771,7 +771,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -797,7 +797,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) diff --git a/api/metadata_test.go b/api/metadata_test.go index 8a5dfcf6..926f81c8 100644 --- a/api/metadata_test.go +++ b/api/metadata_test.go @@ -60,7 +60,7 @@ func TestPutMetadata(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) edition := version.Edition versionNo := strconv.Itoa(version.Version) @@ -300,7 +300,7 @@ func TestGetMetadataReturnsOk(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -360,7 +360,7 @@ func TestGetMetadataReturnsOk(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -422,7 +422,7 @@ func TestGetMetadataReturnsOk(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -480,7 +480,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -508,7 +508,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -542,7 +542,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -576,7 +576,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -610,7 +610,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -639,7 +639,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -674,7 +674,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -695,7 +695,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -718,7 +718,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -741,7 +741,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -779,7 +779,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -820,7 +820,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) diff --git a/api/static_versions_test.go b/api/static_versions_test.go index 0cf8383d..e78edfcb 100644 --- a/api/static_versions_test.go +++ b/api/static_versions_test.go @@ -70,7 +70,7 @@ func TestGetDatasetEditions_WithQueryParam_Success(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -149,7 +149,7 @@ func TestGetDatasetEditions_WithPublishedParam(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -190,7 +190,7 @@ func TestGetDatasetEditions_WithPublishedParam(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -212,7 +212,7 @@ func TestGetDatasetEditions_WithPublishedParam(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -296,7 +296,7 @@ func TestGetDatasetEditions_WithoutQueryParam_Success(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -366,7 +366,7 @@ func TestGetDatasetEditions_InvalidQueryParam_Failure(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -395,7 +395,7 @@ func TestGetDatasetEditions_GetStaticVersionsByState_Failure(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called and no versions are found", func() { r := createRequestWithAuth("GET", "http://localhost:22000/dataset-editions?state=associated", http.NoBody) @@ -444,7 +444,7 @@ func TestGetDatasetEditions_GetDataset_Failure(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called and the dataset is not found", func() { r := createRequestWithAuth("GET", "http://localhost:22000/dataset-editions", http.NoBody) @@ -477,7 +477,7 @@ func TestGetDatasetEditions_GetDataset_Failure(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called and the datastore fails", func() { r := createRequestWithAuth("GET", "http://localhost:22000/dataset-editions", http.NoBody) @@ -549,7 +549,7 @@ func TestAddDatasetVersionCondensed_Success(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(successResponse.Status, ShouldEqual, http.StatusCreated) @@ -619,7 +619,7 @@ func TestAddDatasetVersionCondensed_Success(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, getAuthorisationHandlerMock(), getAuthorisationHandlerMock(), SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, getAuthorisationHandlerMock(), getAuthorisationHandlerMock(), SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(successResponse.Status, ShouldEqual, http.StatusCreated) @@ -656,7 +656,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) castErr := errorResponse.Errors[0] @@ -698,7 +698,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(successResponse.Status, ShouldEqual, http.StatusCreated) @@ -727,7 +727,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(errorResponse.Status, ShouldEqual, http.StatusInternalServerError) @@ -810,7 +810,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(errorResponse.Status, ShouldEqual, http.StatusNotFound) @@ -907,7 +907,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) @@ -951,7 +951,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(errorResponse.Status, ShouldEqual, http.StatusBadRequest) @@ -1012,7 +1012,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(errorResponse.Status, ShouldEqual, http.StatusBadRequest) @@ -1159,7 +1159,7 @@ func TestCreateVersion_Success(t *testing.T) { returnedVersionJSON, err := json.Marshal(expectedVersion) So(err, ShouldBeNil) - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1236,7 +1236,7 @@ func TestCreateVersion_Failure(t *testing.T) { permissions := getAuthorisationHandlerMock() Convey("When the JSON body provided is invalid", t, func() { - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/invalid", http.NoBody) vars := map[string]string{ "dataset_id": "123", @@ -1262,7 +1262,7 @@ func TestCreateVersion_Failure(t *testing.T) { validVersionJSON, err := json.Marshal(validVersion) So(err, ShouldBeNil) - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/invalid", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1291,7 +1291,7 @@ func TestCreateVersion_Failure(t *testing.T) { invalidTypeVersionJSON, err := json.Marshal(invalidTypeVersion) So(err, ShouldBeNil) - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(invalidTypeVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1321,7 +1321,7 @@ func TestCreateVersion_Failure(t *testing.T) { invalidVersionJSON, err := json.Marshal(invalidVersion) So(err, ShouldBeNil) - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/100", bytes.NewBuffer(invalidVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1359,7 +1359,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1391,7 +1391,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1426,7 +1426,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1461,7 +1461,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1499,7 +1499,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1537,7 +1537,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1578,7 +1578,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", diff --git a/api/versions.go b/api/versions.go index ce1d6855..07df0e84 100644 --- a/api/versions.go +++ b/api/versions.go @@ -48,7 +48,7 @@ var ( } ) -type SearchContentUpdated struct { +type SearchContentUpdatedProducer struct { Producer KafkaProducer } @@ -797,24 +797,26 @@ func (api *DatasetAPI) putState(w http.ResponseWriter, r *http.Request) { } if updatedVersion.State == models.PublishedState { - searchContentUpdatedEvent := map[string]interface{}{ - "uri": updatedVersion.Links.Version.HRef, - "title": updatedVersion.Edition, - "content_type": updatedVersion.Type, - } - jsonBytes, err := json.Marshal(searchContentUpdatedEvent) - if err != nil { - log.Error(ctx, "failed to marshal searchContentUpdatedEvent for kafka: %w", err, logData) - } + if api.searchContentUpdated != nil && api.searchContentUpdated.Producer != nil { + searchContentUpdatedEvent := map[string]interface{}{ + "dataset_id": updatedVersion.DatasetID, + "uri": updatedVersion.Links.Version.HRef, + "title": updatedVersion.Edition, + "content_type": updatedVersion.Type, + } - api.searchContentUpdated.Producer.Output() <- kafka.BytesMessage{Value: jsonBytes, Context: ctx} - if err != nil { - log.Error(ctx, "putState endpoint: failed to send search content update", err, logData) - handleVersionAPIErr(ctx, err, w, logData) - return + jsonBytes, err := json.Marshal(searchContentUpdatedEvent) + if err != nil { + log.Error(ctx, "failed to marshal searchContentUpdatedEvent for kafka", err, logData) + } else { + go func() { + api.searchContentUpdated.Producer.Output() <- kafka.BytesMessage{Value: jsonBytes, Context: ctx} + log.Info(ctx, "putState endpoint: sent search content update to kafka", logData) + }() + } + } else { + log.Info(ctx, "putState endpoint: search content producer not initialized, skipping kafka event", logData) } - log.Info(ctx, "putState endpoint: sent search content update to kafka", logData) - } setJSONContentType(w) diff --git a/api/versions_test.go b/api/versions_test.go index 4976abc2..1dba20a2 100644 --- a/api/versions_test.go +++ b/api/versions_test.go @@ -73,7 +73,7 @@ func TestGetVersionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) list, totalCount, err := api.getVersions(w, r, 20, 0) So(w.Code, ShouldEqual, http.StatusOK) @@ -108,7 +108,7 @@ func TestGetVersionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) list, totalCount, err := api.getVersions(w, r, 20, 0) So(w.Code, ShouldEqual, http.StatusOK) @@ -143,7 +143,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -167,7 +167,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -195,7 +195,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -227,7 +227,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -258,7 +258,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -293,7 +293,7 @@ func TestGetVersionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -339,7 +339,7 @@ func TestGetVersionReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("With an etag", func() { version.ETag = "version-etag" @@ -399,7 +399,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -420,7 +420,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -451,7 +451,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -485,7 +485,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -518,7 +518,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -539,7 +539,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -560,7 +560,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -579,7 +579,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -620,7 +620,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -694,7 +694,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { permissions := getAuthorisationHandlerMock() Convey("Given a valid request is executed", func() { - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) Convey("Then the request is successful, with the expected calls", func() { @@ -731,7 +731,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { return "", nil } - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) Convey("Then the request is successful, with the expected calls including the update retry", func() { @@ -806,7 +806,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -857,7 +857,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { UnlockInstanceFunc: func(context.Context, string) {}, } - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -984,7 +984,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) ctx := context.Background() @@ -1127,7 +1127,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1387,7 +1387,7 @@ func updateVersionDownloadTest(r *http.Request) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1462,7 +1462,7 @@ func TestPutVersionGenerateDownloadsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, mockDownloadGenerator, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, mockDownloadGenerator, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) Convey("then an internal server error response is returned", func() { @@ -1549,7 +1549,7 @@ func TestPutEmptyVersion(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) Convey("then a http status ok is returned", func() { @@ -1607,7 +1607,7 @@ func TestPutEmptyVersion(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) Convey("then a http status ok is returned", func() { @@ -1665,7 +1665,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1705,7 +1705,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -1749,7 +1749,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -1784,7 +1784,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -1819,7 +1819,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -1869,7 +1869,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -1917,7 +1917,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -1968,7 +1968,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -2008,7 +2008,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2049,7 +2049,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusForbidden) @@ -2107,7 +2107,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2237,7 +2237,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2556,7 +2556,7 @@ func TestDetachVersionReturnOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2623,7 +2623,7 @@ func TestDetachVersionReturnOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2672,7 +2672,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2707,7 +2707,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2745,7 +2745,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2786,7 +2786,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2827,7 +2827,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2876,7 +2876,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2928,7 +2928,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2968,7 +2968,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2996,7 +2996,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3024,7 +3024,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3076,7 +3076,7 @@ func TestDeleteVersionStaticDatasetReturnOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3106,7 +3106,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3148,7 +3148,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3190,7 +3190,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3240,7 +3240,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3276,7 +3276,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3315,7 +3315,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3486,7 +3486,7 @@ func TestPutStateReturnsOk(t *testing.T) { permissions := getAuthorisationHandlerMock() scuProducerMock := getSearchContentUpdatedMock() - searchContentUpdated := SearchContentUpdated{Producer: scuProducerMock} + searchContentUpdated := SearchContentUpdatedProducer{Producer: scuProducerMock} api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, searchContentUpdated) api.Router.ServeHTTP(w, r) @@ -3514,7 +3514,7 @@ func TestPutStateReturnsError(t *testing.T) { mockedDataStore := &storetest.StorerMock{} permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) api.putState(w, r) @@ -3530,7 +3530,7 @@ func TestPutStateReturnsError(t *testing.T) { mockedDataStore := &storetest.StorerMock{} permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3546,7 +3546,7 @@ func TestPutStateReturnsError(t *testing.T) { mockedDataStore := &storetest.StorerMock{} permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3565,7 +3565,7 @@ func TestPutStateReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3584,7 +3584,7 @@ func TestPutStateReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3959,7 +3959,7 @@ func TestPutVersionEditionValidationNonStatic(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) diff --git a/features/static_versions_put.feature b/features/static_versions_put.feature index 218945a7..289875db 100644 --- a/features/static_versions_put.feature +++ b/features/static_versions_put.feature @@ -427,7 +427,7 @@ Feature: Static Dataset Versions PUT API """ And private endpoints are enabled And I am identified as "user@ons.gov.uk" -# And I have a real kafka container with topic "search-content-updated" + And I have a real kafka container with topic "search-content-updated" And I am authorised When I PUT "/datasets/static-dataset-published/editions/2025/versions/1/state" """ @@ -436,11 +436,12 @@ Feature: Static Dataset Versions PUT API } """ Then the HTTP status code should be "200" -# And these kafka messages are produced: -# """ -# { -# "content_type": "static", -# "title": "Static Dataset Published Test", -# "uri": "http://localhost:22000/datasets/static-dataset-published/editions/2025/versions/1 -# } -# """ \ No newline at end of file + And these kafka messages are produced: + """ + { + "content_type": "static", + "dataset_id": "", + "title": "2025", + "uri": "/datasets/static-dataset-published/editions/2025/versions/1" + } + """ \ No newline at end of file diff --git a/features/steps/steps.go b/features/steps/steps.go index 96fe54fa..54599591 100644 --- a/features/steps/steps.go +++ b/features/steps/steps.go @@ -275,7 +275,17 @@ func (c *DatasetComponent) theseCantabularGeneratorDownloadsEventsAreProduced(ev return nil } -func (c *DatasetComponent) theseKafkaMessagesAreProduced(events *godog.Table) error { +func (c *DatasetComponent) theseKafkaMessagesAreProduced(kafkaJSON *godog.DocString) error { + var expectedPayload interface{} + if err := json.Unmarshal([]byte(kafkaJSON.Content), &expectedPayload); err != nil { + return fmt.Errorf("failed to unmarshal kafkaJSON: %w", err) + } + expectedJSON, err := json.Marshal(expectedPayload) + if err != nil { + return fmt.Errorf("failed to marshal expected payload: %w", err) + } + expected := []string{string(expectedJSON)} + messages := []string{} listen := true @@ -295,7 +305,7 @@ func (c *DatasetComponent) theseKafkaMessagesAreProduced(events *godog.Table) er } } - if diff := cmp.Diff(messages, events); diff != "" { + if diff := cmp.Diff(messages, expected); diff != "" { return fmt.Errorf("-got +expected)\n%s", diff) } return nil diff --git a/service/service.go b/service/service.go index 73f16988..4295c916 100644 --- a/service/service.go +++ b/service/service.go @@ -49,7 +49,7 @@ type Service struct { mongoDB store.MongoDB generateCMDDownloadsProducer kafka.IProducer generateCantabularDownloadsProducer kafka.IProducer - searchContentUpdatedProducer kafka.IProducer + searchContentUpdatedKafkaProducer kafka.IProducer identityClient *clientsidentity.Client filesAPIClient filesAPISDK.Clienter server HTTPServer @@ -251,7 +251,7 @@ func (svc *Service) Run(ctx context.Context, buildTime, gitCommit, version strin log.Fatal(ctx, "could not obtain generate downloads producer for cantabular", err) return err } - svc.searchContentUpdatedProducer, err = svc.serviceList.GetProducer(ctx, svc.config, svc.config.SearchContentUpdatedTopic) + svc.searchContentUpdatedKafkaProducer, err = svc.serviceList.GetProducer(ctx, svc.config, svc.config.SearchContentUpdatedTopic) if err != nil { log.Fatal(ctx, "could not obtain search content updated producer", err) return err @@ -268,8 +268,8 @@ func (svc *Service) Run(ctx context.Context, buildTime, gitCommit, version strin Marshaller: schema.GenerateCMDDownloadsEvent, } - searchContentUpdated := &api.SearchContentUpdated{ - Producer: adapter.NewProducerAdapter(svc.searchContentUpdatedProducer), + searchContentUpdatedProducer := &api.SearchContentUpdatedProducer{ + Producer: adapter.NewProducerAdapter(svc.searchContentUpdatedKafkaProducer), } downloadGenerators := map[models.DatasetType]api.DownloadsGenerator{ @@ -329,7 +329,7 @@ func (svc *Service) Run(ctx context.Context, buildTime, gitCommit, version strin datasetPermissions, permissions := getAuthorisationHandlers(ctx, svc.config) sm := GetStateMachine(ctx, ds) svc.smDS = application.Setup(ds, smDownloadGenerators, sm) - svc.api = api.Setup(ctx, svc.config, r, ds, urlBuilder, downloadGenerators, datasetPermissions, permissions, enableURLRewriting, svc.smDS, searchContentUpdated) + svc.api = api.Setup(ctx, svc.config, r, ds, urlBuilder, downloadGenerators, datasetPermissions, permissions, enableURLRewriting, svc.smDS, searchContentUpdatedProducer) // Set the files API client on the DatasetAPI after initialisation if svc.config.EnablePrivateEndpoints && svc.filesAPIClient != nil { @@ -343,7 +343,7 @@ func (svc *Service) Run(ctx context.Context, buildTime, gitCommit, version strin if svc.config.EnablePrivateEndpoints { svc.generateCMDDownloadsProducer.LogErrors(ctx) svc.generateCantabularDownloadsProducer.LogErrors(ctx) - svc.searchContentUpdatedProducer.LogErrors(ctx) + svc.searchContentUpdatedKafkaProducer.LogErrors(ctx) } // Run the http server in a new go-routine @@ -578,7 +578,7 @@ func (svc *Service) registerCheckers(ctx context.Context) (err error) { log.Error(ctx, "error adding check for cantabular kafka downloads producer", err) } - if err = svc.healthCheck.AddCheck("Kafka Search Content Updated Producer", svc.searchContentUpdatedProducer.Checker); err != nil { + if err = svc.healthCheck.AddCheck("Kafka Search Content Updated Producer", svc.searchContentUpdatedKafkaProducer.Checker); err != nil { hasErrors = true log.Error(ctx, "error adding check for search content updated kafka producer", err) } From 8fbec2a9027b84a23888092d2c16b2bc2f56c808 Mon Sep 17 00:00:00 2001 From: Hugh Brace Date: Mon, 8 Dec 2025 14:14:00 +0000 Subject: [PATCH 03/12] Rename producer --- api/api.go | 82 ++++++++++++++++++++++++------------------------- api/versions.go | 4 +-- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/api/api.go b/api/api.go index c6305a63..6a0c6cbd 100644 --- a/api/api.go +++ b/api/api.go @@ -57,51 +57,51 @@ type AuthHandler interface { // DatasetAPI manages importing filters against a dataset type DatasetAPI struct { - Router *mux.Router - dataStore store.DataStore - urlBuilder *url.Builder - enableURLRewriting bool - host string - downloadServiceToken string - EnablePrePublishView bool - downloadGenerators map[models.DatasetType]DownloadsGenerator - enablePrivateEndpoints bool - enableDetachDataset bool - enableDeleteStaticVersion bool - datasetPermissions AuthHandler - permissions AuthHandler - instancePublishedChecker *instance.PublishCheck - versionPublishedChecker *PublishCheck - MaxRequestOptions int - defaultLimit int - smDatasetAPI *application.StateMachineDatasetAPI - filesAPIClient filesAPISDK.Clienter - authToken string - searchContentUpdated *SearchContentUpdatedProducer + Router *mux.Router + dataStore store.DataStore + urlBuilder *url.Builder + enableURLRewriting bool + host string + downloadServiceToken string + EnablePrePublishView bool + downloadGenerators map[models.DatasetType]DownloadsGenerator + enablePrivateEndpoints bool + enableDetachDataset bool + enableDeleteStaticVersion bool + datasetPermissions AuthHandler + permissions AuthHandler + instancePublishedChecker *instance.PublishCheck + versionPublishedChecker *PublishCheck + MaxRequestOptions int + defaultLimit int + smDatasetAPI *application.StateMachineDatasetAPI + filesAPIClient filesAPISDK.Clienter + authToken string + searchContentUpdatedProducer *SearchContentUpdatedProducer } // Setup creates a new Dataset API instance and register the API routes based on the application configuration. -func Setup(ctx context.Context, cfg *config.Configuration, router *mux.Router, dataStore store.DataStore, urlBuilder *url.Builder, downloadGenerators map[models.DatasetType]DownloadsGenerator, datasetPermissions, permissions AuthHandler, enableURLRewriting bool, smDatasetAPI *application.StateMachineDatasetAPI, searchContentUpdated *SearchContentUpdatedProducer) *DatasetAPI { +func Setup(ctx context.Context, cfg *config.Configuration, router *mux.Router, dataStore store.DataStore, urlBuilder *url.Builder, downloadGenerators map[models.DatasetType]DownloadsGenerator, datasetPermissions, permissions AuthHandler, enableURLRewriting bool, smDatasetAPI *application.StateMachineDatasetAPI, searchContentUpdatedProducer *SearchContentUpdatedProducer) *DatasetAPI { api := &DatasetAPI{ - dataStore: dataStore, - host: cfg.DatasetAPIURL, - downloadServiceToken: cfg.DownloadServiceSecretKey, - EnablePrePublishView: cfg.EnablePrivateEndpoints, - Router: router, - urlBuilder: urlBuilder, - enableURLRewriting: enableURLRewriting, - downloadGenerators: downloadGenerators, - enablePrivateEndpoints: cfg.EnablePrivateEndpoints, - enableDetachDataset: cfg.EnableDetachDataset, - enableDeleteStaticVersion: cfg.EnableDeleteStaticVersion, - datasetPermissions: datasetPermissions, - permissions: permissions, - versionPublishedChecker: nil, - instancePublishedChecker: nil, - MaxRequestOptions: cfg.MaxRequestOptions, - defaultLimit: cfg.DefaultLimit, - smDatasetAPI: smDatasetAPI, - searchContentUpdated: searchContentUpdated, + dataStore: dataStore, + host: cfg.DatasetAPIURL, + downloadServiceToken: cfg.DownloadServiceSecretKey, + EnablePrePublishView: cfg.EnablePrivateEndpoints, + Router: router, + urlBuilder: urlBuilder, + enableURLRewriting: enableURLRewriting, + downloadGenerators: downloadGenerators, + enablePrivateEndpoints: cfg.EnablePrivateEndpoints, + enableDetachDataset: cfg.EnableDetachDataset, + enableDeleteStaticVersion: cfg.EnableDeleteStaticVersion, + datasetPermissions: datasetPermissions, + permissions: permissions, + versionPublishedChecker: nil, + instancePublishedChecker: nil, + MaxRequestOptions: cfg.MaxRequestOptions, + defaultLimit: cfg.DefaultLimit, + smDatasetAPI: smDatasetAPI, + searchContentUpdatedProducer: searchContentUpdatedProducer, } paginator := pagination.NewPaginator(cfg.DefaultLimit, cfg.DefaultOffset, cfg.DefaultMaxLimit) diff --git a/api/versions.go b/api/versions.go index 07df0e84..b22d2898 100644 --- a/api/versions.go +++ b/api/versions.go @@ -797,7 +797,7 @@ func (api *DatasetAPI) putState(w http.ResponseWriter, r *http.Request) { } if updatedVersion.State == models.PublishedState { - if api.searchContentUpdated != nil && api.searchContentUpdated.Producer != nil { + if api.searchContentUpdatedProducer != nil && api.searchContentUpdatedProducer.Producer != nil { searchContentUpdatedEvent := map[string]interface{}{ "dataset_id": updatedVersion.DatasetID, "uri": updatedVersion.Links.Version.HRef, @@ -810,7 +810,7 @@ func (api *DatasetAPI) putState(w http.ResponseWriter, r *http.Request) { log.Error(ctx, "failed to marshal searchContentUpdatedEvent for kafka", err, logData) } else { go func() { - api.searchContentUpdated.Producer.Output() <- kafka.BytesMessage{Value: jsonBytes, Context: ctx} + api.searchContentUpdatedProducer.Producer.Output() <- kafka.BytesMessage{Value: jsonBytes, Context: ctx} log.Info(ctx, "putState endpoint: sent search content update to kafka", logData) }() } From 75e89e1a5bcf1027514eec5974703b37fb04279d Mon Sep 17 00:00:00 2001 From: Hugh Brace Date: Thu, 4 Dec 2025 15:39:11 +0000 Subject: [PATCH 04/12] Send search content updated message to kafka # Conflicts: # features/static_versions_put.feature --- api/api.go | 4 +- api/dataset_test.go | 170 ++++++++++++++++----------- api/dimensions_test.go | 4 +- api/editions_test.go | 30 ++--- api/interfaces.go | 9 ++ api/metadata_test.go | 32 ++--- api/static_versions_test.go | 60 +++++----- api/versions.go | 26 ++++ api/versions_test.go | 144 ++++++++++++----------- api/webendpoints_test.go | 2 +- config/config.go | 2 + config/config_test.go | 1 + dimension/dimension_test.go | 2 +- features/static_versions_put.feature | 168 +++++++++++++------------- features/steps/steps.go | 27 +++++ instance/instance_external_test.go | 2 +- service/initialise.go | 14 +-- service/service.go | 22 +++- service/service_test.go | 46 ++++---- 19 files changed, 447 insertions(+), 318 deletions(-) create mode 100644 api/interfaces.go diff --git a/api/api.go b/api/api.go index e9c2a628..524f7ff6 100644 --- a/api/api.go +++ b/api/api.go @@ -77,10 +77,11 @@ type DatasetAPI struct { smDatasetAPI *application.StateMachineDatasetAPI filesAPIClient filesAPISDK.Clienter authToken string + searchContentUpdated *SearchContentUpdated } // Setup creates a new Dataset API instance and register the API routes based on the application configuration. -func Setup(ctx context.Context, cfg *config.Configuration, router *mux.Router, dataStore store.DataStore, urlBuilder *url.Builder, downloadGenerators map[models.DatasetType]DownloadsGenerator, datasetPermissions, permissions AuthHandler, enableURLRewriting bool, smDatasetAPI *application.StateMachineDatasetAPI) *DatasetAPI { +func Setup(ctx context.Context, cfg *config.Configuration, router *mux.Router, dataStore store.DataStore, urlBuilder *url.Builder, downloadGenerators map[models.DatasetType]DownloadsGenerator, datasetPermissions, permissions AuthHandler, enableURLRewriting bool, smDatasetAPI *application.StateMachineDatasetAPI, searchContentUpdated *SearchContentUpdated) *DatasetAPI { api := &DatasetAPI{ dataStore: dataStore, host: cfg.DatasetAPIURL, @@ -100,6 +101,7 @@ func Setup(ctx context.Context, cfg *config.Configuration, router *mux.Router, d MaxRequestOptions: cfg.MaxRequestOptions, defaultLimit: cfg.DefaultLimit, smDatasetAPI: smDatasetAPI, + searchContentUpdated: searchContentUpdated, } paginator := pagination.NewPaginator(cfg.DefaultLimit, cfg.DefaultOffset, cfg.DefaultMaxLimit) diff --git a/api/dataset_test.go b/api/dataset_test.go index 3f55a02d..64d97b32 100644 --- a/api/dataset_test.go +++ b/api/dataset_test.go @@ -20,6 +20,7 @@ import ( storetest "github.com/ONSdigital/dp-dataset-api/store/datastoretest" "github.com/ONSdigital/dp-dataset-api/url" filesAPISDKMocks "github.com/ONSdigital/dp-files-api/sdk/mocks" + kafka "github.com/ONSdigital/dp-kafka/v4" dprequest "github.com/ONSdigital/dp-net/v3/request" "github.com/gorilla/mux" @@ -60,8 +61,29 @@ func getAuthorisationHandlerMock() *mocks.AuthHandlerMock { } } +//func getSearchContentUpdatedProducerMock() *SearchContentUpdated { +// producerMock := &mocks.KafkaProducerMock{ +// OutputFunc: func() chan kafka.BytesMessage { +// return make(chan kafka.BytesMessage, 1) +// }, +// } +// return &SearchContentUpdated{ +// Producer: producerMock, +// } +//} + +func getSearchContentUpdatedMock() *mocks.KafkaProducerMock { + producerMock := &mocks.KafkaProducerMock{ + OutputFunc: func() chan kafka.BytesMessage { + return make(chan kafka.BytesMessage, 1) + }, + } + + return producerMock +} + // GetAPIWithCMDMocks also used in other tests, so exported -func GetAPIWithCMDMocks(mockedDataStore store.Storer, mockedGeneratedDownloads DownloadsGenerator, datasetPermissions, permissions AuthHandler) *DatasetAPI { +func GetAPIWithCMDMocks(mockedDataStore store.Storer, mockedGeneratedDownloads DownloadsGenerator, datasetPermissions, permissions AuthHandler, searchContentUpdated SearchContentUpdated) *DatasetAPI { mu.Lock() defer mu.Unlock() cfg, err := config.Get() @@ -84,6 +106,16 @@ func GetAPIWithCMDMocks(mockedDataStore store.Storer, mockedGeneratedDownloads D models.CantabularFlexibleTable: mockedGeneratedDownloads, } + //producerMock := &mocks.KafkaProducerMock{ + // OutputFunc: func() chan kafka.BytesMessage { + // return nil + // }, + //} + // + //searchContentUpdated := SearchContentUpdated{ + // Producer: producerMock, + //} + states := []application.State{application.Published, application.EditionConfirmed, application.Associated} transitions := []application.Transition{{ Label: "published", @@ -161,7 +193,7 @@ func GetAPIWithCMDMocks(mockedDataStore store.Storer, mockedGeneratedDownloads D StateMachine: application.NewStateMachine(testContext, states, transitions, store.DataStore{Backend: mockedDataStore}), } - return Setup(testContext, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, mockedMapGeneratedDownloads, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI) + return Setup(testContext, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, mockedMapGeneratedDownloads, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI, &searchContentUpdated) } // GetAPIWithCMDMocks also used in other tests, so exported @@ -217,7 +249,7 @@ func GetAPIWithCantabularMocks(mockedDataStore store.Storer, mockedGeneratedDown StateMachine: application.NewStateMachine(testContext, states, transitions, store.DataStore{Backend: mockedDataStore}), } - return Setup(testContext, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, mockedMapGeneratedDownloads, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI) + return Setup(testContext, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, mockedMapGeneratedDownloads, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI, nil) } func createRequestWithAuth(method, target string, body io.Reader) *http.Request { @@ -245,7 +277,7 @@ func TestGetDatasetsReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 11, 12) @@ -270,7 +302,7 @@ func TestGetDatasetsReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 11, 12) @@ -295,7 +327,7 @@ func TestGetDatasetsReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 11, 12) So(actualResponse, ShouldResemble, []*models.Dataset{{ID: "123-456", Type: "static", IsBasedOn: &models.IsBasedOn{ID: "Example"}}}) @@ -325,7 +357,7 @@ func TestGetDatasetsReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 10, 0) @@ -358,7 +390,7 @@ func TestGetDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 6, 7) assertInternalServerErr(w) @@ -386,7 +418,7 @@ func TestGetDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 6, 7) So(len(mockedDataStore.GetDatasetsCalls()), ShouldEqual, 0) @@ -410,7 +442,7 @@ func TestGetDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 6, 7) So(len(mockedDataStore.GetDatasetsCalls()), ShouldEqual, 0) @@ -438,7 +470,7 @@ func TestGetDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 6, 7) So(len(mockedDataStore.GetDatasetsByQueryParamsCalls()), ShouldEqual, 1) @@ -465,7 +497,7 @@ func TestGetDatasetReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -486,7 +518,7 @@ func TestGetDatasetReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -509,7 +541,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -529,7 +561,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -551,7 +583,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -576,7 +608,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -605,7 +637,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -634,7 +666,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -663,7 +695,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -692,7 +724,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -721,7 +753,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -750,7 +782,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -779,7 +811,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -811,7 +843,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -843,7 +875,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -875,7 +907,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -907,7 +939,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -939,7 +971,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -973,7 +1005,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -1006,7 +1038,7 @@ func TestPostDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusConflict) @@ -1038,7 +1070,7 @@ func TestPostDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -1073,7 +1105,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1105,7 +1137,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -1134,7 +1166,7 @@ func TestPostDatasetReturnsError(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusUnauthorized) @@ -1170,7 +1202,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusConflict) @@ -1203,7 +1235,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Body.String(), ShouldResemble, "invalid fields: [QMI]\n") @@ -1234,7 +1266,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Body.String(), ShouldResemble, "invalid fields: [QMI]\n") @@ -1265,7 +1297,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Body.String(), ShouldResemble, "invalid fields: [QMI]\n") @@ -1296,7 +1328,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1330,7 +1362,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -1366,7 +1398,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1413,7 +1445,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1461,7 +1493,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1493,7 +1525,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1525,7 +1557,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1557,7 +1589,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1589,7 +1621,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1621,7 +1653,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1655,7 +1687,7 @@ func TestPutDatasetReturnsError(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1688,7 +1720,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -1721,7 +1753,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -1757,7 +1789,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1790,7 +1822,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1823,7 +1855,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1854,7 +1886,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusUnauthorized) @@ -1888,7 +1920,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusConflict) @@ -1921,7 +1953,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -1958,7 +1990,7 @@ func TestDeleteDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNoContent) @@ -1992,7 +2024,7 @@ func TestDeleteDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNoContent) @@ -2065,7 +2097,7 @@ func TestDeleteDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.filesAPIClient = &mockFilesAPIClient api.Router.ServeHTTP(w, r) @@ -2105,7 +2137,7 @@ func TestDeleteDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2137,7 +2169,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusForbidden) @@ -2168,7 +2200,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -2198,7 +2230,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNoContent) @@ -2229,7 +2261,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -2249,7 +2281,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { mockedDataStore := &storetest.StorerMock{} datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusUnauthorized) @@ -2304,7 +2336,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -2356,7 +2388,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.filesAPIClient = &mockFilesAPIClient api.Router.ServeHTTP(w, r) diff --git a/api/dimensions_test.go b/api/dimensions_test.go index 91f80c88..1c07dbcd 100644 --- a/api/dimensions_test.go +++ b/api/dimensions_test.go @@ -19,7 +19,7 @@ import ( func initAPIWithMockedStore(mockedStore *storetest.StorerMock) *DatasetAPI { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - return GetAPIWithCMDMocks(mockedStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + return GetAPIWithCMDMocks(mockedStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) } func TestGetDimensionsReturnsOk(t *testing.T) { @@ -39,7 +39,7 @@ func TestGetDimensionsReturnsOk(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) diff --git a/api/editions_test.go b/api/editions_test.go index fde726f2..9029640e 100644 --- a/api/editions_test.go +++ b/api/editions_test.go @@ -63,7 +63,7 @@ func TestGetEditionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) list, totalCount, err := api.getEditions(w, r, 20, 0) So(w.Code, ShouldEqual, http.StatusOK) @@ -255,7 +255,7 @@ func TestGetEditionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) _, totalCount, _ := api.getEditions(w, r, 20, 0) editions, err := utils.MapVersionsToEditionUpdate(publishedLatestVersion, nil) @@ -475,7 +475,7 @@ func TestGetEditionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) _, totalCount, _ := api.getEditions(w, r, 20, 0) editions, err := utils.MapVersionsToEditionUpdate(publishedLatestVersion, unpublishedLatestVersion) @@ -505,7 +505,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -531,7 +531,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -560,7 +560,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -588,7 +588,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -616,7 +616,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -644,7 +644,7 @@ func TestGetEditionReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -669,7 +669,7 @@ func TestGetEditionReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -694,7 +694,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -718,7 +718,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -745,7 +745,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -771,7 +771,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -797,7 +797,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) diff --git a/api/interfaces.go b/api/interfaces.go new file mode 100644 index 00000000..a0c69322 --- /dev/null +++ b/api/interfaces.go @@ -0,0 +1,9 @@ +package api + +import ( + kafka "github.com/ONSdigital/dp-kafka/v4" +) + +type KafkaProducer interface { + Output() chan kafka.BytesMessage +} diff --git a/api/metadata_test.go b/api/metadata_test.go index f6b95df0..8a5dfcf6 100644 --- a/api/metadata_test.go +++ b/api/metadata_test.go @@ -60,7 +60,7 @@ func TestPutMetadata(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) edition := version.Edition versionNo := strconv.Itoa(version.Version) @@ -300,7 +300,7 @@ func TestGetMetadataReturnsOk(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -360,7 +360,7 @@ func TestGetMetadataReturnsOk(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -422,7 +422,7 @@ func TestGetMetadataReturnsOk(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -480,7 +480,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -508,7 +508,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -542,7 +542,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -576,7 +576,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -610,7 +610,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -639,7 +639,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -674,7 +674,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -695,7 +695,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -718,7 +718,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -741,7 +741,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -779,7 +779,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -820,7 +820,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) diff --git a/api/static_versions_test.go b/api/static_versions_test.go index 8e6d5c21..634cfacb 100644 --- a/api/static_versions_test.go +++ b/api/static_versions_test.go @@ -70,7 +70,7 @@ func TestGetDatasetEditions_WithQueryParam_Success(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -149,7 +149,7 @@ func TestGetDatasetEditions_WithPublishedParam(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -190,7 +190,7 @@ func TestGetDatasetEditions_WithPublishedParam(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -212,7 +212,7 @@ func TestGetDatasetEditions_WithPublishedParam(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -296,7 +296,7 @@ func TestGetDatasetEditions_WithoutQueryParam_Success(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -366,7 +366,7 @@ func TestGetDatasetEditions_InvalidQueryParam_Failure(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -395,7 +395,7 @@ func TestGetDatasetEditions_GetStaticVersionsByState_Failure(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called and no versions are found", func() { r := createRequestWithAuth("GET", "http://localhost:22000/dataset-editions?state=associated", http.NoBody) @@ -444,7 +444,7 @@ func TestGetDatasetEditions_GetDataset_Failure(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called and the dataset is not found", func() { r := createRequestWithAuth("GET", "http://localhost:22000/dataset-editions", http.NoBody) @@ -477,7 +477,7 @@ func TestGetDatasetEditions_GetDataset_Failure(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("When getDatasetEditions is called and the datastore fails", func() { r := createRequestWithAuth("GET", "http://localhost:22000/dataset-editions", http.NoBody) @@ -552,7 +552,7 @@ func TestAddDatasetVersionCondensed_Success(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(successResponse.Status, ShouldEqual, http.StatusCreated) @@ -625,7 +625,7 @@ func TestAddDatasetVersionCondensed_Success(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, getAuthorisationHandlerMock(), getAuthorisationHandlerMock()) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, getAuthorisationHandlerMock(), getAuthorisationHandlerMock(), SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(successResponse.Status, ShouldEqual, http.StatusCreated) @@ -722,7 +722,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) castErr := errorResponse.Errors[0] @@ -769,7 +769,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(successResponse.Status, ShouldEqual, http.StatusCreated) @@ -803,7 +803,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(errorResponse.Status, ShouldEqual, http.StatusInternalServerError) @@ -889,7 +889,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(errorResponse.Status, ShouldEqual, http.StatusNotFound) @@ -989,7 +989,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) @@ -1076,7 +1076,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(errorResponse.Status, ShouldEqual, http.StatusBadRequest) @@ -1142,7 +1142,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(errorResponse.Status, ShouldEqual, http.StatusBadRequest) @@ -1356,7 +1356,7 @@ func TestCreateVersion_Success(t *testing.T) { returnedVersionJSON, err := json.Marshal(expectedVersion) So(err, ShouldBeNil) - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1433,7 +1433,7 @@ func TestCreateVersion_Failure(t *testing.T) { permissions := getAuthorisationHandlerMock() Convey("When the JSON body provided is invalid", t, func() { - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/invalid", http.NoBody) vars := map[string]string{ "dataset_id": "123", @@ -1459,7 +1459,7 @@ func TestCreateVersion_Failure(t *testing.T) { validVersionJSON, err := json.Marshal(validVersion) So(err, ShouldBeNil) - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/invalid", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1488,7 +1488,7 @@ func TestCreateVersion_Failure(t *testing.T) { invalidTypeVersionJSON, err := json.Marshal(invalidTypeVersion) So(err, ShouldBeNil) - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(invalidTypeVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1518,7 +1518,7 @@ func TestCreateVersion_Failure(t *testing.T) { invalidVersionJSON, err := json.Marshal(invalidVersion) So(err, ShouldBeNil) - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/100", bytes.NewBuffer(invalidVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1556,7 +1556,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1588,7 +1588,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1623,7 +1623,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1658,7 +1658,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1696,7 +1696,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1734,7 +1734,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1775,7 +1775,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", diff --git a/api/versions.go b/api/versions.go index f9f11e0f..215803cc 100644 --- a/api/versions.go +++ b/api/versions.go @@ -15,6 +15,7 @@ import ( errs "github.com/ONSdigital/dp-dataset-api/apierrors" "github.com/ONSdigital/dp-dataset-api/models" "github.com/ONSdigital/dp-dataset-api/utils" + kafka "github.com/ONSdigital/dp-kafka/v4" dpresponse "github.com/ONSdigital/dp-net/v3/handlers/response" dphttp "github.com/ONSdigital/dp-net/v3/http" "github.com/ONSdigital/dp-net/v3/links" @@ -50,6 +51,10 @@ var ( } ) +type SearchContentUpdated struct { + Producer KafkaProducer +} + // getVersions returns a list of versions, the total count of versions that match the query parameters and an error // TODO: Refactor this to reduce the complexity // @@ -845,6 +850,27 @@ func (api *DatasetAPI) putState(w http.ResponseWriter, r *http.Request) { } } + if updatedVersion.State == models.PublishedState { + searchContentUpdatedEvent := map[string]interface{}{ + "uri": updatedVersion.Links.Version.HRef, + "title": updatedVersion.Edition, + "content_type": updatedVersion.Type, + } + jsonBytes, err := json.Marshal(searchContentUpdatedEvent) + if err != nil { + log.Error(ctx, "failed to marshal searchContentUpdatedEvent for kafka: %w", err, logData) + } + + api.searchContentUpdated.Producer.Output() <- kafka.BytesMessage{Value: jsonBytes, Context: ctx} + if err != nil { + log.Error(ctx, "putState endpoint: failed to send search content update", err, logData) + handleVersionAPIErr(ctx, err, w, logData) + return + } + log.Info(ctx, "putState endpoint: sent search content update to kafka", logData) + + } + setJSONContentType(w) w.WriteHeader(http.StatusOK) log.Info(ctx, "putState endpoint: request successful", logData) diff --git a/api/versions_test.go b/api/versions_test.go index 988fb4ee..0b1800b4 100644 --- a/api/versions_test.go +++ b/api/versions_test.go @@ -73,7 +73,7 @@ func TestGetVersionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) list, totalCount, err := api.getVersions(w, r, 20, 0) So(w.Code, ShouldEqual, http.StatusOK) @@ -108,7 +108,7 @@ func TestGetVersionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) list, totalCount, err := api.getVersions(w, r, 20, 0) So(w.Code, ShouldEqual, http.StatusOK) @@ -143,7 +143,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -167,7 +167,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -195,7 +195,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -227,7 +227,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -258,7 +258,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -293,7 +293,7 @@ func TestGetVersionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -339,7 +339,7 @@ func TestGetVersionReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) Convey("With an etag", func() { version.ETag = "version-etag" @@ -399,7 +399,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -420,7 +420,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -451,7 +451,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -485,7 +485,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -518,7 +518,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -539,7 +539,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -560,7 +560,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -579,7 +579,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -620,7 +620,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -700,7 +700,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { permissions := getAuthorisationHandlerMock() Convey("Given a valid request is executed", func() { - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) Convey("Then the request is successful, with the expected calls", func() { @@ -737,7 +737,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { return "", nil } - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) Convey("Then the request is successful, with the expected calls including the update retry", func() { @@ -930,7 +930,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -981,7 +981,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { UnlockInstanceFunc: func(context.Context, string) {}, } - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1108,7 +1108,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) ctx := context.Background() @@ -1251,7 +1251,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1511,7 +1511,7 @@ func updateVersionDownloadTest(r *http.Request) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1592,7 +1592,7 @@ func TestPutVersionGenerateDownloadsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, mockDownloadGenerator, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, mockDownloadGenerator, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) Convey("then an internal server error response is returned", func() { @@ -1685,7 +1685,7 @@ func TestPutEmptyVersion(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) Convey("then a http status ok is returned", func() { @@ -1749,7 +1749,7 @@ func TestPutEmptyVersion(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) Convey("then a http status ok is returned", func() { @@ -1807,7 +1807,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1847,7 +1847,8 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -1890,7 +1891,8 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1924,7 +1926,8 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1958,7 +1961,8 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -2013,7 +2017,8 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -2066,7 +2071,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -2123,7 +2128,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -2163,7 +2168,8 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusUnauthorized) @@ -2203,7 +2209,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusForbidden) @@ -2267,7 +2273,8 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -2402,7 +2409,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2803,7 +2810,7 @@ func TestDetachVersionReturnOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2870,7 +2877,7 @@ func TestDetachVersionReturnOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2919,7 +2926,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2954,7 +2961,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -2992,7 +2999,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3033,7 +3040,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3074,7 +3081,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3123,7 +3130,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3175,7 +3182,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3215,7 +3222,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3243,7 +3250,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3271,7 +3278,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3323,7 +3330,7 @@ func TestDeleteVersionStaticDatasetReturnOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3353,7 +3360,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3395,7 +3402,8 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -3436,7 +3444,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3486,7 +3494,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3522,7 +3530,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3561,7 +3569,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3731,7 +3739,9 @@ func TestPutStateReturnsOk(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + scuProducerMock := getSearchContentUpdatedMock() + searchContentUpdated := SearchContentUpdated{Producer: scuProducerMock} + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, searchContentUpdated) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -3744,6 +3754,7 @@ func TestPutStateReturnsOk(t *testing.T) { So(mockedDataStore.UpsertVersionStaticCalls(), ShouldHaveLength, 1) So(mockedDataStore.UpsertDatasetCalls(), ShouldHaveLength, 1) So(mockedDataStore.CheckEditionExistsStaticCalls(), ShouldHaveLength, 1) + So(len(scuProducerMock.OutputCalls()), ShouldEqual, 1) }) } @@ -3757,7 +3768,7 @@ func TestPutStateReturnsError(t *testing.T) { mockedDataStore := &storetest.StorerMock{} permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) api.putState(w, r) @@ -3773,7 +3784,7 @@ func TestPutStateReturnsError(t *testing.T) { mockedDataStore := &storetest.StorerMock{} permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3789,7 +3800,7 @@ func TestPutStateReturnsError(t *testing.T) { mockedDataStore := &storetest.StorerMock{} permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3808,7 +3819,7 @@ func TestPutStateReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -3827,7 +3838,7 @@ func TestPutStateReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) api.Router.ServeHTTP(w, r) @@ -4202,7 +4213,8 @@ func TestPutVersionEditionValidationNonStatic(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) diff --git a/api/webendpoints_test.go b/api/webendpoints_test.go index 85c5af0c..ff024a04 100644 --- a/api/webendpoints_test.go +++ b/api/webendpoints_test.go @@ -368,5 +368,5 @@ func GetWebAPIWithMocks(ctx context.Context, mockedDataStore store.Storer, mocke cfg.DatasetAPIURL = host cfg.EnablePrivateEndpoints = false - return Setup(ctx, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, mockedMapDownloadGenerators, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI) + return Setup(ctx, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, mockedMapDownloadGenerators, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI, nil) } diff --git a/config/config.go b/config/config.go index 9eeac249..044b92af 100644 --- a/config/config.go +++ b/config/config.go @@ -29,6 +29,7 @@ type Configuration struct { KafkaSecSkipVerify bool `envconfig:"KAFKA_SEC_SKIP_VERIFY"` GenerateDownloadsTopic string `envconfig:"GENERATE_DOWNLOADS_TOPIC"` CantabularExportStartTopic string `envconfig:"CANTABULAR_EXPORT_START"` + SearchContentUpdatedTopic string `envconfig:"SEARCH_CONTENT_UPDATED_TOPIC"` CodeListAPIURL string `envconfig:"CODE_LIST_API_URL"` DatasetAPIURL string `envconfig:"DATASET_API_URL"` FilesAPIURL string `envconfig:"FILES_API_URL"` @@ -87,6 +88,7 @@ func Get() (*Configuration, error) { KafkaProducerMinBrokersHealthy: 2, GenerateDownloadsTopic: "filter-job-submitted", CantabularExportStartTopic: "cantabular-export-start", + SearchContentUpdatedTopic: "search-content-updated", CodeListAPIURL: "http://localhost:22400", DatasetAPIURL: "http://localhost:22000", FilesAPIURL: "http://localhost:26900", diff --git a/config/config_test.go b/config/config_test.go index f7f02e78..d242bed4 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -31,6 +31,7 @@ func TestSpec(t *testing.T) { So(cfg.KafkaSecSkipVerify, ShouldBeFalse) So(cfg.GenerateDownloadsTopic, ShouldEqual, "filter-job-submitted") So(cfg.CantabularExportStartTopic, ShouldEqual, "cantabular-export-start") + So(cfg.SearchContentUpdatedTopic, ShouldEqual, "search-content-updated") So(cfg.DatasetAPIURL, ShouldEqual, "http://localhost:22000") So(cfg.CodeListAPIURL, ShouldEqual, "http://localhost:22400") So(cfg.DownloadServiceSecretKey, ShouldEqual, "QB0108EZ-825D-412C-9B1D-41EF7747F462") diff --git a/dimension/dimension_test.go b/dimension/dimension_test.go index d6ad9ace..73ad577e 100644 --- a/dimension/dimension_test.go +++ b/dimension/dimension_test.go @@ -1544,7 +1544,7 @@ func getAPIWithCMDMocks(ctx context.Context, mockedDataStore store.Storer, mocke datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - return api.Setup(ctx, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, downloadGenerators, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI) + return api.Setup(ctx, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, downloadGenerators, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI, nil) } func getAuthorisationHandlerMock() *mocks.AuthHandlerMock { diff --git a/features/static_versions_put.feature b/features/static_versions_put.feature index b6571df9..2aa15814 100644 --- a/features/static_versions_put.feature +++ b/features/static_versions_put.feature @@ -1,7 +1,7 @@ Feature: Static Dataset Versions PUT API - Background: We have static datasets for PUT version testing - Given I have a static dataset with version: + Background: We have static datasets for PUT version testing + Given I have a static dataset with version: """ { "dataset": { @@ -43,19 +43,19 @@ Feature: Static Dataset Versions PUT API } """ - Scenario: PUT updates static dataset version successfully - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" + Scenario: PUT updates static dataset version successfully + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" """ { "state": "approved", "type": "static" } """ - Then the HTTP status code should be "200" - And I should receive the following JSON response: + Then the HTTP status code should be "200" + And I should receive the following JSON response: """ { "dataset_id": "static-dataset-update", @@ -89,11 +89,11 @@ Feature: Static Dataset Versions PUT API } """ - Scenario: PUT updates static dataset version with new data - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" + Scenario: PUT updates static dataset version with new data + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" """ { "release_date": "2025-03-01T09:00:00.000Z", @@ -102,13 +102,13 @@ Feature: Static Dataset Versions PUT API "type": "static" } """ - Then the HTTP status code should be "200" + Then the HTTP status code should be "200" - Scenario: PUT updates static dataset version distributions - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" + Scenario: PUT updates static dataset version distributions + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" """ { "distributions": [ @@ -130,13 +130,13 @@ Feature: Static Dataset Versions PUT API "type": "static" } """ - Then the HTTP status code should be "200" + Then the HTTP status code should be "200" - Scenario: PUT updates static dataset version edition - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" + Scenario: PUT updates static dataset version edition + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" """ { "edition": "2025-revised", @@ -144,71 +144,71 @@ Feature: Static Dataset Versions PUT API "type": "static" } """ - Then the HTTP status code should be "200" + Then the HTTP status code should be "200" - Scenario: PUT fails for non-existent version - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/999" + Scenario: PUT fails for non-existent version + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/999" """ { "state": "approved", "type": "static" } """ - Then the HTTP status code should be "404" + Then the HTTP status code should be "404" - Scenario: PUT fails for non-existent dataset - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/non-existent/editions/2025/versions/1" + Scenario: PUT fails for non-existent dataset + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/non-existent/editions/2025/versions/1" """ { "state": "approved", "type": "static" } """ - Then the HTTP status code should be "404" + Then the HTTP status code should be "404" - Scenario: PUT fails when not authorised - Given private endpoints are enabled - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" + Scenario: PUT fails when not authorised + Given private endpoints are enabled + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" """ { "state": "approved", "type": "static" } """ - Then the HTTP status code should be "401" + Then the HTTP status code should be "401" - Scenario: PUT state endpoint updates successfully - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" + Scenario: PUT state endpoint updates successfully + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" """ { "state": "approved" } """ - Then the HTTP status code should be "200" + Then the HTTP status code should be "200" - Scenario: PUT state transitions from associated to approved - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" + Scenario: PUT state transitions from associated to approved + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" """ { "state": "approved" } """ - Then the HTTP status code should be "200" + Then the HTTP status code should be "200" - Scenario: PUT state transitions from approved to published - Given I have a static dataset with version: + Scenario: PUT state transitions from approved to published + Given I have a static dataset with version: """ { "dataset": { @@ -252,10 +252,10 @@ Feature: Static Dataset Versions PUT API } } """ - And private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-publish/editions/2025/versions/1/state" + And private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-publish/editions/2025/versions/1/state" """ { "state": "published" @@ -273,23 +273,23 @@ Feature: Static Dataset Versions PUT API "state": "published" } """ - Then the HTTP status code should be "400" + Then the HTTP status code should be "400" - Scenario: PUT state fails with invalid state - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" + Scenario: PUT state fails with invalid state + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" """ { "state": "invalid-state" } """ - Then the HTTP status code should be "400" + Then the HTTP status code should be "400" - Scenario: PUT state fails when not authorised - Given private endpoints are enabled - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" + Scenario: PUT state fails when not authorised + Given private endpoints are enabled + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1/state" """ { "state": "approved" @@ -330,7 +330,7 @@ Feature: Static Dataset Versions PUT API } } """ - And I have a static dataset with version: + And I have a static dataset with version: """ { "dataset": { @@ -362,27 +362,27 @@ Feature: Static Dataset Versions PUT API } } """ - And private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-conflict/editions/2025/versions/1" + And private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-conflict/editions/2025/versions/1" """ { "edition": "existing-edition", "type": "static" } """ - Then the HTTP status code should be "409" - And I should receive the following response: + Then the HTTP status code should be "409" + And I should receive the following response: """ the edition already exists """ - Scenario: PUT succeeds when updating edition-id to new edition for static dataset - Given private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" + Scenario: PUT succeeds when updating edition-id to new edition for static dataset + Given private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I am authorised + When I PUT "/datasets/static-dataset-update/editions/2025/versions/1" """ { "edition": "2025-new-edition", @@ -390,7 +390,7 @@ Feature: Static Dataset Versions PUT API "type": "static" } """ - Then the HTTP status code should be "200" + Then the HTTP status code should be "200" Scenario: PUT state handles idempotent transitions correctly Given I have a static dataset with version: diff --git a/features/steps/steps.go b/features/steps/steps.go index 98774b40..96fe54fa 100644 --- a/features/steps/steps.go +++ b/features/steps/steps.go @@ -55,6 +55,7 @@ func (c *DatasetComponent) RegisterSteps(ctx *godog.ScenarioContext) { ctx.Step(`^the response header "([^"]*)" should not be empty$`, c.theResponseHeaderShouldNotBeEmpty) ctx.Step(`^the dataset "([^"]*)" should have next equal to current$`, c.theDatasetShouldHaveNextEqualToCurrent) ctx.Step(`^the "([^"]*)" feature flag is "([^"]*)"$`, c.theFeatureFlagIs) + ctx.Step(`^these kafka messages are produced:$`, c.theseKafkaMessagesAreProduced) } func (c *DatasetComponent) theFeatureFlagIs(flagName, status string) error { @@ -274,6 +275,32 @@ func (c *DatasetComponent) theseCantabularGeneratorDownloadsEventsAreProduced(ev return nil } +func (c *DatasetComponent) theseKafkaMessagesAreProduced(events *godog.Table) error { + messages := []string{} + listen := true + + for listen { + select { + case <-time.After(10 * time.Second): + listen = false + case <-c.consumer.Channels().Closer: + return errors.New("closer channel closed") + case msg, ok := <-c.consumer.Channels().Upstream: + if !ok { + return errors.New("upstream channel closed") + } + messages = append(messages, string(msg.GetData())) + msg.Commit() + msg.Release() + } + } + + if diff := cmp.Diff(messages, events); diff != "" { + return fmt.Errorf("-got +expected)\n%s", diff) + } + return nil +} + func (c *DatasetComponent) iHaveTheseEditions(editionsJSON *godog.DocString) error { editions := []models.Edition{} diff --git a/instance/instance_external_test.go b/instance/instance_external_test.go index 8cc0db9e..1d7b0bb8 100644 --- a/instance/instance_external_test.go +++ b/instance/instance_external_test.go @@ -779,5 +779,5 @@ func getAPIWithCantabularMocks(ctx context.Context, mockedDataStore store.Storer cfg.DatasetAPIURL = "http://localhost:22000" cfg.EnablePrivateEndpoints = true - return api.Setup(ctx, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, mockedMapDownloadGenerators, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI) + return api.Setup(ctx, cfg, mux.NewRouter(), store.DataStore{Backend: mockedDataStore}, urlBuilder, mockedMapDownloadGenerators, datasetPermissions, permissions, enableURLRewriting, &mockStatemachineDatasetAPI, nil) } diff --git a/service/initialise.go b/service/initialise.go index 2339f9e4..4b7e8129 100644 --- a/service/initialise.go +++ b/service/initialise.go @@ -17,12 +17,12 @@ import ( // ExternalServiceList holds the initialiser and initialisation state of external services. type ExternalServiceList struct { - GenerateDownloadsProducer bool - Graph bool - HealthCheck bool - MongoDB bool - FilesAPIClient bool - Init Initialiser + KafkaProducer bool + Graph bool + HealthCheck bool + MongoDB bool + FilesAPIClient bool + Init Initialiser } // NewServiceList creates a new service list with the provided initialiser @@ -57,7 +57,7 @@ func (e *ExternalServiceList) GetProducer(ctx context.Context, cfg *config.Confi if err != nil { return } - e.GenerateDownloadsProducer = true + e.KafkaProducer = true return } diff --git a/service/service.go b/service/service.go index 348015b5..73f16988 100644 --- a/service/service.go +++ b/service/service.go @@ -49,6 +49,7 @@ type Service struct { mongoDB store.MongoDB generateCMDDownloadsProducer kafka.IProducer generateCantabularDownloadsProducer kafka.IProducer + searchContentUpdatedProducer kafka.IProducer identityClient *clientsidentity.Client filesAPIClient filesAPISDK.Clienter server HTTPServer @@ -250,6 +251,11 @@ func (svc *Service) Run(ctx context.Context, buildTime, gitCommit, version strin log.Fatal(ctx, "could not obtain generate downloads producer for cantabular", err) return err } + svc.searchContentUpdatedProducer, err = svc.serviceList.GetProducer(ctx, svc.config, svc.config.SearchContentUpdatedTopic) + if err != nil { + log.Fatal(ctx, "could not obtain search content updated producer", err) + return err + } } downloadGeneratorCantabular := &download.CantabularGenerator{ @@ -262,6 +268,10 @@ func (svc *Service) Run(ctx context.Context, buildTime, gitCommit, version strin Marshaller: schema.GenerateCMDDownloadsEvent, } + searchContentUpdated := &api.SearchContentUpdated{ + Producer: adapter.NewProducerAdapter(svc.searchContentUpdatedProducer), + } + downloadGenerators := map[models.DatasetType]api.DownloadsGenerator{ models.CantabularBlob: downloadGeneratorCantabular, models.CantabularTable: downloadGeneratorCantabular, @@ -319,7 +329,7 @@ func (svc *Service) Run(ctx context.Context, buildTime, gitCommit, version strin datasetPermissions, permissions := getAuthorisationHandlers(ctx, svc.config) sm := GetStateMachine(ctx, ds) svc.smDS = application.Setup(ds, smDownloadGenerators, sm) - svc.api = api.Setup(ctx, svc.config, r, ds, urlBuilder, downloadGenerators, datasetPermissions, permissions, enableURLRewriting, svc.smDS) + svc.api = api.Setup(ctx, svc.config, r, ds, urlBuilder, downloadGenerators, datasetPermissions, permissions, enableURLRewriting, svc.smDS, searchContentUpdated) // Set the files API client on the DatasetAPI after initialisation if svc.config.EnablePrivateEndpoints && svc.filesAPIClient != nil { @@ -333,6 +343,7 @@ func (svc *Service) Run(ctx context.Context, buildTime, gitCommit, version strin if svc.config.EnablePrivateEndpoints { svc.generateCMDDownloadsProducer.LogErrors(ctx) svc.generateCantabularDownloadsProducer.LogErrors(ctx) + svc.searchContentUpdatedProducer.LogErrors(ctx) } // Run the http server in a new go-routine @@ -502,8 +513,8 @@ func (svc *Service) Close(ctx context.Context) error { } } - // Close GenerateDownloadsProducer (if it exists) - if svc.serviceList.GenerateDownloadsProducer { + // Close KafkaProducer (if it exists) + if svc.serviceList.KafkaProducer { log.Info(shutdownContext, "closing generated downloads kafka producer", log.Data{"producer": "DimensionExtracted"}) if err := svc.generateCMDDownloadsProducer.Close(shutdownContext); err != nil { log.Warn(shutdownContext, "error while closing generated downloads kafka producer", log.Data{"producer": "DimensionExtracted", "err": err.Error()}) @@ -567,6 +578,11 @@ func (svc *Service) registerCheckers(ctx context.Context) (err error) { log.Error(ctx, "error adding check for cantabular kafka downloads producer", err) } + if err = svc.healthCheck.AddCheck("Kafka Search Content Updated Producer", svc.searchContentUpdatedProducer.Checker); err != nil { + hasErrors = true + log.Error(ctx, "error adding check for search content updated kafka producer", err) + } + if err = svc.healthCheck.AddCheck("Files API Client", svc.filesAPIClient.Checker); err != nil { hasErrors = true log.Error(ctx, "error adding check for files api client", err) diff --git a/service/service_test.go b/service/service_test.go index 9a7aca6c..27065a53 100644 --- a/service/service_test.go +++ b/service/service_test.go @@ -135,7 +135,7 @@ func TestRun(t *testing.T) { So(svcList.MongoDB, ShouldBeFalse) So(svcList.Graph, ShouldBeFalse) So(svcList.FilesAPIClient, ShouldBeFalse) - So(svcList.GenerateDownloadsProducer, ShouldBeFalse) + So(svcList.KafkaProducer, ShouldBeFalse) So(svcList.HealthCheck, ShouldBeFalse) }) }) @@ -155,7 +155,7 @@ func TestRun(t *testing.T) { So(svcList.MongoDB, ShouldBeTrue) So(svcList.Graph, ShouldBeFalse) So(svcList.FilesAPIClient, ShouldBeFalse) - So(svcList.GenerateDownloadsProducer, ShouldBeFalse) + So(svcList.KafkaProducer, ShouldBeFalse) So(svcList.HealthCheck, ShouldBeFalse) }) }) @@ -176,7 +176,7 @@ func TestRun(t *testing.T) { So(svcList.MongoDB, ShouldBeTrue) So(svcList.Graph, ShouldBeTrue) So(svcList.FilesAPIClient, ShouldBeFalse) - So(svcList.GenerateDownloadsProducer, ShouldBeFalse) + So(svcList.KafkaProducer, ShouldBeFalse) So(svcList.HealthCheck, ShouldBeFalse) }) }) @@ -198,7 +198,7 @@ func TestRun(t *testing.T) { So(svcList.MongoDB, ShouldBeTrue) So(svcList.Graph, ShouldBeTrue) So(svcList.FilesAPIClient, ShouldBeTrue) - So(svcList.GenerateDownloadsProducer, ShouldBeFalse) + So(svcList.KafkaProducer, ShouldBeFalse) So(svcList.HealthCheck, ShouldBeFalse) }) }) @@ -221,7 +221,7 @@ func TestRun(t *testing.T) { So(svcList.MongoDB, ShouldBeTrue) So(svcList.Graph, ShouldBeTrue) So(svcList.FilesAPIClient, ShouldBeTrue) - So(svcList.GenerateDownloadsProducer, ShouldBeTrue) + So(svcList.KafkaProducer, ShouldBeTrue) So(svcList.HealthCheck, ShouldBeFalse) }) }) @@ -252,16 +252,17 @@ func TestRun(t *testing.T) { So(err.Error(), ShouldResemble, fmt.Sprintf("unable to register checkers: %s", errAddheckFail.Error())) So(svcList.MongoDB, ShouldBeTrue) So(svcList.Graph, ShouldBeTrue) - So(svcList.GenerateDownloadsProducer, ShouldBeTrue) + So(svcList.KafkaProducer, ShouldBeTrue) So(svcList.FilesAPIClient, ShouldBeTrue) So(svcList.HealthCheck, ShouldBeTrue) - So(len(hcMockAddFail.AddCheckCalls()), ShouldEqual, 6) + So(len(hcMockAddFail.AddCheckCalls()), ShouldEqual, 7) So(hcMockAddFail.AddCheckCalls()[0].Name, ShouldResemble, "Zebedee") So(hcMockAddFail.AddCheckCalls()[1].Name, ShouldResemble, "Kafka Generate Downloads Producer") So(hcMockAddFail.AddCheckCalls()[2].Name, ShouldResemble, "Kafka Generate Cantabular Downloads Producer") - So(hcMockAddFail.AddCheckCalls()[3].Name, ShouldResemble, "Files API Client") - So(hcMockAddFail.AddCheckCalls()[4].Name, ShouldResemble, "Graph DB") - So(hcMockAddFail.AddCheckCalls()[5].Name, ShouldResemble, "Mongo DB") + So(hcMockAddFail.AddCheckCalls()[3].Name, ShouldResemble, "Kafka Search Content Updated Producer") + So(hcMockAddFail.AddCheckCalls()[4].Name, ShouldResemble, "Files API Client") + So(hcMockAddFail.AddCheckCalls()[5].Name, ShouldResemble, "Graph DB") + So(hcMockAddFail.AddCheckCalls()[6].Name, ShouldResemble, "Mongo DB") }) }) @@ -285,18 +286,19 @@ func TestRun(t *testing.T) { So(svcList.MongoDB, ShouldBeTrue) So(svcList.Graph, ShouldBeTrue) So(svcList.FilesAPIClient, ShouldBeTrue) - So(svcList.GenerateDownloadsProducer, ShouldBeTrue) + So(svcList.KafkaProducer, ShouldBeTrue) So(svcList.HealthCheck, ShouldBeTrue) }) Convey("The checkers are registered and the healthcheck and http server started", func() { - So(len(hcMock.AddCheckCalls()), ShouldEqual, 6) + So(len(hcMock.AddCheckCalls()), ShouldEqual, 7) So(hcMock.AddCheckCalls()[0].Name, ShouldResemble, "Zebedee") So(hcMock.AddCheckCalls()[1].Name, ShouldResemble, "Kafka Generate Downloads Producer") So(hcMock.AddCheckCalls()[2].Name, ShouldResemble, "Kafka Generate Cantabular Downloads Producer") - So(hcMock.AddCheckCalls()[3].Name, ShouldResemble, "Files API Client") - So(hcMock.AddCheckCalls()[4].Name, ShouldResemble, "Graph DB") - So(hcMock.AddCheckCalls()[5].Name, ShouldResemble, "Mongo DB") + So(hcMock.AddCheckCalls()[3].Name, ShouldResemble, "Kafka Search Content Updated Producer") + So(hcMock.AddCheckCalls()[4].Name, ShouldResemble, "Files API Client") + So(hcMock.AddCheckCalls()[5].Name, ShouldResemble, "Graph DB") + So(hcMock.AddCheckCalls()[6].Name, ShouldResemble, "Mongo DB") So(len(initMock.DoGetHTTPServerCalls()), ShouldEqual, 1) So(initMock.DoGetHTTPServerCalls()[0].BindAddr, ShouldEqual, ":22000") So(len(hcMock.StartCalls()), ShouldEqual, 1) @@ -324,7 +326,7 @@ func TestRun(t *testing.T) { So(svcList.MongoDB, ShouldBeTrue) So(svcList.Graph, ShouldBeFalse) So(svcList.FilesAPIClient, ShouldBeFalse) - So(svcList.GenerateDownloadsProducer, ShouldBeFalse) + So(svcList.KafkaProducer, ShouldBeFalse) So(svcList.HealthCheck, ShouldBeTrue) }) @@ -439,12 +441,12 @@ func TestClose(t *testing.T) { }) fullSvcList := &service.ExternalServiceList{ - GenerateDownloadsProducer: true, - Graph: true, - HealthCheck: true, - MongoDB: true, - FilesAPIClient: true, - Init: nil, + KafkaProducer: true, + Graph: true, + HealthCheck: true, + MongoDB: true, + FilesAPIClient: true, + Init: nil, } Convey("Closing the service results in all the initialised dependencies being closed in the expected order", func() { From ab6374b67a54d0a6b44d8038e39368ee2a3117a3 Mon Sep 17 00:00:00 2001 From: Hugh Brace Date: Mon, 8 Dec 2025 14:07:15 +0000 Subject: [PATCH 05/12] Get tests working --- api/api.go | 4 +- api/dataset_test.go | 157 ++++++++++++--------------- api/dimensions_test.go | 4 +- api/editions_test.go | 30 ++--- api/metadata_test.go | 32 +++--- api/static_versions_test.go | 60 +++++----- api/versions.go | 36 +++--- api/versions_test.go | 132 +++++++++++----------- features/static_versions_put.feature | 92 +++++++++------- features/steps/steps.go | 14 ++- service/service.go | 14 +-- 11 files changed, 288 insertions(+), 287 deletions(-) diff --git a/api/api.go b/api/api.go index 524f7ff6..c6305a63 100644 --- a/api/api.go +++ b/api/api.go @@ -77,11 +77,11 @@ type DatasetAPI struct { smDatasetAPI *application.StateMachineDatasetAPI filesAPIClient filesAPISDK.Clienter authToken string - searchContentUpdated *SearchContentUpdated + searchContentUpdated *SearchContentUpdatedProducer } // Setup creates a new Dataset API instance and register the API routes based on the application configuration. -func Setup(ctx context.Context, cfg *config.Configuration, router *mux.Router, dataStore store.DataStore, urlBuilder *url.Builder, downloadGenerators map[models.DatasetType]DownloadsGenerator, datasetPermissions, permissions AuthHandler, enableURLRewriting bool, smDatasetAPI *application.StateMachineDatasetAPI, searchContentUpdated *SearchContentUpdated) *DatasetAPI { +func Setup(ctx context.Context, cfg *config.Configuration, router *mux.Router, dataStore store.DataStore, urlBuilder *url.Builder, downloadGenerators map[models.DatasetType]DownloadsGenerator, datasetPermissions, permissions AuthHandler, enableURLRewriting bool, smDatasetAPI *application.StateMachineDatasetAPI, searchContentUpdated *SearchContentUpdatedProducer) *DatasetAPI { api := &DatasetAPI{ dataStore: dataStore, host: cfg.DatasetAPIURL, diff --git a/api/dataset_test.go b/api/dataset_test.go index 64d97b32..3ef99e7d 100644 --- a/api/dataset_test.go +++ b/api/dataset_test.go @@ -61,17 +61,6 @@ func getAuthorisationHandlerMock() *mocks.AuthHandlerMock { } } -//func getSearchContentUpdatedProducerMock() *SearchContentUpdated { -// producerMock := &mocks.KafkaProducerMock{ -// OutputFunc: func() chan kafka.BytesMessage { -// return make(chan kafka.BytesMessage, 1) -// }, -// } -// return &SearchContentUpdated{ -// Producer: producerMock, -// } -//} - func getSearchContentUpdatedMock() *mocks.KafkaProducerMock { producerMock := &mocks.KafkaProducerMock{ OutputFunc: func() chan kafka.BytesMessage { @@ -83,7 +72,7 @@ func getSearchContentUpdatedMock() *mocks.KafkaProducerMock { } // GetAPIWithCMDMocks also used in other tests, so exported -func GetAPIWithCMDMocks(mockedDataStore store.Storer, mockedGeneratedDownloads DownloadsGenerator, datasetPermissions, permissions AuthHandler, searchContentUpdated SearchContentUpdated) *DatasetAPI { +func GetAPIWithCMDMocks(mockedDataStore store.Storer, mockedGeneratedDownloads DownloadsGenerator, datasetPermissions, permissions AuthHandler, searchContentUpdated SearchContentUpdatedProducer) *DatasetAPI { mu.Lock() defer mu.Unlock() cfg, err := config.Get() @@ -105,17 +94,7 @@ func GetAPIWithCMDMocks(mockedDataStore store.Storer, mockedGeneratedDownloads D models.CantabularTable: mockedGeneratedDownloads, models.CantabularFlexibleTable: mockedGeneratedDownloads, } - - //producerMock := &mocks.KafkaProducerMock{ - // OutputFunc: func() chan kafka.BytesMessage { - // return nil - // }, - //} - // - //searchContentUpdated := SearchContentUpdated{ - // Producer: producerMock, - //} - + states := []application.State{application.Published, application.EditionConfirmed, application.Associated} transitions := []application.Transition{{ Label: "published", @@ -277,7 +256,7 @@ func TestGetDatasetsReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 11, 12) @@ -302,7 +281,7 @@ func TestGetDatasetsReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 11, 12) @@ -327,7 +306,7 @@ func TestGetDatasetsReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 11, 12) So(actualResponse, ShouldResemble, []*models.Dataset{{ID: "123-456", Type: "static", IsBasedOn: &models.IsBasedOn{ID: "Example"}}}) @@ -357,7 +336,7 @@ func TestGetDatasetsReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 10, 0) @@ -390,7 +369,7 @@ func TestGetDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 6, 7) assertInternalServerErr(w) @@ -418,7 +397,7 @@ func TestGetDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 6, 7) So(len(mockedDataStore.GetDatasetsCalls()), ShouldEqual, 0) @@ -442,7 +421,7 @@ func TestGetDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 6, 7) So(len(mockedDataStore.GetDatasetsCalls()), ShouldEqual, 0) @@ -470,7 +449,7 @@ func TestGetDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) actualResponse, actualTotalCount, err := api.getDatasets(w, r, 6, 7) So(len(mockedDataStore.GetDatasetsByQueryParamsCalls()), ShouldEqual, 1) @@ -497,7 +476,7 @@ func TestGetDatasetReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -518,7 +497,7 @@ func TestGetDatasetReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -541,7 +520,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -561,7 +540,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -583,7 +562,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -608,7 +587,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -637,7 +616,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -666,7 +645,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -695,7 +674,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -724,7 +703,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -753,7 +732,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -782,7 +761,7 @@ func TestGetDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -811,7 +790,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -843,7 +822,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -875,7 +854,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -907,7 +886,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -939,7 +918,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -971,7 +950,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -1005,7 +984,7 @@ func TestPostDatasetsReturnsCreated(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -1038,7 +1017,7 @@ func TestPostDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusConflict) @@ -1070,7 +1049,7 @@ func TestPostDatasetsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -1105,7 +1084,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1137,7 +1116,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -1166,7 +1145,7 @@ func TestPostDatasetReturnsError(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusUnauthorized) @@ -1202,7 +1181,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusConflict) @@ -1235,7 +1214,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Body.String(), ShouldResemble, "invalid fields: [QMI]\n") @@ -1266,7 +1245,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Body.String(), ShouldResemble, "invalid fields: [QMI]\n") @@ -1297,7 +1276,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Body.String(), ShouldResemble, "invalid fields: [QMI]\n") @@ -1328,7 +1307,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1362,7 +1341,7 @@ func TestPostDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusCreated) @@ -1398,7 +1377,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1445,7 +1424,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1493,7 +1472,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1525,7 +1504,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1557,7 +1536,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1589,7 +1568,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1621,7 +1600,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1653,7 +1632,7 @@ func TestPutDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1687,7 +1666,7 @@ func TestPutDatasetReturnsError(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1720,7 +1699,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -1753,7 +1732,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -1789,7 +1768,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1822,7 +1801,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1855,7 +1834,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1886,7 +1865,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusUnauthorized) @@ -1920,7 +1899,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusConflict) @@ -1953,7 +1932,7 @@ func TestPutDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -1990,7 +1969,7 @@ func TestDeleteDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNoContent) @@ -2024,7 +2003,7 @@ func TestDeleteDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNoContent) @@ -2097,7 +2076,7 @@ func TestDeleteDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.filesAPIClient = &mockFilesAPIClient api.Router.ServeHTTP(w, r) @@ -2137,7 +2116,7 @@ func TestDeleteDatasetReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2169,7 +2148,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusForbidden) @@ -2200,7 +2179,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -2230,7 +2209,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNoContent) @@ -2261,7 +2240,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -2281,7 +2260,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { mockedDataStore := &storetest.StorerMock{} datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusUnauthorized) @@ -2336,7 +2315,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -2388,7 +2367,7 @@ func TestDeleteDatasetReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.filesAPIClient = &mockFilesAPIClient api.Router.ServeHTTP(w, r) diff --git a/api/dimensions_test.go b/api/dimensions_test.go index 1c07dbcd..5ae9ac84 100644 --- a/api/dimensions_test.go +++ b/api/dimensions_test.go @@ -19,7 +19,7 @@ import ( func initAPIWithMockedStore(mockedStore *storetest.StorerMock) *DatasetAPI { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - return GetAPIWithCMDMocks(mockedStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + return GetAPIWithCMDMocks(mockedStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) } func TestGetDimensionsReturnsOk(t *testing.T) { @@ -39,7 +39,7 @@ func TestGetDimensionsReturnsOk(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) diff --git a/api/editions_test.go b/api/editions_test.go index 9029640e..b07f3de2 100644 --- a/api/editions_test.go +++ b/api/editions_test.go @@ -63,7 +63,7 @@ func TestGetEditionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) list, totalCount, err := api.getEditions(w, r, 20, 0) So(w.Code, ShouldEqual, http.StatusOK) @@ -255,7 +255,7 @@ func TestGetEditionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) _, totalCount, _ := api.getEditions(w, r, 20, 0) editions, err := utils.MapVersionsToEditionUpdate(publishedLatestVersion, nil) @@ -475,7 +475,7 @@ func TestGetEditionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) _, totalCount, _ := api.getEditions(w, r, 20, 0) editions, err := utils.MapVersionsToEditionUpdate(publishedLatestVersion, unpublishedLatestVersion) @@ -505,7 +505,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -531,7 +531,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -560,7 +560,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -588,7 +588,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -616,7 +616,7 @@ func TestGetEditionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -644,7 +644,7 @@ func TestGetEditionReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -669,7 +669,7 @@ func TestGetEditionReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -694,7 +694,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -718,7 +718,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -745,7 +745,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -771,7 +771,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -797,7 +797,7 @@ func TestGetEditionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) diff --git a/api/metadata_test.go b/api/metadata_test.go index 8a5dfcf6..926f81c8 100644 --- a/api/metadata_test.go +++ b/api/metadata_test.go @@ -60,7 +60,7 @@ func TestPutMetadata(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) edition := version.Edition versionNo := strconv.Itoa(version.Version) @@ -300,7 +300,7 @@ func TestGetMetadataReturnsOk(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -360,7 +360,7 @@ func TestGetMetadataReturnsOk(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -422,7 +422,7 @@ func TestGetMetadataReturnsOk(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -480,7 +480,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -508,7 +508,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -542,7 +542,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -576,7 +576,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -610,7 +610,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -639,7 +639,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -674,7 +674,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -695,7 +695,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -718,7 +718,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -741,7 +741,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -779,7 +779,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -820,7 +820,7 @@ func TestGetMetadataReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) diff --git a/api/static_versions_test.go b/api/static_versions_test.go index 634cfacb..a1b88563 100644 --- a/api/static_versions_test.go +++ b/api/static_versions_test.go @@ -70,7 +70,7 @@ func TestGetDatasetEditions_WithQueryParam_Success(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -149,7 +149,7 @@ func TestGetDatasetEditions_WithPublishedParam(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -190,7 +190,7 @@ func TestGetDatasetEditions_WithPublishedParam(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -212,7 +212,7 @@ func TestGetDatasetEditions_WithPublishedParam(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -296,7 +296,7 @@ func TestGetDatasetEditions_WithoutQueryParam_Success(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -366,7 +366,7 @@ func TestGetDatasetEditions_InvalidQueryParam_Failure(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called", func() { results, totalCount, err := api.getDatasetEditions(w, r, 20, 0) @@ -395,7 +395,7 @@ func TestGetDatasetEditions_GetStaticVersionsByState_Failure(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called and no versions are found", func() { r := createRequestWithAuth("GET", "http://localhost:22000/dataset-editions?state=associated", http.NoBody) @@ -444,7 +444,7 @@ func TestGetDatasetEditions_GetDataset_Failure(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called and the dataset is not found", func() { r := createRequestWithAuth("GET", "http://localhost:22000/dataset-editions", http.NoBody) @@ -477,7 +477,7 @@ func TestGetDatasetEditions_GetDataset_Failure(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("When getDatasetEditions is called and the datastore fails", func() { r := createRequestWithAuth("GET", "http://localhost:22000/dataset-editions", http.NoBody) @@ -552,7 +552,7 @@ func TestAddDatasetVersionCondensed_Success(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(successResponse.Status, ShouldEqual, http.StatusCreated) @@ -625,7 +625,7 @@ func TestAddDatasetVersionCondensed_Success(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, getAuthorisationHandlerMock(), getAuthorisationHandlerMock(), SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, getAuthorisationHandlerMock(), getAuthorisationHandlerMock(), SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(successResponse.Status, ShouldEqual, http.StatusCreated) @@ -722,7 +722,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) castErr := errorResponse.Errors[0] @@ -769,7 +769,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(successResponse.Status, ShouldEqual, http.StatusCreated) @@ -803,7 +803,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(errorResponse.Status, ShouldEqual, http.StatusInternalServerError) @@ -889,7 +889,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(errorResponse.Status, ShouldEqual, http.StatusNotFound) @@ -989,7 +989,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) @@ -1076,7 +1076,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(errorResponse.Status, ShouldEqual, http.StatusBadRequest) @@ -1142,7 +1142,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(errorResponse.Status, ShouldEqual, http.StatusBadRequest) @@ -1356,7 +1356,7 @@ func TestCreateVersion_Success(t *testing.T) { returnedVersionJSON, err := json.Marshal(expectedVersion) So(err, ShouldBeNil) - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1433,7 +1433,7 @@ func TestCreateVersion_Failure(t *testing.T) { permissions := getAuthorisationHandlerMock() Convey("When the JSON body provided is invalid", t, func() { - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/invalid", http.NoBody) vars := map[string]string{ "dataset_id": "123", @@ -1459,7 +1459,7 @@ func TestCreateVersion_Failure(t *testing.T) { validVersionJSON, err := json.Marshal(validVersion) So(err, ShouldBeNil) - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/invalid", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1488,7 +1488,7 @@ func TestCreateVersion_Failure(t *testing.T) { invalidTypeVersionJSON, err := json.Marshal(invalidTypeVersion) So(err, ShouldBeNil) - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(invalidTypeVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1518,7 +1518,7 @@ func TestCreateVersion_Failure(t *testing.T) { invalidVersionJSON, err := json.Marshal(invalidVersion) So(err, ShouldBeNil) - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/100", bytes.NewBuffer(invalidVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1556,7 +1556,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1588,7 +1588,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1623,7 +1623,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1658,7 +1658,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1696,7 +1696,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1734,7 +1734,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", @@ -1775,7 +1775,7 @@ func TestCreateVersion_Failure(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth("POST", "http://localhost:22000/datasets/123/editions/edition1/versions/1", bytes.NewBuffer(validVersionJSON)) vars := map[string]string{ "dataset_id": "123", diff --git a/api/versions.go b/api/versions.go index 215803cc..7bb9e9b1 100644 --- a/api/versions.go +++ b/api/versions.go @@ -51,7 +51,7 @@ var ( } ) -type SearchContentUpdated struct { +type SearchContentUpdatedProducer struct { Producer KafkaProducer } @@ -851,24 +851,26 @@ func (api *DatasetAPI) putState(w http.ResponseWriter, r *http.Request) { } if updatedVersion.State == models.PublishedState { - searchContentUpdatedEvent := map[string]interface{}{ - "uri": updatedVersion.Links.Version.HRef, - "title": updatedVersion.Edition, - "content_type": updatedVersion.Type, - } - jsonBytes, err := json.Marshal(searchContentUpdatedEvent) - if err != nil { - log.Error(ctx, "failed to marshal searchContentUpdatedEvent for kafka: %w", err, logData) - } + if api.searchContentUpdated != nil && api.searchContentUpdated.Producer != nil { + searchContentUpdatedEvent := map[string]interface{}{ + "dataset_id": updatedVersion.DatasetID, + "uri": updatedVersion.Links.Version.HRef, + "title": updatedVersion.Edition, + "content_type": updatedVersion.Type, + } - api.searchContentUpdated.Producer.Output() <- kafka.BytesMessage{Value: jsonBytes, Context: ctx} - if err != nil { - log.Error(ctx, "putState endpoint: failed to send search content update", err, logData) - handleVersionAPIErr(ctx, err, w, logData) - return + jsonBytes, err := json.Marshal(searchContentUpdatedEvent) + if err != nil { + log.Error(ctx, "failed to marshal searchContentUpdatedEvent for kafka", err, logData) + } else { + go func() { + api.searchContentUpdated.Producer.Output() <- kafka.BytesMessage{Value: jsonBytes, Context: ctx} + log.Info(ctx, "putState endpoint: sent search content update to kafka", logData) + }() + } + } else { + log.Info(ctx, "putState endpoint: search content producer not initialized, skipping kafka event", logData) } - log.Info(ctx, "putState endpoint: sent search content update to kafka", logData) - } setJSONContentType(w) diff --git a/api/versions_test.go b/api/versions_test.go index 0b1800b4..d9894ba6 100644 --- a/api/versions_test.go +++ b/api/versions_test.go @@ -73,7 +73,7 @@ func TestGetVersionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) list, totalCount, err := api.getVersions(w, r, 20, 0) So(w.Code, ShouldEqual, http.StatusOK) @@ -108,7 +108,7 @@ func TestGetVersionsReturnsOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) list, totalCount, err := api.getVersions(w, r, 20, 0) So(w.Code, ShouldEqual, http.StatusOK) @@ -143,7 +143,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -167,7 +167,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -195,7 +195,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -227,7 +227,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -258,7 +258,7 @@ func TestGetVersionsReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) _, _, err := api.getVersions(w, r, 20, 0) So(err, ShouldNotBeNil) @@ -293,7 +293,7 @@ func TestGetVersionsReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -339,7 +339,7 @@ func TestGetVersionReturnsOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) Convey("With an etag", func() { version.ETag = "version-etag" @@ -399,7 +399,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) assertInternalServerErr(w) @@ -420,7 +420,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -451,7 +451,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -485,7 +485,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -518,7 +518,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -539,7 +539,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -560,7 +560,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -579,7 +579,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -620,7 +620,7 @@ func TestGetVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusInternalServerError) @@ -700,7 +700,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { permissions := getAuthorisationHandlerMock() Convey("Given a valid request is executed", func() { - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) Convey("Then the request is successful, with the expected calls", func() { @@ -737,7 +737,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { return "", nil } - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) Convey("Then the request is successful, with the expected calls including the update retry", func() { @@ -930,7 +930,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -981,7 +981,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { UnlockInstanceFunc: func(context.Context, string) {}, } - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1108,7 +1108,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) ctx := context.Background() @@ -1251,7 +1251,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1511,7 +1511,7 @@ func updateVersionDownloadTest(r *http.Request) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusOK) @@ -1592,7 +1592,7 @@ func TestPutVersionGenerateDownloadsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, mockDownloadGenerator, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, mockDownloadGenerator, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) Convey("then an internal server error response is returned", func() { @@ -1685,7 +1685,7 @@ func TestPutEmptyVersion(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) Convey("then a http status ok is returned", func() { @@ -1749,7 +1749,7 @@ func TestPutEmptyVersion(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) Convey("then a http status ok is returned", func() { @@ -1807,7 +1807,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusBadRequest) @@ -1847,7 +1847,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -1891,7 +1891,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -1926,7 +1926,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -1961,7 +1961,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2017,7 +2017,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2071,7 +2071,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -2128,7 +2128,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusNotFound) @@ -2168,7 +2168,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2209,7 +2209,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) So(w.Code, ShouldEqual, http.StatusForbidden) @@ -2273,7 +2273,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2409,7 +2409,7 @@ func TestPutVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2810,7 +2810,7 @@ func TestDetachVersionReturnOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2877,7 +2877,7 @@ func TestDetachVersionReturnOK(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2926,7 +2926,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2961,7 +2961,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -2999,7 +2999,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3040,7 +3040,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3081,7 +3081,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3130,7 +3130,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3182,7 +3182,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3222,7 +3222,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3250,7 +3250,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3278,7 +3278,7 @@ func TestDetachVersionReturnsError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3330,7 +3330,7 @@ func TestDeleteVersionStaticDatasetReturnOK(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3360,7 +3360,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3402,7 +3402,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3444,7 +3444,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3494,7 +3494,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3530,7 +3530,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3569,7 +3569,7 @@ func TestDeleteVersionStaticDatasetReturnError(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3740,7 +3740,7 @@ func TestPutStateReturnsOk(t *testing.T) { permissions := getAuthorisationHandlerMock() scuProducerMock := getSearchContentUpdatedMock() - searchContentUpdated := SearchContentUpdated{Producer: scuProducerMock} + searchContentUpdated := SearchContentUpdatedProducer{Producer: scuProducerMock} api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, searchContentUpdated) api.Router.ServeHTTP(w, r) @@ -3768,7 +3768,7 @@ func TestPutStateReturnsError(t *testing.T) { mockedDataStore := &storetest.StorerMock{} permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) api.putState(w, r) @@ -3784,7 +3784,7 @@ func TestPutStateReturnsError(t *testing.T) { mockedDataStore := &storetest.StorerMock{} permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3800,7 +3800,7 @@ func TestPutStateReturnsError(t *testing.T) { mockedDataStore := &storetest.StorerMock{} permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3819,7 +3819,7 @@ func TestPutStateReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -3838,7 +3838,7 @@ func TestPutStateReturnsError(t *testing.T) { } permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, permissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) @@ -4213,7 +4213,7 @@ func TestPutVersionEditionValidationNonStatic(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdated{}) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) diff --git a/features/static_versions_put.feature b/features/static_versions_put.feature index 2aa15814..2726daf6 100644 --- a/features/static_versions_put.feature +++ b/features/static_versions_put.feature @@ -392,49 +392,59 @@ Feature: Static Dataset Versions PUT API """ Then the HTTP status code should be "200" - Scenario: PUT state handles idempotent transitions correctly - Given I have a static dataset with version: - """ - { - "dataset": { - "id": "static-dataset-published", - "title": "Static Dataset Published Test", - "state": "published", - "type": "static" - }, - "version": { - "id": "static-version-published", - "edition": "2025", - "edition_title": "2025 Edition", - "links": { - "dataset": { - "id": "static-dataset-published" - }, - "edition": { - "href": "/datasets/static-dataset-published/editions/2025", - "id": "2025" - }, - "self": { - "href": "/datasets/static-dataset-published/editions/2025/versions/1" - } + Scenario: PUT state handles idempotent transitions correctly + Given I have a static dataset with version: + """ + { + "dataset": { + "id": "static-dataset-published", + "title": "Static Dataset Published Test", + "state": "published", + "type": "static" + }, + "version": { + "id": "static-version-published", + "edition": "2025", + "edition_title": "2025 Edition", + "links": { + "dataset": { + "id": "static-dataset-published" }, - "version": 1, - "release_date": "2025-01-01T09:00:00.000Z", - "state": "published", - "type": "static" - } - } - """ - And private endpoints are enabled - And I am identified as "user@ons.gov.uk" - And I am authorised - When I PUT "/datasets/static-dataset-published/editions/2025/versions/1/state" - """ - { - "state": "published" + "edition": { + "href": "/datasets/static-dataset-published/editions/2025", + "id": "2025" + }, + "self": { + "href": "/datasets/static-dataset-published/editions/2025/versions/1" + } + }, + "version": 1, + "release_date": "2025-01-01T09:00:00.000Z", + "state": "published", + "type": "static" } - """ - Then the HTTP status code should be "200" + } + """ + And private endpoints are enabled + And I am identified as "user@ons.gov.uk" + And I have a real kafka container with topic "search-content-updated" + And I am authorised + When I PUT "/datasets/static-dataset-published/editions/2025/versions/1/state" + """ + { + "state": "published" + } + """ + Then the HTTP status code should be "200" + And these kafka messages are produced: + """ + { + "content_type": "static", + "dataset_id": "", + "title": "2025", + "uri": "/datasets/static-dataset-published/editions/2025/versions/1" + } + """ Scenario: PUT succeeds when updating edition ID to unique value within series Given private endpoints are enabled diff --git a/features/steps/steps.go b/features/steps/steps.go index 96fe54fa..54599591 100644 --- a/features/steps/steps.go +++ b/features/steps/steps.go @@ -275,7 +275,17 @@ func (c *DatasetComponent) theseCantabularGeneratorDownloadsEventsAreProduced(ev return nil } -func (c *DatasetComponent) theseKafkaMessagesAreProduced(events *godog.Table) error { +func (c *DatasetComponent) theseKafkaMessagesAreProduced(kafkaJSON *godog.DocString) error { + var expectedPayload interface{} + if err := json.Unmarshal([]byte(kafkaJSON.Content), &expectedPayload); err != nil { + return fmt.Errorf("failed to unmarshal kafkaJSON: %w", err) + } + expectedJSON, err := json.Marshal(expectedPayload) + if err != nil { + return fmt.Errorf("failed to marshal expected payload: %w", err) + } + expected := []string{string(expectedJSON)} + messages := []string{} listen := true @@ -295,7 +305,7 @@ func (c *DatasetComponent) theseKafkaMessagesAreProduced(events *godog.Table) er } } - if diff := cmp.Diff(messages, events); diff != "" { + if diff := cmp.Diff(messages, expected); diff != "" { return fmt.Errorf("-got +expected)\n%s", diff) } return nil diff --git a/service/service.go b/service/service.go index 73f16988..4295c916 100644 --- a/service/service.go +++ b/service/service.go @@ -49,7 +49,7 @@ type Service struct { mongoDB store.MongoDB generateCMDDownloadsProducer kafka.IProducer generateCantabularDownloadsProducer kafka.IProducer - searchContentUpdatedProducer kafka.IProducer + searchContentUpdatedKafkaProducer kafka.IProducer identityClient *clientsidentity.Client filesAPIClient filesAPISDK.Clienter server HTTPServer @@ -251,7 +251,7 @@ func (svc *Service) Run(ctx context.Context, buildTime, gitCommit, version strin log.Fatal(ctx, "could not obtain generate downloads producer for cantabular", err) return err } - svc.searchContentUpdatedProducer, err = svc.serviceList.GetProducer(ctx, svc.config, svc.config.SearchContentUpdatedTopic) + svc.searchContentUpdatedKafkaProducer, err = svc.serviceList.GetProducer(ctx, svc.config, svc.config.SearchContentUpdatedTopic) if err != nil { log.Fatal(ctx, "could not obtain search content updated producer", err) return err @@ -268,8 +268,8 @@ func (svc *Service) Run(ctx context.Context, buildTime, gitCommit, version strin Marshaller: schema.GenerateCMDDownloadsEvent, } - searchContentUpdated := &api.SearchContentUpdated{ - Producer: adapter.NewProducerAdapter(svc.searchContentUpdatedProducer), + searchContentUpdatedProducer := &api.SearchContentUpdatedProducer{ + Producer: adapter.NewProducerAdapter(svc.searchContentUpdatedKafkaProducer), } downloadGenerators := map[models.DatasetType]api.DownloadsGenerator{ @@ -329,7 +329,7 @@ func (svc *Service) Run(ctx context.Context, buildTime, gitCommit, version strin datasetPermissions, permissions := getAuthorisationHandlers(ctx, svc.config) sm := GetStateMachine(ctx, ds) svc.smDS = application.Setup(ds, smDownloadGenerators, sm) - svc.api = api.Setup(ctx, svc.config, r, ds, urlBuilder, downloadGenerators, datasetPermissions, permissions, enableURLRewriting, svc.smDS, searchContentUpdated) + svc.api = api.Setup(ctx, svc.config, r, ds, urlBuilder, downloadGenerators, datasetPermissions, permissions, enableURLRewriting, svc.smDS, searchContentUpdatedProducer) // Set the files API client on the DatasetAPI after initialisation if svc.config.EnablePrivateEndpoints && svc.filesAPIClient != nil { @@ -343,7 +343,7 @@ func (svc *Service) Run(ctx context.Context, buildTime, gitCommit, version strin if svc.config.EnablePrivateEndpoints { svc.generateCMDDownloadsProducer.LogErrors(ctx) svc.generateCantabularDownloadsProducer.LogErrors(ctx) - svc.searchContentUpdatedProducer.LogErrors(ctx) + svc.searchContentUpdatedKafkaProducer.LogErrors(ctx) } // Run the http server in a new go-routine @@ -578,7 +578,7 @@ func (svc *Service) registerCheckers(ctx context.Context) (err error) { log.Error(ctx, "error adding check for cantabular kafka downloads producer", err) } - if err = svc.healthCheck.AddCheck("Kafka Search Content Updated Producer", svc.searchContentUpdatedProducer.Checker); err != nil { + if err = svc.healthCheck.AddCheck("Kafka Search Content Updated Producer", svc.searchContentUpdatedKafkaProducer.Checker); err != nil { hasErrors = true log.Error(ctx, "error adding check for search content updated kafka producer", err) } From ae6812ed25b7b3a5bcb5e0e13044921820ea945c Mon Sep 17 00:00:00 2001 From: Hugh Brace Date: Mon, 8 Dec 2025 14:14:00 +0000 Subject: [PATCH 06/12] Rename producer --- api/api.go | 82 ++++++++++++++++++++++++------------------------- api/versions.go | 4 +-- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/api/api.go b/api/api.go index c6305a63..6a0c6cbd 100644 --- a/api/api.go +++ b/api/api.go @@ -57,51 +57,51 @@ type AuthHandler interface { // DatasetAPI manages importing filters against a dataset type DatasetAPI struct { - Router *mux.Router - dataStore store.DataStore - urlBuilder *url.Builder - enableURLRewriting bool - host string - downloadServiceToken string - EnablePrePublishView bool - downloadGenerators map[models.DatasetType]DownloadsGenerator - enablePrivateEndpoints bool - enableDetachDataset bool - enableDeleteStaticVersion bool - datasetPermissions AuthHandler - permissions AuthHandler - instancePublishedChecker *instance.PublishCheck - versionPublishedChecker *PublishCheck - MaxRequestOptions int - defaultLimit int - smDatasetAPI *application.StateMachineDatasetAPI - filesAPIClient filesAPISDK.Clienter - authToken string - searchContentUpdated *SearchContentUpdatedProducer + Router *mux.Router + dataStore store.DataStore + urlBuilder *url.Builder + enableURLRewriting bool + host string + downloadServiceToken string + EnablePrePublishView bool + downloadGenerators map[models.DatasetType]DownloadsGenerator + enablePrivateEndpoints bool + enableDetachDataset bool + enableDeleteStaticVersion bool + datasetPermissions AuthHandler + permissions AuthHandler + instancePublishedChecker *instance.PublishCheck + versionPublishedChecker *PublishCheck + MaxRequestOptions int + defaultLimit int + smDatasetAPI *application.StateMachineDatasetAPI + filesAPIClient filesAPISDK.Clienter + authToken string + searchContentUpdatedProducer *SearchContentUpdatedProducer } // Setup creates a new Dataset API instance and register the API routes based on the application configuration. -func Setup(ctx context.Context, cfg *config.Configuration, router *mux.Router, dataStore store.DataStore, urlBuilder *url.Builder, downloadGenerators map[models.DatasetType]DownloadsGenerator, datasetPermissions, permissions AuthHandler, enableURLRewriting bool, smDatasetAPI *application.StateMachineDatasetAPI, searchContentUpdated *SearchContentUpdatedProducer) *DatasetAPI { +func Setup(ctx context.Context, cfg *config.Configuration, router *mux.Router, dataStore store.DataStore, urlBuilder *url.Builder, downloadGenerators map[models.DatasetType]DownloadsGenerator, datasetPermissions, permissions AuthHandler, enableURLRewriting bool, smDatasetAPI *application.StateMachineDatasetAPI, searchContentUpdatedProducer *SearchContentUpdatedProducer) *DatasetAPI { api := &DatasetAPI{ - dataStore: dataStore, - host: cfg.DatasetAPIURL, - downloadServiceToken: cfg.DownloadServiceSecretKey, - EnablePrePublishView: cfg.EnablePrivateEndpoints, - Router: router, - urlBuilder: urlBuilder, - enableURLRewriting: enableURLRewriting, - downloadGenerators: downloadGenerators, - enablePrivateEndpoints: cfg.EnablePrivateEndpoints, - enableDetachDataset: cfg.EnableDetachDataset, - enableDeleteStaticVersion: cfg.EnableDeleteStaticVersion, - datasetPermissions: datasetPermissions, - permissions: permissions, - versionPublishedChecker: nil, - instancePublishedChecker: nil, - MaxRequestOptions: cfg.MaxRequestOptions, - defaultLimit: cfg.DefaultLimit, - smDatasetAPI: smDatasetAPI, - searchContentUpdated: searchContentUpdated, + dataStore: dataStore, + host: cfg.DatasetAPIURL, + downloadServiceToken: cfg.DownloadServiceSecretKey, + EnablePrePublishView: cfg.EnablePrivateEndpoints, + Router: router, + urlBuilder: urlBuilder, + enableURLRewriting: enableURLRewriting, + downloadGenerators: downloadGenerators, + enablePrivateEndpoints: cfg.EnablePrivateEndpoints, + enableDetachDataset: cfg.EnableDetachDataset, + enableDeleteStaticVersion: cfg.EnableDeleteStaticVersion, + datasetPermissions: datasetPermissions, + permissions: permissions, + versionPublishedChecker: nil, + instancePublishedChecker: nil, + MaxRequestOptions: cfg.MaxRequestOptions, + defaultLimit: cfg.DefaultLimit, + smDatasetAPI: smDatasetAPI, + searchContentUpdatedProducer: searchContentUpdatedProducer, } paginator := pagination.NewPaginator(cfg.DefaultLimit, cfg.DefaultOffset, cfg.DefaultMaxLimit) diff --git a/api/versions.go b/api/versions.go index 7bb9e9b1..5935db57 100644 --- a/api/versions.go +++ b/api/versions.go @@ -851,7 +851,7 @@ func (api *DatasetAPI) putState(w http.ResponseWriter, r *http.Request) { } if updatedVersion.State == models.PublishedState { - if api.searchContentUpdated != nil && api.searchContentUpdated.Producer != nil { + if api.searchContentUpdatedProducer != nil && api.searchContentUpdatedProducer.Producer != nil { searchContentUpdatedEvent := map[string]interface{}{ "dataset_id": updatedVersion.DatasetID, "uri": updatedVersion.Links.Version.HRef, @@ -864,7 +864,7 @@ func (api *DatasetAPI) putState(w http.ResponseWriter, r *http.Request) { log.Error(ctx, "failed to marshal searchContentUpdatedEvent for kafka", err, logData) } else { go func() { - api.searchContentUpdated.Producer.Output() <- kafka.BytesMessage{Value: jsonBytes, Context: ctx} + api.searchContentUpdatedProducer.Producer.Output() <- kafka.BytesMessage{Value: jsonBytes, Context: ctx} log.Info(ctx, "putState endpoint: sent search content update to kafka", logData) }() } From fd02a9ae134c898da66ef87f3294279e8e39e15d Mon Sep 17 00:00:00 2001 From: Hugh Brace Date: Mon, 8 Dec 2025 15:57:05 +0000 Subject: [PATCH 07/12] Fix tests after rebase --- api/static_versions_test.go | 10 ++++++---- api/versions_test.go | 8 ++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/api/static_versions_test.go b/api/static_versions_test.go index a1b88563..e5470d41 100644 --- a/api/static_versions_test.go +++ b/api/static_versions_test.go @@ -679,7 +679,7 @@ func TestAddDatasetVersionCondensed_Success(t *testing.T) { } api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, - getAuthorisationHandlerMock(), getAuthorisationHandlerMock()) + getAuthorisationHandlerMock(), getAuthorisationHandlerMock(), SearchContentUpdatedProducer{}) success, failure := api.addDatasetVersionCondensed(w, r) @@ -1034,7 +1034,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { } datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, datasetPermissions, permissions, SearchContentUpdatedProducer{}) successResponse, errorResponse := api.addDatasetVersionCondensed(w, r) So(errorResponse.Status, ShouldEqual, http.StatusConflict) @@ -1176,6 +1176,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { &mocks.DownloadsGeneratorMock{}, getAuthorisationHandlerMock(), getAuthorisationHandlerMock(), + SearchContentUpdatedProducer{}, ) success, errResp := api.addDatasetVersionCondensed(w, r) @@ -1210,6 +1211,7 @@ func TestAddDatasetVersionCondensed_Failure(t *testing.T) { &mocks.DownloadsGeneratorMock{}, getAuthorisationHandlerMock(), getAuthorisationHandlerMock(), + SearchContentUpdatedProducer{}, ) success, errResp := api.addDatasetVersionCondensed(w, r) @@ -1816,7 +1818,7 @@ func TestCreateVersion_Failure(t *testing.T) { } api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, - datasetPermissions, permissions) + datasetPermissions, permissions, SearchContentUpdatedProducer{}) r := createRequestWithAuth( "POST", @@ -1879,7 +1881,7 @@ func TestCreateVersion_Failure(t *testing.T) { } api := GetAPIWithCMDMocks(mockedDataStore, &mocks.DownloadsGeneratorMock{}, - getAuthorisationHandlerMock(), getAuthorisationHandlerMock()) + getAuthorisationHandlerMock(), getAuthorisationHandlerMock(), SearchContentUpdatedProducer{}) success, errResp := api.createVersion(w, r) diff --git a/api/versions_test.go b/api/versions_test.go index d9894ba6..0f5f3733 100644 --- a/api/versions_test.go +++ b/api/versions_test.go @@ -803,7 +803,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) Convey("Then it returns a 409 Conflict status", func() { @@ -861,7 +861,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { datasetPermissions := getAuthorisationHandlerMock() permissions := getAuthorisationHandlerMock() - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, datasetPermissions, permissions, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) Convey("Then it returns a 409 Conflict status", func() { @@ -2467,7 +2467,7 @@ func TestPutVersionReturnsError(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mocked, &mocks.DownloadsGeneratorMock{}, getAuthorisationHandlerMock(), getAuthorisationHandlerMock()) + api := GetAPIWithCMDMocks(mocked, &mocks.DownloadsGeneratorMock{}, getAuthorisationHandlerMock(), getAuthorisationHandlerMock(), SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) Convey("Then the API returns 400 with missing-format error", func() { @@ -2509,7 +2509,7 @@ func TestPutVersionReturnsError(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mocked, &mocks.DownloadsGeneratorMock{}, getAuthorisationHandlerMock(), getAuthorisationHandlerMock()) + api := GetAPIWithCMDMocks(mocked, &mocks.DownloadsGeneratorMock{}, getAuthorisationHandlerMock(), getAuthorisationHandlerMock(), SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) Convey("Then API returns 400 with invalid-format error", func() { From 26ce04b594105f81458bf4af0e46d5f0a1d0f6f4 Mon Sep 17 00:00:00 2001 From: Hugh Brace Date: Mon, 8 Dec 2025 16:24:02 +0000 Subject: [PATCH 08/12] Linting problems --- api/dataset_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/dataset_test.go b/api/dataset_test.go index 3ef99e7d..34f563db 100644 --- a/api/dataset_test.go +++ b/api/dataset_test.go @@ -94,7 +94,7 @@ func GetAPIWithCMDMocks(mockedDataStore store.Storer, mockedGeneratedDownloads D models.CantabularTable: mockedGeneratedDownloads, models.CantabularFlexibleTable: mockedGeneratedDownloads, } - + states := []application.State{application.Published, application.EditionConfirmed, application.Associated} transitions := []application.Transition{{ Label: "published", From 08951286a4cfc79f56502e99347aff9873525bb5 Mon Sep 17 00:00:00 2001 From: Hugh Brace Date: Fri, 12 Dec 2025 08:55:06 +0000 Subject: [PATCH 09/12] Fix linting issues --- api/api.go | 80 +++++++++++++++++++++---------------------- service/initialise.go | 14 ++++---- 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/api/api.go b/api/api.go index a67799ff..eb7d65ac 100644 --- a/api/api.go +++ b/api/api.go @@ -64,52 +64,52 @@ type DownloadsGenerator interface { // DatasetAPI manages importing filters against a dataset type DatasetAPI struct { - Router *mux.Router - dataStore store.DataStore - urlBuilder *url.Builder - enableURLRewriting bool - host string - downloadServiceToken string - EnablePrePublishView bool - downloadGenerators map[models.DatasetType]DownloadsGenerator - enablePrivateEndpoints bool - enableDetachDataset bool - enableDeleteStaticVersion bool - authMiddleware auth.Middleware - instancePublishedChecker *instance.PublishCheck - versionPublishedChecker *PublishCheck - MaxRequestOptions int - defaultLimit int - smDatasetAPI *application.StateMachineDatasetAPI - filesAPIClient filesAPISDK.Clienter - authToken string - permissionsChecker auth.PermissionsChecker - idClient *clientsidentity.Client + Router *mux.Router + dataStore store.DataStore + urlBuilder *url.Builder + enableURLRewriting bool + host string + downloadServiceToken string + EnablePrePublishView bool + downloadGenerators map[models.DatasetType]DownloadsGenerator + enablePrivateEndpoints bool + enableDetachDataset bool + enableDeleteStaticVersion bool + authMiddleware auth.Middleware + instancePublishedChecker *instance.PublishCheck + versionPublishedChecker *PublishCheck + MaxRequestOptions int + defaultLimit int + smDatasetAPI *application.StateMachineDatasetAPI + filesAPIClient filesAPISDK.Clienter + authToken string + permissionsChecker auth.PermissionsChecker + idClient *clientsidentity.Client searchContentUpdatedProducer *SearchContentUpdatedProducer } // Setup creates a new Dataset API instance and register the API routes based on the application configuration. func Setup(ctx context.Context, cfg *config.Configuration, router *mux.Router, dataStore store.DataStore, urlBuilder *url.Builder, downloadGenerators map[models.DatasetType]DownloadsGenerator, authMiddleware auth.Middleware, enableURLRewriting bool, smDatasetAPI *application.StateMachineDatasetAPI, permissionsChecker auth.PermissionsChecker, idClient *clientsidentity.Client, searchContentUpdatedProducer *SearchContentUpdatedProducer) *DatasetAPI { api := &DatasetAPI{ - dataStore: dataStore, - host: cfg.DatasetAPIURL, - downloadServiceToken: cfg.DownloadServiceSecretKey, - EnablePrePublishView: cfg.EnablePrivateEndpoints, - Router: router, - urlBuilder: urlBuilder, - enableURLRewriting: enableURLRewriting, - downloadGenerators: downloadGenerators, - enablePrivateEndpoints: cfg.EnablePrivateEndpoints, - enableDetachDataset: cfg.EnableDetachDataset, - enableDeleteStaticVersion: cfg.EnableDeleteStaticVersion, - authMiddleware: authMiddleware, - versionPublishedChecker: nil, - instancePublishedChecker: nil, - MaxRequestOptions: cfg.MaxRequestOptions, - defaultLimit: cfg.DefaultLimit, - smDatasetAPI: smDatasetAPI, - permissionsChecker: permissionsChecker, - idClient: idClient, + dataStore: dataStore, + host: cfg.DatasetAPIURL, + downloadServiceToken: cfg.DownloadServiceSecretKey, + EnablePrePublishView: cfg.EnablePrivateEndpoints, + Router: router, + urlBuilder: urlBuilder, + enableURLRewriting: enableURLRewriting, + downloadGenerators: downloadGenerators, + enablePrivateEndpoints: cfg.EnablePrivateEndpoints, + enableDetachDataset: cfg.EnableDetachDataset, + enableDeleteStaticVersion: cfg.EnableDeleteStaticVersion, + authMiddleware: authMiddleware, + versionPublishedChecker: nil, + instancePublishedChecker: nil, + MaxRequestOptions: cfg.MaxRequestOptions, + defaultLimit: cfg.DefaultLimit, + smDatasetAPI: smDatasetAPI, + permissionsChecker: permissionsChecker, + idClient: idClient, searchContentUpdatedProducer: searchContentUpdatedProducer, } diff --git a/service/initialise.go b/service/initialise.go index a2bad3e2..a41d0f19 100644 --- a/service/initialise.go +++ b/service/initialise.go @@ -18,13 +18,13 @@ import ( // ExternalServiceList holds the initialiser and initialisation state of external services. type ExternalServiceList struct { - KafkaProducer bool - AuthorisationMiddleware bool - Graph bool - HealthCheck bool - MongoDB bool - FilesAPIClient bool - Init Initialiser + KafkaProducer bool + AuthorisationMiddleware bool + Graph bool + HealthCheck bool + MongoDB bool + FilesAPIClient bool + Init Initialiser } // NewServiceList creates a new service list with the provided initialiser From d7fb6acef7e62fb542398a2287e68a839d4b4d45 Mon Sep 17 00:00:00 2001 From: Hugh Brace Date: Fri, 12 Dec 2025 14:39:11 +0000 Subject: [PATCH 10/12] Address PR comments --- api/versions.go | 5 +++-- features/static_versions_put.feature | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/api/versions.go b/api/versions.go index 86605eb6..03dce130 100644 --- a/api/versions.go +++ b/api/versions.go @@ -855,7 +855,8 @@ func (api *DatasetAPI) putState(w http.ResponseWriter, r *http.Request) { searchContentUpdatedEvent := map[string]interface{}{ "dataset_id": updatedVersion.DatasetID, "uri": updatedVersion.Links.Version.HRef, - "title": updatedVersion.Edition, + "title": updatedVersion.EditionTitle, + "edition": updatedVersion.Edition, "content_type": updatedVersion.Type, } @@ -865,7 +866,7 @@ func (api *DatasetAPI) putState(w http.ResponseWriter, r *http.Request) { } else { go func() { api.searchContentUpdatedProducer.Producer.Output() <- kafka.BytesMessage{Value: jsonBytes, Context: ctx} - log.Info(ctx, "putState endpoint: sent search content update to kafka", logData) + log.Info(ctx, "putState endpoint: queued search content update for kafka", logData) }() } } else { diff --git a/features/static_versions_put.feature b/features/static_versions_put.feature index def3ffaf..9f6fcc12 100644 --- a/features/static_versions_put.feature +++ b/features/static_versions_put.feature @@ -472,6 +472,7 @@ Feature: Static Dataset Versions PUT API { "content_type": "static", "dataset_id": "", + "edition: "2025", "title": "2025", "uri": "/datasets/static-dataset-published/editions/2025/versions/1" } From 8811faa05d2df0bdb23ba6ecbe18e4d1cb160951 Mon Sep 17 00:00:00 2001 From: Hugh Brace Date: Fri, 12 Dec 2025 14:52:57 +0000 Subject: [PATCH 11/12] Add missing parameter to test --- api/versions_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/versions_test.go b/api/versions_test.go index 6100cb77..b9332c0a 100644 --- a/api/versions_test.go +++ b/api/versions_test.go @@ -1144,7 +1144,7 @@ func TestPutVersionReturnsSuccessfully(t *testing.T) { }, } - api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, authorisationMock) + api := GetAPIWithCMDMocks(mockedDataStore, generatorMock, authorisationMock, SearchContentUpdatedProducer{}) api.Router.ServeHTTP(w, r) From bc458bdc36ab470bd635eaf1811e5da7d6bde989 Mon Sep 17 00:00:00 2001 From: Hugh Brace Date: Mon, 15 Dec 2025 13:35:09 +0000 Subject: [PATCH 12/12] Make test step more reliable --- features/static_versions_put.feature | 4 ++-- features/steps/steps.go | 17 +++++++++-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/features/static_versions_put.feature b/features/static_versions_put.feature index 55c92657..b9a84e7e 100644 --- a/features/static_versions_put.feature +++ b/features/static_versions_put.feature @@ -508,8 +508,8 @@ Feature: Static Dataset Versions PUT API { "content_type": "static", "dataset_id": "", - "edition: "2025", - "title": "2025", + "edition": "2025", + "title": "", "uri": "/datasets/static-dataset-published/editions/2025/versions/1" } """ diff --git a/features/steps/steps.go b/features/steps/steps.go index c8c4bca7..4c5fae59 100644 --- a/features/steps/steps.go +++ b/features/steps/steps.go @@ -283,13 +283,8 @@ func (c *DatasetComponent) theseKafkaMessagesAreProduced(kafkaJSON *godog.DocStr if err := json.Unmarshal([]byte(kafkaJSON.Content), &expectedPayload); err != nil { return fmt.Errorf("failed to unmarshal kafkaJSON: %w", err) } - expectedJSON, err := json.Marshal(expectedPayload) - if err != nil { - return fmt.Errorf("failed to marshal expected payload: %w", err) - } - expected := []string{string(expectedJSON)} - - messages := []string{} + expected := []interface{}{expectedPayload} + messages := []interface{}{} listen := true for listen { @@ -302,7 +297,13 @@ func (c *DatasetComponent) theseKafkaMessagesAreProduced(kafkaJSON *godog.DocStr if !ok { return errors.New("upstream channel closed") } - messages = append(messages, string(msg.GetData())) + var gotPayload interface{} + if err := json.Unmarshal(msg.GetData(), &gotPayload); err != nil { + msg.Commit() + msg.Release() + return fmt.Errorf("failed to unmarshal kafka message: %w", err) + } + messages = append(messages, gotPayload) msg.Commit() msg.Release() }