From a124f8193c7629216ffef70e5ce487256daf7529 Mon Sep 17 00:00:00 2001 From: Sergey Yakubov <sergey.yakubov@desy.de> Date: Wed, 20 Jun 2018 12:48:07 +0200 Subject: [PATCH] restructure go files --- broker/CMakeLists.txt | 4 +- broker/src/asapo_broker/database/mongodb.go | 2 +- .../src/asapo_broker/database/mongodb_test.go | 2 +- .../src/asapo_broker/logger/logrus_logger.go | 75 ------- broker/src/asapo_broker/main/broker.go | 4 +- broker/src/asapo_broker/server/get_id.go | 4 +- broker/src/asapo_broker/server/get_id_test.go | 4 +- broker/src/asapo_broker/server/get_next.go | 4 +- .../src/asapo_broker/server/get_next_test.go | 6 +- broker/src/asapo_broker/server/listroutes.go | 2 +- .../asapo_broker/server/server_nottested.go | 4 +- broker/src/asapo_broker/server/server_test.go | 4 +- broker/src/asapo_broker/server/statistics.go | 2 +- broker/src/asapo_broker/utils/routes.go | 37 ---- .../go/src/asapo_common}/logger/logger.go | 0 .../src/asapo_common}/logger/logrus_logger.go | 0 .../src/asapo_common}/logger/mock_logger.go | 0 .../go/src/asapo_common}/utils/helpers.go | 0 .../go/src/asapo_common}/utils/routes.go | 0 .../src/asapo_common}/utils/status_codes.go | 0 .../go/src/asapo_common}/utils/stucts.go | 0 discovery/CMakeLists.txt | 4 +- .../src/asapo_discovery/logger/logger.go | 69 ------ .../src/asapo_discovery/logger/mock_logger.go | 51 ----- .../src/asapo_discovery/main/discovery.go | 2 +- .../request_handler/request_handler.go | 2 +- .../request_handler/request_handler_consul.go | 2 +- .../request_handler_consul_test.go | 2 +- .../request_handler/request_handler_static.go | 2 +- .../request_handler_static_test.go | 2 +- .../asapo_discovery/server/get_receivers.go | 2 +- .../src/asapo_discovery/server/listroutes.go | 2 +- .../src/asapo_discovery/server/routes_test.go | 4 +- .../src/asapo_discovery/server/server.go | 2 +- .../server/server_nottested.go | 4 +- .../asapo_discovery/server/settings_test.go | 2 +- .../src/asapo_discovery/utils/helpers.go | 38 ---- .../dummy_data_producer.cpp | 5 +- producer/api/include/producer/producer.h | 2 +- producer/api/src/producer_impl.cpp | 6 +- producer/api/unittests/test_producer.cpp | 13 +- producer/api/unittests/test_producer_impl.cpp | 4 +- receiver/src/connection.cpp | 10 +- receiver/src/connection.h | 2 +- receiver/src/request.cpp | 12 +- receiver/src/request.h | 30 +-- receiver/src/request_handler_authorize.cpp | 27 +-- receiver/src/request_handler_authorize.h | 10 +- receiver/src/request_handler_db_write.cpp | 2 +- receiver/src/request_handler_file_write.cpp | 2 +- receiver/src/requests_dispatcher.cpp | 60 +++--- receiver/src/requests_dispatcher.h | 22 +- receiver/unittests/receiver_mocking.h | 22 +- receiver/unittests/test_connection.cpp | 106 +++++----- receiver/unittests/test_request.cpp | 12 +- receiver/unittests/test_request_factory.cpp | 10 +- .../test_request_handler_authorizer.cpp | 66 +++--- .../test_request_handler_db_writer.cpp | 14 +- .../test_request_handler_file_write.cpp | 10 +- .../unittests/test_requests_dispatcher.cpp | 200 +++++++++--------- 60 files changed, 361 insertions(+), 630 deletions(-) delete mode 100644 broker/src/asapo_broker/logger/logrus_logger.go delete mode 100644 broker/src/asapo_broker/utils/routes.go rename {broker/src/asapo_broker => common/go/src/asapo_common}/logger/logger.go (100%) rename {discovery/src/asapo_discovery => common/go/src/asapo_common}/logger/logrus_logger.go (100%) rename {broker/src/asapo_broker => common/go/src/asapo_common}/logger/mock_logger.go (100%) rename {broker/src/asapo_broker => common/go/src/asapo_common}/utils/helpers.go (100%) rename {discovery/src/asapo_discovery => common/go/src/asapo_common}/utils/routes.go (100%) rename {broker/src/asapo_broker => common/go/src/asapo_common}/utils/status_codes.go (100%) rename {discovery/src/asapo_discovery => common/go/src/asapo_common}/utils/stucts.go (100%) delete mode 100644 discovery/src/asapo_discovery/logger/logger.go delete mode 100644 discovery/src/asapo_discovery/logger/mock_logger.go delete mode 100644 discovery/src/asapo_discovery/utils/helpers.go diff --git a/broker/CMakeLists.txt b/broker/CMakeLists.txt index 4b464e6d1..49014ff5d 100644 --- a/broker/CMakeLists.txt +++ b/broker/CMakeLists.txt @@ -11,10 +11,10 @@ endif() message(STATUS "global gopath ${GOPATH}") IF(WIN32) - set (gopath "${GOPATH}\;${CMAKE_CURRENT_SOURCE_DIR}") + set (gopath "${GOPATH}\;${CMAKE_CURRENT_SOURCE_DIR}\;${CMAKE_SOURCE_DIR}/common/go") set (exe_name "${TARGET_NAME}.exe") ELSE() - set (gopath ${GOPATH}:${CMAKE_CURRENT_SOURCE_DIR}) + set (gopath ${GOPATH}:${CMAKE_CURRENT_SOURCE_DIR}:${CMAKE_SOURCE_DIR}/common/go) set (exe_name "${TARGET_NAME}") ENDIF() diff --git a/broker/src/asapo_broker/database/mongodb.go b/broker/src/asapo_broker/database/mongodb.go index 55d9b8371..de41e4f90 100644 --- a/broker/src/asapo_broker/database/mongodb.go +++ b/broker/src/asapo_broker/database/mongodb.go @@ -3,7 +3,7 @@ package database import ( - "asapo_broker/utils" + "asapo_common/utils" "encoding/json" "errors" "gopkg.in/mgo.v2" diff --git a/broker/src/asapo_broker/database/mongodb_test.go b/broker/src/asapo_broker/database/mongodb_test.go index cf17a3812..178346cfc 100644 --- a/broker/src/asapo_broker/database/mongodb_test.go +++ b/broker/src/asapo_broker/database/mongodb_test.go @@ -3,7 +3,7 @@ package database import ( - "asapo_broker/utils" + "asapo_common/utils" "encoding/json" "github.com/stretchr/testify/assert" "sync" diff --git a/broker/src/asapo_broker/logger/logrus_logger.go b/broker/src/asapo_broker/logger/logrus_logger.go deleted file mode 100644 index 875a05c04..000000000 --- a/broker/src/asapo_broker/logger/logrus_logger.go +++ /dev/null @@ -1,75 +0,0 @@ -package logger - -import ( - log "github.com/sirupsen/logrus" -) - -type logRusLogger struct { - logger_entry *log.Entry -} - -func (l *logRusLogger) entry() *log.Entry { - if l.logger_entry != nil { - return l.logger_entry - } - - formatter := &log.JSONFormatter{ - FieldMap: log.FieldMap{ - log.FieldKeyMsg: "message", - }, - TimestampFormat: "2006-01-02 15:04:05.000", - } - - log.SetFormatter(formatter) - - l.logger_entry = log.WithFields(log.Fields{ - "source": "broker", - }) - - return l.logger_entry - -} - -func (l *logRusLogger) Info(args ...interface{}) { - l.entry().Info(args...) - return -} - -func (l *logRusLogger) Debug(args ...interface{}) { - l.entry().Debug(args...) - return -} - -func (l *logRusLogger) Error(args ...interface{}) { - l.entry().Error(args...) - return -} - -func (l *logRusLogger) Warning(args ...interface{}) { - l.entry().Warning(args...) - return -} - -func (l *logRusLogger) Fatal(args ...interface{}) { - l.entry().Fatal(args...) - return -} - -func (l *logRusLogger) SetLevel(level Level) { - logrusLevel := log.InfoLevel - switch level { - case DebugLevel: - logrusLevel = log.DebugLevel - case InfoLevel: - logrusLevel = log.InfoLevel - case WarnLevel: - logrusLevel = log.WarnLevel - case ErrorLevel: - logrusLevel = log.ErrorLevel - case FatalLevel: - logrusLevel = log.FatalLevel - } - - log.SetLevel(logrusLevel) - return -} diff --git a/broker/src/asapo_broker/main/broker.go b/broker/src/asapo_broker/main/broker.go index b4bb3779f..30a017728 100644 --- a/broker/src/asapo_broker/main/broker.go +++ b/broker/src/asapo_broker/main/broker.go @@ -3,10 +3,10 @@ package main import ( - "flag" "asapo_broker/database" - log "asapo_broker/logger" "asapo_broker/server" + log "asapo_common/logger" + "flag" "os" ) diff --git a/broker/src/asapo_broker/server/get_id.go b/broker/src/asapo_broker/server/get_id.go index 50624ba0f..4b8a48090 100644 --- a/broker/src/asapo_broker/server/get_id.go +++ b/broker/src/asapo_broker/server/get_id.go @@ -1,8 +1,8 @@ package server import ( - "asapo_broker/logger" - "asapo_broker/utils" + "asapo_common/logger" + "asapo_common/utils" "github.com/gorilla/mux" "net/http" "strconv" diff --git a/broker/src/asapo_broker/server/get_id_test.go b/broker/src/asapo_broker/server/get_id_test.go index b85aa8989..3f3370f9c 100644 --- a/broker/src/asapo_broker/server/get_id_test.go +++ b/broker/src/asapo_broker/server/get_id_test.go @@ -2,8 +2,8 @@ package server import ( "asapo_broker/database" - "asapo_broker/logger" - "asapo_broker/utils" + "asapo_common/logger" + "asapo_common/utils" "errors" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" diff --git a/broker/src/asapo_broker/server/get_next.go b/broker/src/asapo_broker/server/get_next.go index 3cc2a826e..77ff12977 100644 --- a/broker/src/asapo_broker/server/get_next.go +++ b/broker/src/asapo_broker/server/get_next.go @@ -2,8 +2,8 @@ package server import ( "asapo_broker/database" - "asapo_broker/logger" - "asapo_broker/utils" + "asapo_common/logger" + "asapo_common/utils" "github.com/gorilla/mux" "net/http" ) diff --git a/broker/src/asapo_broker/server/get_next_test.go b/broker/src/asapo_broker/server/get_next_test.go index 97f88e556..dcc749e35 100644 --- a/broker/src/asapo_broker/server/get_next_test.go +++ b/broker/src/asapo_broker/server/get_next_test.go @@ -1,13 +1,13 @@ package server import ( + "asapo_broker/database" + "asapo_common/logger" + "asapo_common/utils" "errors" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/suite" - "asapo_broker/database" - "asapo_broker/logger" - "asapo_broker/utils" "net/http" "net/http/httptest" "strings" diff --git a/broker/src/asapo_broker/server/listroutes.go b/broker/src/asapo_broker/server/listroutes.go index 2a6f70ecc..ceee311d4 100644 --- a/broker/src/asapo_broker/server/listroutes.go +++ b/broker/src/asapo_broker/server/listroutes.go @@ -1,7 +1,7 @@ package server import ( - "asapo_broker/utils" + "asapo_common/utils" ) var listRoutes = utils.Routes{ diff --git a/broker/src/asapo_broker/server/server_nottested.go b/broker/src/asapo_broker/server/server_nottested.go index 7c050275a..60a316df9 100644 --- a/broker/src/asapo_broker/server/server_nottested.go +++ b/broker/src/asapo_broker/server/server_nottested.go @@ -3,9 +3,9 @@ package server import ( + log "asapo_common/logger" + "asapo_common/utils" "errors" - log "asapo_broker/logger" - "asapo_broker/utils" "net/http" "strconv" ) diff --git a/broker/src/asapo_broker/server/server_test.go b/broker/src/asapo_broker/server/server_test.go index 4a8ae87db..6654b6715 100644 --- a/broker/src/asapo_broker/server/server_test.go +++ b/broker/src/asapo_broker/server/server_test.go @@ -1,11 +1,11 @@ package server import ( + "asapo_broker/database" + "asapo_common/logger" "errors" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" - "asapo_broker/database" - "asapo_broker/logger" "testing" ) diff --git a/broker/src/asapo_broker/server/statistics.go b/broker/src/asapo_broker/server/statistics.go index 7cad4056c..97c6896f7 100644 --- a/broker/src/asapo_broker/server/statistics.go +++ b/broker/src/asapo_broker/server/statistics.go @@ -1,8 +1,8 @@ package server import ( + log "asapo_common/logger" "fmt" - log "asapo_broker/logger" "sync" "time" ) diff --git a/broker/src/asapo_broker/utils/routes.go b/broker/src/asapo_broker/utils/routes.go deleted file mode 100644 index 8c8d88b27..000000000 --- a/broker/src/asapo_broker/utils/routes.go +++ /dev/null @@ -1,37 +0,0 @@ -package utils - -import ( - "net/http" - - "github.com/gorilla/mux" - "strings" -) - -type Routes []Route - -type Route struct { - Name string - Method string - Pattern string - HandlerFunc http.HandlerFunc -} - -func NewRouter(listRoutes Routes) *mux.Router { - router := mux.NewRouter() - for _, route := range listRoutes { - router. - Methods(route.Method). - Path(route.Pattern). - Name(route.Name). - Handler(route.HandlerFunc) - // allow routes without trailing slash - if strings.HasSuffix(route.Pattern, "/") { - router. - Methods(route.Method). - Path(strings.TrimSuffix(route.Pattern, "/")). - Name(route.Name + "_noslash"). - Handler(route.HandlerFunc) - } - } - return router -} diff --git a/broker/src/asapo_broker/logger/logger.go b/common/go/src/asapo_common/logger/logger.go similarity index 100% rename from broker/src/asapo_broker/logger/logger.go rename to common/go/src/asapo_common/logger/logger.go diff --git a/discovery/src/asapo_discovery/logger/logrus_logger.go b/common/go/src/asapo_common/logger/logrus_logger.go similarity index 100% rename from discovery/src/asapo_discovery/logger/logrus_logger.go rename to common/go/src/asapo_common/logger/logrus_logger.go diff --git a/broker/src/asapo_broker/logger/mock_logger.go b/common/go/src/asapo_common/logger/mock_logger.go similarity index 100% rename from broker/src/asapo_broker/logger/mock_logger.go rename to common/go/src/asapo_common/logger/mock_logger.go diff --git a/broker/src/asapo_broker/utils/helpers.go b/common/go/src/asapo_common/utils/helpers.go similarity index 100% rename from broker/src/asapo_broker/utils/helpers.go rename to common/go/src/asapo_common/utils/helpers.go diff --git a/discovery/src/asapo_discovery/utils/routes.go b/common/go/src/asapo_common/utils/routes.go similarity index 100% rename from discovery/src/asapo_discovery/utils/routes.go rename to common/go/src/asapo_common/utils/routes.go diff --git a/broker/src/asapo_broker/utils/status_codes.go b/common/go/src/asapo_common/utils/status_codes.go similarity index 100% rename from broker/src/asapo_broker/utils/status_codes.go rename to common/go/src/asapo_common/utils/status_codes.go diff --git a/discovery/src/asapo_discovery/utils/stucts.go b/common/go/src/asapo_common/utils/stucts.go similarity index 100% rename from discovery/src/asapo_discovery/utils/stucts.go rename to common/go/src/asapo_common/utils/stucts.go diff --git a/discovery/CMakeLists.txt b/discovery/CMakeLists.txt index f17018ce1..871e6e93f 100644 --- a/discovery/CMakeLists.txt +++ b/discovery/CMakeLists.txt @@ -11,10 +11,10 @@ endif() message(STATUS "global gopath ${GOPATH}") IF(WIN32) - set (gopath "${GOPATH}\;${CMAKE_CURRENT_SOURCE_DIR}") + set (gopath "${GOPATH}\;${CMAKE_CURRENT_SOURCE_DIR}\;${CMAKE_SOURCE_DIR}/common/go") set (exe_name "${TARGET_NAME}.exe") ELSE() - set (gopath ${GOPATH}:${CMAKE_CURRENT_SOURCE_DIR}) + set (gopath ${GOPATH}:${CMAKE_CURRENT_SOURCE_DIR}:${CMAKE_SOURCE_DIR}/common/go) set (exe_name "${TARGET_NAME}") ENDIF() diff --git a/discovery/src/asapo_discovery/logger/logger.go b/discovery/src/asapo_discovery/logger/logger.go deleted file mode 100644 index e198cd23d..000000000 --- a/discovery/src/asapo_discovery/logger/logger.go +++ /dev/null @@ -1,69 +0,0 @@ -package logger - -import ( - "errors" - "strings" -) - -type Level uint32 - -//log levels -const ( - InfoLevel = iota - DebugLevel - ErrorLevel - WarnLevel - FatalLevel -) - -type Logger interface { - Info(args ...interface{}) - Debug(args ...interface{}) - Fatal(args ...interface{}) - Warning(args ...interface{}) - Error(args ...interface{}) - SetLevel(level Level) -} - -var my_logger Logger = &logRusLogger{} - -func Info(args ...interface{}) { - my_logger.Info(args...) -} - -func Debug(args ...interface{}) { - my_logger.Debug(args...) -} - -func Warning(args ...interface{}) { - my_logger.Warning(args...) -} - -func Error(args ...interface{}) { - my_logger.Error(args...) -} - -func Fatal(args ...interface{}) { - my_logger.Fatal(args...) -} - -func SetLevel(level Level) { - my_logger.SetLevel(level) -} - -func LevelFromString(str string) (Level, error) { - switch strings.ToLower(str) { - case "debug": - return DebugLevel, nil - case "info": - return InfoLevel, nil - case "warning": - return WarnLevel, nil - case "error": - return ErrorLevel, nil - case "fatal", "none": - return FatalLevel, nil - } - return FatalLevel, errors.New("wrong log level") - -} diff --git a/discovery/src/asapo_discovery/logger/mock_logger.go b/discovery/src/asapo_discovery/logger/mock_logger.go deleted file mode 100644 index 0e597978b..000000000 --- a/discovery/src/asapo_discovery/logger/mock_logger.go +++ /dev/null @@ -1,51 +0,0 @@ -//+build !release - -package logger - -import ( - "github.com/stretchr/testify/mock" -) - -type MockLogger struct { - mock.Mock -} - -var MockLog MockLogger - -func SetMockLog() { - my_logger = &MockLog -} - -func UnsetMockLog() { - my_logger = &logRusLogger{} -} - -func (l *MockLogger) Info(args ...interface{}) { - l.Called(args...) - return -} - -func (l *MockLogger) Debug(args ...interface{}) { - l.Called(args...) - return -} - -func (l *MockLogger) Error(args ...interface{}) { - l.Called(args...) - return -} - -func (l *MockLogger) Warning(args ...interface{}) { - l.Called(args...) - return -} - -func (l *MockLogger) Fatal(args ...interface{}) { - l.Called(args...) - return -} - -func (l *MockLogger) SetLevel(level Level) { - l.Called(level) - return -} diff --git a/discovery/src/asapo_discovery/main/discovery.go b/discovery/src/asapo_discovery/main/discovery.go index cf9ed1581..683b80472 100644 --- a/discovery/src/asapo_discovery/main/discovery.go +++ b/discovery/src/asapo_discovery/main/discovery.go @@ -4,7 +4,7 @@ package main import ( "flag" - log "asapo_discovery/logger" + log "asapo_common/logger" "asapo_discovery/server" "os" "asapo_discovery/request_handler" diff --git a/discovery/src/asapo_discovery/request_handler/request_handler.go b/discovery/src/asapo_discovery/request_handler/request_handler.go index b2ce9b560..7c33af3f8 100644 --- a/discovery/src/asapo_discovery/request_handler/request_handler.go +++ b/discovery/src/asapo_discovery/request_handler/request_handler.go @@ -1,6 +1,6 @@ package request_handler -import "asapo_discovery/utils" +import "asapo_common/utils" type Agent interface { GetReceivers() ([]byte, error) diff --git a/discovery/src/asapo_discovery/request_handler/request_handler_consul.go b/discovery/src/asapo_discovery/request_handler/request_handler_consul.go index c4a948a4b..12f3dc13c 100644 --- a/discovery/src/asapo_discovery/request_handler/request_handler_consul.go +++ b/discovery/src/asapo_discovery/request_handler/request_handler_consul.go @@ -1,7 +1,7 @@ package request_handler import ( - "asapo_discovery/utils" + "asapo_common/utils" "github.com/hashicorp/consul/api" "strconv" "errors" diff --git a/discovery/src/asapo_discovery/request_handler/request_handler_consul_test.go b/discovery/src/asapo_discovery/request_handler/request_handler_consul_test.go index e3e5b78c9..716d54531 100644 --- a/discovery/src/asapo_discovery/request_handler/request_handler_consul_test.go +++ b/discovery/src/asapo_discovery/request_handler/request_handler_consul_test.go @@ -5,7 +5,7 @@ import ( "testing" "github.com/hashicorp/consul/api" "strconv" - "asapo_discovery/utils" + "asapo_common/utils" ) type ConsulHandlerTestSuite struct { diff --git a/discovery/src/asapo_discovery/request_handler/request_handler_static.go b/discovery/src/asapo_discovery/request_handler/request_handler_static.go index 1fbe2b4a3..f9668a541 100644 --- a/discovery/src/asapo_discovery/request_handler/request_handler_static.go +++ b/discovery/src/asapo_discovery/request_handler/request_handler_static.go @@ -1,7 +1,7 @@ package request_handler import ( - "asapo_discovery/utils" + "asapo_common/utils" ) type StaticRequestHandler struct { diff --git a/discovery/src/asapo_discovery/request_handler/request_handler_static_test.go b/discovery/src/asapo_discovery/request_handler/request_handler_static_test.go index af9bf7d80..eaeed6fab 100644 --- a/discovery/src/asapo_discovery/request_handler/request_handler_static_test.go +++ b/discovery/src/asapo_discovery/request_handler/request_handler_static_test.go @@ -3,7 +3,7 @@ package request_handler import ( "github.com/stretchr/testify/assert" "testing" - "asapo_discovery/utils" + "asapo_common/utils" ) diff --git a/discovery/src/asapo_discovery/server/get_receivers.go b/discovery/src/asapo_discovery/server/get_receivers.go index 70cb2249c..8f946dd7b 100644 --- a/discovery/src/asapo_discovery/server/get_receivers.go +++ b/discovery/src/asapo_discovery/server/get_receivers.go @@ -2,7 +2,7 @@ package server import ( "net/http" - "asapo_discovery/logger" + "asapo_common/logger" "errors" ) diff --git a/discovery/src/asapo_discovery/server/listroutes.go b/discovery/src/asapo_discovery/server/listroutes.go index ed068c343..b6f36de2d 100644 --- a/discovery/src/asapo_discovery/server/listroutes.go +++ b/discovery/src/asapo_discovery/server/listroutes.go @@ -1,7 +1,7 @@ package server import ( - "asapo_discovery/utils" + "asapo_common/utils" ) var listRoutes = utils.Routes{ diff --git a/discovery/src/asapo_discovery/server/routes_test.go b/discovery/src/asapo_discovery/server/routes_test.go index 4d35c2c09..a983fa2b9 100644 --- a/discovery/src/asapo_discovery/server/routes_test.go +++ b/discovery/src/asapo_discovery/server/routes_test.go @@ -3,8 +3,8 @@ package server import ( "github.com/stretchr/testify/mock" "github.com/stretchr/testify/suite" - "asapo_discovery/logger" - "asapo_discovery/utils" + "asapo_common/logger" + "asapo_common/utils" "net/http" "net/http/httptest" "strings" diff --git a/discovery/src/asapo_discovery/server/server.go b/discovery/src/asapo_discovery/server/server.go index fb1bb5d5c..63379b876 100644 --- a/discovery/src/asapo_discovery/server/server.go +++ b/discovery/src/asapo_discovery/server/server.go @@ -2,7 +2,7 @@ package server import ( "asapo_discovery/request_handler" - "asapo_discovery/utils" + "asapo_common/utils" ) var requestHandler request_handler.Agent diff --git a/discovery/src/asapo_discovery/server/server_nottested.go b/discovery/src/asapo_discovery/server/server_nottested.go index d193d8663..3b98cf5ea 100644 --- a/discovery/src/asapo_discovery/server/server_nottested.go +++ b/discovery/src/asapo_discovery/server/server_nottested.go @@ -3,8 +3,8 @@ package server import ( - log "asapo_discovery/logger" - "asapo_discovery/utils" + log "asapo_common/logger" + "asapo_common/utils" "net/http" "strconv" ) diff --git a/discovery/src/asapo_discovery/server/settings_test.go b/discovery/src/asapo_discovery/server/settings_test.go index 2d85beb1d..50307b06a 100644 --- a/discovery/src/asapo_discovery/server/settings_test.go +++ b/discovery/src/asapo_discovery/server/settings_test.go @@ -3,7 +3,7 @@ package server import ( "github.com/stretchr/testify/assert" "testing" - "asapo_discovery/utils" + "asapo_common/utils" ) func fillSettings(mode string) utils.Settings { diff --git a/discovery/src/asapo_discovery/utils/helpers.go b/discovery/src/asapo_discovery/utils/helpers.go deleted file mode 100644 index f1d0da4dc..000000000 --- a/discovery/src/asapo_discovery/utils/helpers.go +++ /dev/null @@ -1,38 +0,0 @@ -package utils - -import ( - json "encoding/json" - "io/ioutil" -) - -func StringInSlice(a string, list []string) bool { - for _, b := range list { - if b == a { - return true - } - } - return false -} - -func MapToJson(res interface{}) ([]byte, error) { - answer, err := json.Marshal(res) - if err == nil { - return answer, nil - } else { - return nil, err - } -} - -func ReadJsonFromFile(fname string, config interface{}) error { - content, err := ioutil.ReadFile(fname) - if err != nil { - return err - } - - err = json.Unmarshal(content, config) - if err != nil { - return err - } - - return nil -} diff --git a/examples/producer/dummy-data-producer/dummy_data_producer.cpp b/examples/producer/dummy-data-producer/dummy_data_producer.cpp index 531344235..31848cfbf 100644 --- a/examples/producer/dummy-data-producer/dummy_data_producer.cpp +++ b/examples/producer/dummy-data-producer/dummy_data_producer.cpp @@ -35,7 +35,8 @@ void PrintCommandArguments(const Args& args) { void ProcessCommandArguments(int argc, char* argv[], Args* args) { if (argc != 7) { std::cout << - "Usage: " << argv[0] << " <destination> <beamtime_id> <number_of_byte> <iterations> <nthreads> <mode 0 -t tcp, 1 - filesystem>" + "Usage: " << argv[0] << + " <destination> <beamtime_id> <number_of_byte> <iterations> <nthreads> <mode 0 -t tcp, 1 - filesystem>" << std::endl; exit(EXIT_FAILURE); } @@ -82,7 +83,7 @@ std::unique_ptr<asapo::Producer> CreateProducer(const Args& args) { asapo::Error err; auto producer = asapo::Producer::Create(args.receiver_address, args.nthreads, args.mode == 0 ? asapo::RequestHandlerType::kTcp : asapo::RequestHandlerType::kFilesystem, - args.beamtime_id,&err); + args.beamtime_id, &err); if(err) { std::cerr << "Cannot start producer. ProducerError: " << err << std::endl; exit(EXIT_FAILURE); diff --git a/producer/api/include/producer/producer.h b/producer/api/include/producer/producer.h index e16adf391..8b9cc16d6 100644 --- a/producer/api/include/producer/producer.h +++ b/producer/api/include/producer/producer.h @@ -17,7 +17,7 @@ class Producer { * @return A unique_ptr to a new producer instance */ static std::unique_ptr<Producer> Create(const std::string& endpoint, uint8_t n_processing_threads, - asapo::RequestHandlerType type,std::string beamtime_id, + asapo::RequestHandlerType type, std::string beamtime_id, Error* err); virtual ~Producer() = default; diff --git a/producer/api/src/producer_impl.cpp b/producer/api/src/producer_impl.cpp index 21f588990..fb5926480 100644 --- a/producer/api/src/producer_impl.cpp +++ b/producer/api/src/producer_impl.cpp @@ -32,7 +32,7 @@ GenericRequestHeader ProducerImpl::GenerateNextSendRequest(uint64_t file_id, siz return request; } -Error CheckProducerRequest(size_t file_size,size_t filename_size) { +Error CheckProducerRequest(size_t file_size, size_t filename_size) { if (file_size > ProducerImpl::kMaxChunkSize) { return ProducerErrorTemplates::kFileTooLarge.Generate(); } @@ -50,7 +50,7 @@ Error ProducerImpl::Send(uint64_t file_id, const void* data, size_t file_size, s auto err = CheckProducerRequest(file_size, file_name.size()); if (err) { - log__->Error("error checking request - "+err->Explain()); + log__->Error("error checking request - " + err->Explain()); return err; } @@ -81,7 +81,7 @@ Error ProducerImpl::SetBeamtimeId(std::string beamtime_id) { } if (beamtime_id.size() > kMaxMessageSize) { - log__->Error("beamtime_id is too long - "+beamtime_id); + log__->Error("beamtime_id is too long - " + beamtime_id); return ProducerErrorTemplates::kBeamtimeIdTooLong.Generate(); } diff --git a/producer/api/unittests/test_producer.cpp b/producer/api/unittests/test_producer.cpp index ed22fe6e4..f15706983 100644 --- a/producer/api/unittests/test_producer.cpp +++ b/producer/api/unittests/test_producer.cpp @@ -13,16 +13,16 @@ namespace { TEST(CreateProducer, TcpProducer) { asapo::Error err; std::unique_ptr<asapo::Producer> producer = asapo::Producer::Create("endpoint", 4, asapo::RequestHandlerType::kTcp, - "bt",&err); + "bt", &err); ASSERT_THAT(dynamic_cast<asapo::ProducerImpl*>(producer.get()), Ne(nullptr)); ASSERT_THAT(err, Eq(nullptr)); } TEST(CreateProducer, ErrorBeamtime) { asapo::Error err; - std::string expected_beamtimeid(asapo::kMaxMessageSize*10,'a'); + std::string expected_beamtimeid(asapo::kMaxMessageSize * 10, 'a'); std::unique_ptr<asapo::Producer> producer = asapo::Producer::Create("endpoint", 4, asapo::RequestHandlerType::kTcp, - expected_beamtimeid,&err); + expected_beamtimeid, &err); ASSERT_THAT(producer, Eq(nullptr)); ASSERT_THAT(err, Eq(asapo::ProducerErrorTemplates::kBeamtimeIdTooLong)); } @@ -31,7 +31,7 @@ TEST(CreateProducer, ErrorBeamtime) { TEST(CreateProducer, FileSystemProducer) { asapo::Error err; std::unique_ptr<asapo::Producer> producer = asapo::Producer::Create("endpoint", 4, - asapo::RequestHandlerType::kFilesystem,"bt", &err); + asapo::RequestHandlerType::kFilesystem, "bt", &err); ASSERT_THAT(dynamic_cast<asapo::ProducerImpl*>(producer.get()), Ne(nullptr)); ASSERT_THAT(err, Eq(nullptr)); } @@ -40,14 +40,15 @@ TEST(CreateProducer, FileSystemProducer) { TEST(CreateProducer, TooManyThreads) { asapo::Error err; std::unique_ptr<asapo::Producer> producer = asapo::Producer::Create("", asapo::kMaxProcessingThreads + 1, - asapo::RequestHandlerType::kTcp,"bt", &err); + asapo::RequestHandlerType::kTcp, "bt", &err); ASSERT_THAT(producer, Eq(nullptr)); ASSERT_THAT(err, Ne(nullptr)); } TEST(Producer, SimpleWorkflowWihoutConnection) { asapo::Error err; - std::unique_ptr<asapo::Producer> producer = asapo::Producer::Create("hello", 5, asapo::RequestHandlerType::kTcp,"bt", &err); + std::unique_ptr<asapo::Producer> producer = asapo::Producer::Create("hello", 5, asapo::RequestHandlerType::kTcp, "bt", + &err); auto err_send = producer->Send(1, nullptr, 1, "", nullptr); std::this_thread::sleep_for(std::chrono::milliseconds(100)); ASSERT_THAT(producer, Ne(nullptr)); diff --git a/producer/api/unittests/test_producer_impl.cpp b/producer/api/unittests/test_producer_impl.cpp index 106ab92a6..10e0d5f37 100644 --- a/producer/api/unittests/test_producer_impl.cpp +++ b/producer/api/unittests/test_producer_impl.cpp @@ -70,7 +70,7 @@ TEST_F(ProducerImplTests, SendReturnsError) { } TEST_F(ProducerImplTests, ErrorIfFileNameTooLong) { - std::string long_string(asapo::kMaxMessageSize+100, 'a'); + std::string long_string(asapo::kMaxMessageSize + 100, 'a'); auto err = producer.Send(1, nullptr, 1, long_string, nullptr); ASSERT_THAT(err, Eq(asapo::ProducerErrorTemplates::kFileNameTooLong)); } @@ -105,7 +105,7 @@ TEST_F(ProducerImplTests, OKSendingRequest) { TEST_F(ProducerImplTests, ErrorSettingBeamtime) { - std::string expected_beamtimeid(asapo::kMaxMessageSize*10,'a'); + std::string expected_beamtimeid(asapo::kMaxMessageSize * 10, 'a'); EXPECT_CALL(mock_logger, Error(testing::HasSubstr("too long"))); auto err = producer.SetBeamtimeId(expected_beamtimeid); diff --git a/receiver/src/connection.cpp b/receiver/src/connection.cpp index d0944de5a..0e30d5463 100644 --- a/receiver/src/connection.cpp +++ b/receiver/src/connection.cpp @@ -10,10 +10,10 @@ namespace asapo { Connection::Connection(SocketDescriptor socket_fd, const std::string& address, std::string receiver_tag) : - io__{GenerateDefaultIO()}, - statistics__{new Statistics}, - log__{GetDefaultReceiverLogger()}, - requests_dispatcher__{new RequestsDispatcher{socket_fd,address,statistics__.get()}}{ + io__{GenerateDefaultIO()}, + statistics__{new Statistics}, + log__{GetDefaultReceiverLogger()}, +requests_dispatcher__{new RequestsDispatcher{socket_fd, address, statistics__.get()}} { socket_fd_ = socket_fd; address_ = address; statistics__->AddTag("connection_from", address); @@ -33,7 +33,7 @@ void Connection::Listen() const noexcept { while (true) { Error err; auto request = requests_dispatcher__->GetNextRequest(&err); - if (err){ + if (err) { break; } err = requests_dispatcher__->ProcessRequest(request); diff --git a/receiver/src/connection.h b/receiver/src/connection.h index 4d4c921f6..edeb7f984 100644 --- a/receiver/src/connection.h +++ b/receiver/src/connection.h @@ -36,7 +36,7 @@ class Connection { mutable std::unique_ptr<Statistics> statistics__; const AbstractLogger* log__; std::unique_ptr<RequestsDispatcher> requests_dispatcher__; - private: + private: void ProcessStatisticsAfterRequest(const std::unique_ptr<Request>& request) const noexcept; }; diff --git a/receiver/src/request.cpp b/receiver/src/request.cpp index b157543fd..d8ebd140a 100644 --- a/receiver/src/request.cpp +++ b/receiver/src/request.cpp @@ -5,8 +5,8 @@ namespace asapo { Request::Request(const GenericRequestHeader& header, - SocketDescriptor socket_fd,std::string origin_uri) : io__{GenerateDefaultIO()}, request_header_(header), - socket_fd_{socket_fd},origin_uri_{std::move(origin_uri)} { + SocketDescriptor socket_fd, std::string origin_uri) : io__{GenerateDefaultIO()}, request_header_(header), + socket_fd_{socket_fd}, origin_uri_{std::move(origin_uri)} { } Error Request::AllocateDataBuffer() { @@ -78,10 +78,10 @@ std::string Request::GetFileName() const { return std::to_string(request_header_.data_id) + ".bin"; } -const std::string &Request::GetOriginUri() const { +const std::string& Request::GetOriginUri() const { return origin_uri_; } -const std::string &Request::GetBeamtimeId() const { +const std::string& Request::GetBeamtimeId() const { return beamtime_id_; } void Request::SetBeamtimeId(std::string beamtime_id) { @@ -96,10 +96,10 @@ const char* Request::GetMessage() const { } std::unique_ptr<Request> RequestFactory::GenerateRequest(const GenericRequestHeader& - request_header, SocketDescriptor socket_fd,std::string origin_uri, + request_header, SocketDescriptor socket_fd, std::string origin_uri, Error* err) const noexcept { *err = nullptr; - auto request = std::unique_ptr<Request> {new Request{request_header, socket_fd,std::move(origin_uri)}}; + auto request = std::unique_ptr<Request> {new Request{request_header, socket_fd, std::move(origin_uri)}}; switch (request_header.op_code) { case Opcode::kOpcodeTransferData: { request->AddHandler(&request_handler_authorize_); diff --git a/receiver/src/request.h b/receiver/src/request.h index 67644d38f..ecacb9bcd 100644 --- a/receiver/src/request.h +++ b/receiver/src/request.h @@ -21,21 +21,21 @@ using RequestHandlerList = std::vector<const RequestHandler*>; class Request { public: VIRTUAL Error Handle(Statistics*); - ~Request() = default; - Request(const GenericRequestHeader& request_header, SocketDescriptor socket_fd,std::string origin_uri); + ~Request() = default; + Request(const GenericRequestHeader& request_header, SocketDescriptor socket_fd, std::string origin_uri); VIRTUAL void AddHandler(const RequestHandler*); - VIRTUAL const RequestHandlerList& GetListHandlers() const; - VIRTUAL uint64_t GetDataSize() const; - VIRTUAL uint64_t GetDataID() const; - VIRTUAL std::string GetFileName() const; - VIRTUAL const FileData& GetData() const; - VIRTUAL Opcode GetOpCode() const; - VIRTUAL const char* GetMessage() const; - - const std::string& GetOriginUri() const; - VIRTUAL const std::string& GetBeamtimeId() const; - VIRTUAL void SetBeamtimeId(std::string beamtime_id); - std::unique_ptr<IO> io__; + VIRTUAL const RequestHandlerList& GetListHandlers() const; + VIRTUAL uint64_t GetDataSize() const; + VIRTUAL uint64_t GetDataID() const; + VIRTUAL std::string GetFileName() const; + VIRTUAL const FileData& GetData() const; + VIRTUAL Opcode GetOpCode() const; + VIRTUAL const char* GetMessage() const; + + const std::string& GetOriginUri() const; + VIRTUAL const std::string& GetBeamtimeId() const; + VIRTUAL void SetBeamtimeId(std::string beamtime_id); + std::unique_ptr<IO> io__; private: Error AllocateDataBuffer(); Error ReceiveData(); @@ -50,7 +50,7 @@ class Request { class RequestFactory { public: virtual std::unique_ptr<Request> GenerateRequest(const GenericRequestHeader& request_header, - SocketDescriptor socket_fd,std::string origin_uri, Error* err) const noexcept; + SocketDescriptor socket_fd, std::string origin_uri, Error* err) const noexcept; private: RequestHandlerFileWrite request_handler_filewrite_; RequestHandlerDbWrite request_handler_dbwrite_; diff --git a/receiver/src/request_handler_authorize.cpp b/receiver/src/request_handler_authorize.cpp index cdff18694..7b2be86d3 100644 --- a/receiver/src/request_handler_authorize.cpp +++ b/receiver/src/request_handler_authorize.cpp @@ -10,32 +10,33 @@ namespace asapo { std::string RequestHandlerAuthorize::GetRequestString(const Request* request, const char* beamtime_id) const { std::string request_string = std::string("{\"BeamtimeId\":\"") + - beamtime_id + "\",\"OriginHost\":\""+ request->GetOriginUri()+"\"}"; + beamtime_id + "\",\"OriginHost\":\"" + request->GetOriginUri() + "\"}"; return request_string; } -Error RequestHandlerAuthorize::ErrorFromServerResponse(const Error& err,HttpCode code) const { +Error RequestHandlerAuthorize::ErrorFromServerResponse(const Error& err, HttpCode code) const { Error auth_error = asapo::ReceiverErrorTemplates::kAuthorizationFailure.Generate(); if (err) { auth_error->Append(err->Explain()); return auth_error; - } - else { + } else { auth_error->Append("return code " + std::to_string(int(code))); return auth_error; } } -Error RequestHandlerAuthorize::Authorize(Request* request,const char* beamtime_id) const { +Error RequestHandlerAuthorize::Authorize(Request* request, const char* beamtime_id) const { HttpCode code; Error err; std::string request_string = GetRequestString(request, beamtime_id); - auto response = http_client__->Post(GetReceiverConfig()->authorization_server+"/authorize",request_string,&code,&err); + auto response = http_client__->Post(GetReceiverConfig()->authorization_server + "/authorize", request_string, &code, + &err); if (err || code != HttpCode::OK) { - auto auth_error = ErrorFromServerResponse(err,code); - log__->Error("failure authorizing at " + GetReceiverConfig()->authorization_server + " request: "+request_string + " - " + - auth_error->Explain()); + auto auth_error = ErrorFromServerResponse(err, code); + log__->Error("failure authorizing at " + GetReceiverConfig()->authorization_server + " request: " + request_string + + " - " + + auth_error->Explain()); return auth_error; } @@ -49,11 +50,11 @@ Error RequestHandlerAuthorize::ProcessAuthorizationRequest(Request* request) con Error auth_error = asapo::ReceiverErrorTemplates::kAuthorizationFailure.Generate(); auth_error->Append("already authorized"); log__->Error("failure authorizing at " + GetReceiverConfig()->authorization_server + " - " + - "already authorized"); + "already authorized"); return auth_error; } - return Authorize(request,request->GetMessage()); + return Authorize(request, request->GetMessage()); } Error RequestHandlerAuthorize::ProcessOtherRequest(Request* request) const { @@ -62,7 +63,7 @@ Error RequestHandlerAuthorize::ProcessOtherRequest(Request* request) const { } auto elapsed_ms = std::chrono::duration_cast<std::chrono::milliseconds> - (high_resolution_clock::now() - last_updated_).count(); + (high_resolution_clock::now() - last_updated_).count(); if (elapsed_ms >= GetReceiverConfig()->authorization_interval_ms) { auto err = Authorize(request, beamtime_id_.c_str()); if (err) { @@ -83,7 +84,7 @@ Error RequestHandlerAuthorize::ProcessRequest(Request* request) const { } RequestHandlerAuthorize::RequestHandlerAuthorize(): log__{GetDefaultReceiverLogger()}, - http_client__{DefaultHttpClient()}{ + http_client__{DefaultHttpClient()} { } StatisticEntity RequestHandlerAuthorize::GetStatisticEntity() const { diff --git a/receiver/src/request_handler_authorize.h b/receiver/src/request_handler_authorize.h index 9b3f9c26c..ee21db880 100644 --- a/receiver/src/request_handler_authorize.h +++ b/receiver/src/request_handler_authorize.h @@ -14,20 +14,20 @@ namespace asapo { class RequestHandlerAuthorize final: public RequestHandler { public: - RequestHandlerAuthorize(); + RequestHandlerAuthorize(); StatisticEntity GetStatisticEntity() const override; Error ProcessRequest(Request* request) const override; const AbstractLogger* log__; std::unique_ptr<HttpClient>http_client__; - private: + private: mutable std::string beamtime_id_; mutable std::chrono::high_resolution_clock::time_point last_updated_; Error ProcessAuthorizationRequest(Request* request) const; Error ProcessOtherRequest(Request* request) const; - Error Authorize(Request* request,const char* beamtime_id) const; - Error ErrorFromServerResponse(const Error& err,HttpCode code) const; + Error Authorize(Request* request, const char* beamtime_id) const; + Error ErrorFromServerResponse(const Error& err, HttpCode code) const; - std::string GetRequestString(const Request* request, const char* beamtime_id) const; + std::string GetRequestString(const Request* request, const char* beamtime_id) const; }; } diff --git a/receiver/src/request_handler_db_write.cpp b/receiver/src/request_handler_db_write.cpp index ff2daaaff..7da85f40d 100644 --- a/receiver/src/request_handler_db_write.cpp +++ b/receiver/src/request_handler_db_write.cpp @@ -7,7 +7,7 @@ namespace asapo { Error RequestHandlerDbWrite::ProcessRequest(Request* request) const { if (db_name_.empty()) { - db_name_=request->GetBeamtimeId(); + db_name_ = request->GetBeamtimeId(); } if (Error err = ConnectToDbIfNeeded() ) { diff --git a/receiver/src/request_handler_file_write.cpp b/receiver/src/request_handler_file_write.cpp index 535035344..1702fc161 100644 --- a/receiver/src/request_handler_file_write.cpp +++ b/receiver/src/request_handler_file_write.cpp @@ -16,7 +16,7 @@ Error RequestHandlerFileWrite::ProcessRequest(Request* request) const { const FileData& data = request->GetData(); auto fname = request->GetFileName(); - auto root_folder = GetReceiverConfig()->root_folder + kPathSeparator + request->GetBeamtimeId()+kPathSeparator; + auto root_folder = GetReceiverConfig()->root_folder + kPathSeparator + request->GetBeamtimeId() + kPathSeparator; auto err = io__->WriteDataToFile(root_folder + fname, data, fsize); if (!err) { log__->Debug("saved file of size " + std::to_string(fsize) + " to " + root_folder + fname); diff --git a/receiver/src/requests_dispatcher.cpp b/receiver/src/requests_dispatcher.cpp index 37eb1be7d..d5703c878 100644 --- a/receiver/src/requests_dispatcher.cpp +++ b/receiver/src/requests_dispatcher.cpp @@ -7,14 +7,14 @@ namespace asapo { RequestsDispatcher::RequestsDispatcher(SocketDescriptor socket_fd, std::string address, Statistics* statistics) : statistics__{statistics}, - io__{GenerateDefaultIO()}, - log__{GetDefaultReceiverLogger()}, - request_factory__{new RequestFactory{}}, - socket_fd_{socket_fd}, - producer_uri_{std::move(address)} { + io__{GenerateDefaultIO()}, + log__{GetDefaultReceiverLogger()}, + request_factory__{new RequestFactory{}}, + socket_fd_{socket_fd}, +producer_uri_{std::move(address)} { } -NetworkErrorCode GetNetworkCodeFromError(const Error &err) { +NetworkErrorCode GetNetworkCodeFromError(const Error& err) { if (err) { if (err == IOErrorTemplates::kFileAlreadyExists) { return NetworkErrorCode::kNetErrorFileIdAlreadyInUse; @@ -27,7 +27,7 @@ NetworkErrorCode GetNetworkCodeFromError(const Error &err) { return NetworkErrorCode::kNetErrorNoError; } -Error RequestsDispatcher::ProcessRequest(const std::unique_ptr<Request> &request) const noexcept { +Error RequestsDispatcher::ProcessRequest(const std::unique_ptr<Request>& request) const noexcept { log__->Debug("processing request from " + producer_uri_ ); Error handle_err; handle_err = request->Handle(statistics__); @@ -46,32 +46,32 @@ Error RequestsDispatcher::ProcessRequest(const std::unique_ptr<Request> &request return handle_err == nullptr ? std::move(io_err) : std::move(handle_err); } -std::unique_ptr<Request> RequestsDispatcher::GetNextRequest(Error * err) +std::unique_ptr<Request> RequestsDispatcher::GetNextRequest(Error* err) const noexcept { //TODO: to be overwritten with MessagePack (or similar) -GenericRequestHeader generic_request_header; -statistics__-> -StartTimer(StatisticEntity::kNetwork); -io__-> -Receive(socket_fd_, &generic_request_header, -sizeof(GenericRequestHeader), err); -if(*err) { -log__->Error("error getting next request from " + producer_uri_+" - "+(*err)-> -Explain() -); -return nullptr; -} -statistics__-> -StopTimer(); -auto request = request_factory__->GenerateRequest(generic_request_header, socket_fd_,producer_uri_, err); -if (*err) { -log__->Error("error processing request from " + producer_uri_+" - "+(*err)-> -Explain() -); -} + GenericRequestHeader generic_request_header; + statistics__-> + StartTimer(StatisticEntity::kNetwork); + io__-> + Receive(socket_fd_, &generic_request_header, + sizeof(GenericRequestHeader), err); + if(*err) { + log__->Error("error getting next request from " + producer_uri_ + " - " + (*err)-> + Explain() + ); + return nullptr; + } + statistics__-> + StopTimer(); + auto request = request_factory__->GenerateRequest(generic_request_header, socket_fd_, producer_uri_, err); + if (*err) { + log__->Error("error processing request from " + producer_uri_ + " - " + (*err)-> + Explain() + ); + } -return -request; + return + request; } diff --git a/receiver/src/requests_dispatcher.h b/receiver/src/requests_dispatcher.h index 8acb96d7c..6af25e506 100644 --- a/receiver/src/requests_dispatcher.h +++ b/receiver/src/requests_dispatcher.h @@ -11,17 +11,17 @@ namespace asapo { class RequestsDispatcher { - public: - RequestsDispatcher(SocketDescriptor socket_fd, std::string address, Statistics* statistics); - VIRTUAL Error ProcessRequest(const std::unique_ptr<Request>& request) const noexcept; - VIRTUAL std::unique_ptr<Request> GetNextRequest(Error* err) const noexcept; - Statistics* statistics__; - std::unique_ptr<IO> io__; - const AbstractLogger* log__; - std::unique_ptr<RequestFactory> request_factory__; - private: - SocketDescriptor socket_fd_; - std::string producer_uri_; + public: + RequestsDispatcher(SocketDescriptor socket_fd, std::string address, Statistics* statistics); + VIRTUAL Error ProcessRequest(const std::unique_ptr<Request>& request) const noexcept; + VIRTUAL std::unique_ptr<Request> GetNextRequest(Error* err) const noexcept; + Statistics* statistics__; + std::unique_ptr<IO> io__; + const AbstractLogger* log__; + std::unique_ptr<RequestFactory> request_factory__; + private: + SocketDescriptor socket_fd_; + std::string producer_uri_; }; } diff --git a/receiver/unittests/receiver_mocking.h b/receiver/unittests/receiver_mocking.h index 891f3ba20..6187243e8 100644 --- a/receiver/unittests/receiver_mocking.h +++ b/receiver/unittests/receiver_mocking.h @@ -44,18 +44,18 @@ class MockStatistics : public asapo::Statistics { }; class MockRequest: public Request { - public: - MockRequest(const GenericRequestHeader& request_header, SocketDescriptor socket_fd,std::string origin_uri): - Request(request_header, socket_fd,std::move(origin_uri)) {}; + public: + MockRequest(const GenericRequestHeader& request_header, SocketDescriptor socket_fd, std::string origin_uri): + Request(request_header, socket_fd, std::move(origin_uri)) {}; - MOCK_CONST_METHOD0(GetFileName, std::string()); - MOCK_CONST_METHOD0(GetDataSize, uint64_t()); - MOCK_CONST_METHOD0(GetDataID, uint64_t()); - MOCK_CONST_METHOD0(GetData, const asapo::FileData & ()); - MOCK_CONST_METHOD0(GetBeamtimeId, const std::string & ()); - MOCK_CONST_METHOD0(GetOpCode, asapo::Opcode ()); - MOCK_CONST_METHOD0(GetMessage, const char* ()); - MOCK_METHOD1(SetBeamtimeId, void (std::string)); + MOCK_CONST_METHOD0(GetFileName, std::string()); + MOCK_CONST_METHOD0(GetDataSize, uint64_t()); + MOCK_CONST_METHOD0(GetDataID, uint64_t()); + MOCK_CONST_METHOD0(GetData, const asapo::FileData & ()); + MOCK_CONST_METHOD0(GetBeamtimeId, const std::string & ()); + MOCK_CONST_METHOD0(GetOpCode, asapo::Opcode ()); + MOCK_CONST_METHOD0(GetMessage, const char* ()); + MOCK_METHOD1(SetBeamtimeId, void (std::string)); }; diff --git a/receiver/unittests/test_connection.cpp b/receiver/unittests/test_connection.cpp index f340ccfdd..2ce08a8fc 100644 --- a/receiver/unittests/test_connection.cpp +++ b/receiver/unittests/test_connection.cpp @@ -66,21 +66,21 @@ TEST(Connection, Constructor) { class MockDispatcher: public asapo::RequestsDispatcher { - public: - MockDispatcher():asapo::RequestsDispatcher(0,"",nullptr){}; - Error ProcessRequest(const std::unique_ptr<Request>& request) const noexcept override { - return Error{ProcessRequest_t(request.get())}; - } - - std::unique_ptr<Request> GetNextRequest(Error* err) const noexcept override { - ErrorInterface* error = nullptr; - auto req = GetNextRequest_t(&error); - err->reset(error); - return std::unique_ptr<Request>{req}; - }; - - MOCK_CONST_METHOD1(ProcessRequest_t, ErrorInterface * (Request*)); - MOCK_CONST_METHOD1(GetNextRequest_t, Request * (asapo::ErrorInterface**)); + public: + MockDispatcher(): asapo::RequestsDispatcher(0, "", nullptr) {}; + Error ProcessRequest(const std::unique_ptr<Request>& request) const noexcept override { + return Error{ProcessRequest_t(request.get())}; + } + + std::unique_ptr<Request> GetNextRequest(Error* err) const noexcept override { + ErrorInterface* error = nullptr; + auto req = GetNextRequest_t(&error); + err->reset(error); + return std::unique_ptr<Request> {req}; + }; + + MOCK_CONST_METHOD1(ProcessRequest_t, ErrorInterface * (Request*)); + MOCK_CONST_METHOD1(GetNextRequest_t, Request * (asapo::ErrorInterface**)); }; @@ -94,13 +94,13 @@ class ConnectionTests : public Test { NiceMock<asapo::MockLogger> mock_logger; std::unique_ptr<Connection> connection; - void SetUp() override { + void SetUp() override { connection = std::unique_ptr<Connection> {new Connection{0, connected_uri, "some_tag"}}; connection->io__ = std::unique_ptr<asapo::IO> {&mock_io}; connection->statistics__ = std::unique_ptr<asapo::Statistics> {&mock_statictics}; connection->log__ = &mock_logger; connection->requests_dispatcher__ = std::unique_ptr<asapo::RequestsDispatcher> {&mock_dispatcher}; - EXPECT_CALL(mock_io, CloseSocket_t(_,_)); + EXPECT_CALL(mock_io, CloseSocket_t(_, _)); EXPECT_CALL(mock_statictics, Send_t()); EXPECT_CALL(mock_logger, Info(HasSubstr("disconnected"))); @@ -111,38 +111,38 @@ class ConnectionTests : public Test { connection->requests_dispatcher__.release(); } - Request* MockGetNext(bool error){ - if (error ){ - EXPECT_CALL(mock_dispatcher, GetNextRequest_t(_)) - .WillOnce(DoAll( - SetArgPointee<0>(new asapo::SimpleError{"error"}), - Return(nullptr) - )); - return nullptr; - } else { - auto request = new Request(GenericRequestHeader{asapo::kOpcodeUnknownOp,0,1,""},0,connected_uri); - EXPECT_CALL(mock_dispatcher, GetNextRequest_t(_)) - .WillOnce(DoAll( - SetArgPointee<0>(nullptr), - Return(request) - )); - return request; - } - } - - void MockProcessRequest(Request* request,bool error) { - if (error ){ - EXPECT_CALL(mock_dispatcher, ProcessRequest_t(request)) - .WillOnce( - Return(new asapo::SimpleError{"error"}) - ); - } else { - EXPECT_CALL(mock_dispatcher, ProcessRequest_t(request)) - .WillOnce( - Return(nullptr) - ); - } - } + Request* MockGetNext(bool error) { + if (error ) { + EXPECT_CALL(mock_dispatcher, GetNextRequest_t(_)) + .WillOnce(DoAll( + SetArgPointee<0>(new asapo::SimpleError{"error"}), + Return(nullptr) + )); + return nullptr; + } else { + auto request = new Request(GenericRequestHeader{asapo::kOpcodeUnknownOp, 0, 1, ""}, 0, connected_uri); + EXPECT_CALL(mock_dispatcher, GetNextRequest_t(_)) + .WillOnce(DoAll( + SetArgPointee<0>(nullptr), + Return(request) + )); + return request; + } + } + + void MockProcessRequest(Request* request, bool error) { + if (error ) { + EXPECT_CALL(mock_dispatcher, ProcessRequest_t(request)) + .WillOnce( + Return(new asapo::SimpleError{"error"}) + ); + } else { + EXPECT_CALL(mock_dispatcher, ProcessRequest_t(request)) + .WillOnce( + Return(nullptr) + ); + } + } }; @@ -158,11 +158,11 @@ TEST_F(ConnectionTests, ProcessStatisticsWhenOKProcessRequest) { InSequence sequence; auto request = MockGetNext(false); - MockProcessRequest(request,false); + MockProcessRequest(request, false); EXPECT_CALL(mock_statictics, IncreaseRequestCounter_t()); - EXPECT_CALL(mock_statictics, IncreaseRequestDataVolume_t(1+ sizeof(asapo::GenericRequestHeader) + - sizeof(asapo::GenericNetworkResponse))); + EXPECT_CALL(mock_statictics, IncreaseRequestDataVolume_t(1 + sizeof(asapo::GenericRequestHeader) + + sizeof(asapo::GenericNetworkResponse))); EXPECT_CALL(mock_statictics, SendIfNeeded_t()); @@ -175,7 +175,7 @@ TEST_F(ConnectionTests, ProcessStatisticsWhenOKProcessRequest) { TEST_F(ConnectionTests, ExitOnErrorsWithProcessRequest) { auto request = MockGetNext(false); - MockProcessRequest(request,true); + MockProcessRequest(request, true); connection->Listen(); } diff --git a/receiver/unittests/test_request.cpp b/receiver/unittests/test_request.cpp index c946249f1..c6e84575d 100644 --- a/receiver/unittests/test_request.cpp +++ b/receiver/unittests/test_request.cpp @@ -67,9 +67,9 @@ class RequestTests : public Test { asapo::SocketDescriptor socket_fd_{1}; uint64_t data_size_ {100}; uint64_t data_id_{15}; - std::string expected_origin_uri="origin_uri"; - asapo::Opcode expected_op_code=asapo::kOpcodeTransferData; - char expected_request_message[asapo::kMaxMessageSize]="test message"; + std::string expected_origin_uri = "origin_uri"; + asapo::Opcode expected_op_code = asapo::kOpcodeTransferData; + char expected_request_message[asapo::kMaxMessageSize] = "test message"; std::unique_ptr<Request> request; NiceMock<MockIO> mock_io; NiceMock<MockStatistics> mock_statistics; @@ -79,8 +79,8 @@ class RequestTests : public Test { generic_request_header.data_size = data_size_; generic_request_header.data_id = data_id_; generic_request_header.op_code = expected_op_code; - strcpy(generic_request_header.message,expected_request_message); - request.reset(new Request{generic_request_header, socket_fd_,expected_origin_uri}); + strcpy(generic_request_header.message, expected_request_message); + request.reset(new Request{generic_request_header, socket_fd_, expected_origin_uri}); request->io__ = std::unique_ptr<asapo::IO> {&mock_io}; ON_CALL(mock_io, Receive_t(socket_fd_, _, data_size_, _)).WillByDefault( DoAll(SetArgPointee<3>(nullptr), @@ -96,7 +96,7 @@ class RequestTests : public Test { TEST_F(RequestTests, HandleDoesNotReceiveEmptyData) { generic_request_header.data_size = 0; request->io__.release(); - request.reset(new Request{generic_request_header, socket_fd_,""}); + request.reset(new Request{generic_request_header, socket_fd_, ""}); request->io__ = std::unique_ptr<asapo::IO> {&mock_io};; EXPECT_CALL(mock_io, Receive_t(_, _, _, _)).Times(0); diff --git a/receiver/unittests/test_request_factory.cpp b/receiver/unittests/test_request_factory.cpp index 8ebfba7e2..326c8011f 100644 --- a/receiver/unittests/test_request_factory.cpp +++ b/receiver/unittests/test_request_factory.cpp @@ -67,14 +67,14 @@ class FactoryTests : public Test { TEST_F(FactoryTests, ErrorOnWrongCode) { generic_request_header.op_code = asapo::Opcode::kOpcodeUnknownOp; - auto request = factory.GenerateRequest(generic_request_header, 1,origin_uri, &err); + auto request = factory.GenerateRequest(generic_request_header, 1, origin_uri, &err); ASSERT_THAT(err, Ne(nullptr)); } TEST_F(FactoryTests, ReturnsDataRequestOnkNetOpcodeSendDataCode) { generic_request_header.op_code = asapo::Opcode::kOpcodeTransferData; - auto request = factory.GenerateRequest(generic_request_header, 1,origin_uri, &err); + auto request = factory.GenerateRequest(generic_request_header, 1, origin_uri, &err); ASSERT_THAT(err, Eq(nullptr)); ASSERT_THAT(dynamic_cast<asapo::Request*>(request.get()), Ne(nullptr)); @@ -86,7 +86,7 @@ TEST_F(FactoryTests, ReturnsDataRequestOnkNetOpcodeSendDataCode) { TEST_F(FactoryTests, ReturnsDataRequestForAuthorizationCode) { generic_request_header.op_code = asapo::Opcode::kOpcodeAuthorize; - auto request = factory.GenerateRequest(generic_request_header, 1,origin_uri, &err); + auto request = factory.GenerateRequest(generic_request_header, 1, origin_uri, &err); ASSERT_THAT(err, Eq(nullptr)); ASSERT_THAT(dynamic_cast<asapo::Request*>(request.get()), Ne(nullptr)); @@ -99,7 +99,7 @@ TEST_F(FactoryTests, DoNotAddDiskWriterIfNotWanted) { SetReceiverConfig(config); - auto request = factory.GenerateRequest(generic_request_header, 1,origin_uri, &err); + auto request = factory.GenerateRequest(generic_request_header, 1, origin_uri, &err); ASSERT_THAT(err, Eq(nullptr)); ASSERT_THAT(request->GetListHandlers().size(), Eq(2)); ASSERT_THAT(dynamic_cast<const asapo::RequestHandlerAuthorize*>(request->GetListHandlers()[0]), Ne(nullptr)); @@ -111,7 +111,7 @@ TEST_F(FactoryTests, DoNotAddDbWriterIfNotWanted) { SetReceiverConfig(config); - auto request = factory.GenerateRequest(generic_request_header, 1,origin_uri, &err); + auto request = factory.GenerateRequest(generic_request_header, 1, origin_uri, &err); ASSERT_THAT(err, Eq(nullptr)); ASSERT_THAT(request->GetListHandlers().size(), Eq(2)); ASSERT_THAT(dynamic_cast<const asapo::RequestHandlerAuthorize*>(request->GetListHandlers()[0]), Ne(nullptr)); diff --git a/receiver/unittests/test_request_handler_authorizer.cpp b/receiver/unittests/test_request_handler_authorizer.cpp index 268560827..1b2d7b423 100644 --- a/receiver/unittests/test_request_handler_authorizer.cpp +++ b/receiver/unittests/test_request_handler_authorizer.cpp @@ -61,19 +61,19 @@ class AuthorizerHandlerTests : public Test { RequestHandlerAuthorize handler; MockHttpClient mock_http_client; std::unique_ptr<MockRequest> mock_request; - ReceiverConfig config; + ReceiverConfig config; - NiceMock<asapo::MockLogger> mock_logger; + NiceMock<asapo::MockLogger> mock_logger; std::string expected_beamtime_id = "beamtime_id"; std::string expected_producer_uri = "producer_uri"; std::string expected_authorization_server = "authorizer_host"; - std::string expect_request_string = std::string("{\"BeamtimeId\":\"") + expected_beamtime_id+ "\",\"OriginHost\":\""+ - expected_producer_uri+"\"}"; + std::string expect_request_string = std::string("{\"BeamtimeId\":\"") + expected_beamtime_id + "\",\"OriginHost\":\"" + + expected_producer_uri + "\"}"; - void MockRequestData(); + void MockRequestData(); void SetUp() override { GenericRequestHeader request_header; - mock_request.reset(new MockRequest{request_header, 1,expected_producer_uri}); + mock_request.reset(new MockRequest{request_header, 1, expected_producer_uri}); handler.http_client__ = std::unique_ptr<asapo::HttpClient> {&mock_http_client}; handler.log__ = &mock_logger; config.authorization_server = expected_authorization_server; @@ -83,28 +83,26 @@ class AuthorizerHandlerTests : public Test { void TearDown() override { handler.http_client__.release(); } - void MockAuthRequest(bool error,HttpCode code = HttpCode::OK) { - if (error) - { - EXPECT_CALL(mock_http_client, Post_t(expected_authorization_server+"/authorize", expect_request_string, _, _)). - WillOnce( + void MockAuthRequest(bool error, HttpCode code = HttpCode::OK) { + if (error) { + EXPECT_CALL(mock_http_client, Post_t(expected_authorization_server + "/authorize", expect_request_string, _, _)). + WillOnce( DoAll(SetArgPointee<3>(new asapo::SimpleError("http error")), Return("") - )); + )); EXPECT_CALL(mock_logger, Error(AllOf(HasSubstr("failure authorizing"), HasSubstr("http error"), HasSubstr(expected_beamtime_id), HasSubstr(expected_producer_uri), HasSubstr(expected_authorization_server)))); - } else - { - EXPECT_CALL(mock_http_client, Post_t(expected_authorization_server+"/authorize", expect_request_string, _, _)). - WillOnce( + } else { + EXPECT_CALL(mock_http_client, Post_t(expected_authorization_server + "/authorize", expect_request_string, _, _)). + WillOnce( DoAll(SetArgPointee<3>(nullptr), SetArgPointee<2>(code), Return(expected_beamtime_id) - )); + )); if (code != HttpCode::OK) { EXPECT_CALL(mock_logger, Error(AllOf(HasSubstr("failure authorizing"), HasSubstr("return code"), @@ -120,26 +118,26 @@ class AuthorizerHandlerTests : public Test { } Error MockFirstAuthorization(bool error, HttpCode code = HttpCode::OK) { EXPECT_CALL(*mock_request, GetOpCode()) - .WillOnce(Return(asapo::kOpcodeAuthorize)) - ; + .WillOnce(Return(asapo::kOpcodeAuthorize)) + ; EXPECT_CALL(*mock_request, GetMessage()) - .WillOnce(Return(expected_beamtime_id.c_str())) - ; + .WillOnce(Return(expected_beamtime_id.c_str())) + ; - MockAuthRequest(error,code); + MockAuthRequest(error, code); return handler.ProcessRequest(mock_request.get()); } Error MockRequestAuthorization(bool error, HttpCode code = HttpCode::OK) { - EXPECT_CALL(*mock_request, GetOpCode()) - .WillOnce(Return(asapo::kOpcodeTransferData)) - ; + EXPECT_CALL(*mock_request, GetOpCode()) + .WillOnce(Return(asapo::kOpcodeTransferData)) + ; if (!error && code == HttpCode::OK) { EXPECT_CALL(*mock_request, SetBeamtimeId(expected_beamtime_id)); } - MockAuthRequest(error,code); - return handler.ProcessRequest(mock_request.get()); - } + MockAuthRequest(error, code); + return handler.ProcessRequest(mock_request.get()); + } }; @@ -150,8 +148,8 @@ TEST_F(AuthorizerHandlerTests, CheckStatisticEntity) { TEST_F(AuthorizerHandlerTests, ErrorNotAuthorizedYet) { EXPECT_CALL(*mock_request, GetOpCode()) - .WillOnce(Return(asapo::kOpcodeTransferData)) - ; + .WillOnce(Return(asapo::kOpcodeTransferData)) + ; auto err = handler.ProcessRequest(mock_request.get()); @@ -168,7 +166,7 @@ TEST_F(AuthorizerHandlerTests, ErrorProcessingAuthorizeRequest) { TEST_F(AuthorizerHandlerTests, AuthorizeRequestreturns401) { - auto err = MockFirstAuthorization(false,HttpCode::Unauthorized); + auto err = MockFirstAuthorization(false, HttpCode::Unauthorized); ASSERT_THAT(err, Eq(asapo::ReceiverErrorTemplates::kAuthorizationFailure)); } @@ -183,7 +181,7 @@ TEST_F(AuthorizerHandlerTests, AuthorizeOk) { TEST_F(AuthorizerHandlerTests, ErrorOnSecondAuthorize) { MockFirstAuthorization(false); EXPECT_CALL(*mock_request, GetOpCode()) - .WillOnce(Return(asapo::kOpcodeAuthorize)); + .WillOnce(Return(asapo::kOpcodeAuthorize)); EXPECT_CALL(mock_logger, Error(AllOf(HasSubstr("failure authorizing"), HasSubstr("already authorized"), @@ -206,7 +204,7 @@ TEST_F(AuthorizerHandlerTests, ErrorOnDataTransferRequestAuthorize) { TEST_F(AuthorizerHandlerTests, DataTransferRequestAuthorizeReturns401) { MockFirstAuthorization(false); - auto err = MockRequestAuthorization(false,HttpCode::Unauthorized); + auto err = MockRequestAuthorization(false, HttpCode::Unauthorized); ASSERT_THAT(err, Eq(asapo::ReceiverErrorTemplates::kAuthorizationFailure)); } @@ -224,7 +222,7 @@ TEST_F(AuthorizerHandlerTests, DataTransferRequestAuthorizeUsesCachedValue) { SetReceiverConfig(config); MockFirstAuthorization(false); EXPECT_CALL(*mock_request, GetOpCode()) - .WillOnce(Return(asapo::kOpcodeTransferData)); + .WillOnce(Return(asapo::kOpcodeTransferData)); EXPECT_CALL(mock_http_client, Post_t(_, _, _, _)).Times(0); EXPECT_CALL(*mock_request, SetBeamtimeId(expected_beamtime_id)); diff --git a/receiver/unittests/test_request_handler_db_writer.cpp b/receiver/unittests/test_request_handler_db_writer.cpp index ac718d4c1..db675f888 100644 --- a/receiver/unittests/test_request_handler_db_writer.cpp +++ b/receiver/unittests/test_request_handler_db_writer.cpp @@ -61,14 +61,14 @@ class DbWriterHandlerTests : public Test { NiceMock<asapo::MockLogger> mock_logger; ReceiverConfig config; std::string expected_beamtime_id = "beamtime_id"; - void SetUp() override { + void SetUp() override { GenericRequestHeader request_header; request_header.data_id = 2; handler.db_client__ = std::unique_ptr<asapo::Database> {&mock_db}; handler.log__ = &mock_logger; - mock_request.reset(new NiceMock<MockRequest> {request_header, 1,""}); + mock_request.reset(new NiceMock<MockRequest> {request_header, 1, ""}); ON_CALL(*mock_request, GetBeamtimeId()).WillByDefault(ReturnRef(expected_beamtime_id)); - } + } void TearDown() override { handler.db_client__.release(); } @@ -96,8 +96,8 @@ TEST_F(DbWriterHandlerTests, ProcessRequestCallsConnectDbWhenNotConnected) { EXPECT_CALL(*mock_request, GetBeamtimeId()) - .WillOnce(ReturnRef(expected_beamtime_id)) - ; + .WillOnce(ReturnRef(expected_beamtime_id)) + ; EXPECT_CALL(mock_db, Connect_t("127.0.0.1:27017", expected_beamtime_id, asapo::kDBCollectionName)). WillOnce(testing::Return(nullptr)); @@ -141,8 +141,8 @@ TEST_F(DbWriterHandlerTests, CallsInsert) { SetReceiverConfig(config); EXPECT_CALL(*mock_request, GetBeamtimeId()) - .WillOnce(ReturnRef(expected_beamtime_id)) - ; + .WillOnce(ReturnRef(expected_beamtime_id)) + ; EXPECT_CALL(mock_db, Connect_t(config.broker_db_uri, expected_beamtime_id, asapo::kDBCollectionName)). WillOnce(testing::Return(nullptr)); diff --git a/receiver/unittests/test_request_handler_file_write.cpp b/receiver/unittests/test_request_handler_file_write.cpp index 7073736e6..2ae3aedde 100644 --- a/receiver/unittests/test_request_handler_file_write.cpp +++ b/receiver/unittests/test_request_handler_file_write.cpp @@ -57,12 +57,12 @@ class FileWriteHandlerTests : public Test { NiceMock<asapo::MockLogger> mock_logger; std::string expected_file_name = "2.bin"; std::string expected_beamtime_id = "beamtime_id"; - uint64_t expected_file_size = 10; + uint64_t expected_file_size = 10; void MockRequestData(); void SetUp() override { GenericRequestHeader request_header; request_header.data_id = 2; - mock_request.reset(new MockRequest{request_header, 1,""}); + mock_request.reset(new MockRequest{request_header, 1, ""}); handler.io__ = std::unique_ptr<asapo::IO> {&mock_io}; handler.log__ = &mock_logger; } @@ -109,8 +109,8 @@ void FileWriteHandlerTests::MockRequestData() { ; EXPECT_CALL(*mock_request, GetBeamtimeId()) - .WillOnce(ReturnRef(expected_beamtime_id)) - ; + .WillOnce(ReturnRef(expected_beamtime_id)) + ; EXPECT_CALL(*mock_request, GetFileName()) .WillOnce(Return(expected_file_name)) @@ -126,7 +126,7 @@ TEST_F(FileWriteHandlerTests, CallsWriteFile) { MockRequestData(); std::string expected_path = std::string("test_folder") + asapo::kPathSeparator + expected_beamtime_id - + asapo::kPathSeparator + expected_file_name; + + asapo::kPathSeparator + expected_file_name; EXPECT_CALL(mock_io, WriteDataToFile_t(expected_path.c_str(), _, expected_file_size)) .WillOnce( diff --git a/receiver/unittests/test_requests_dispatcher.cpp b/receiver/unittests/test_requests_dispatcher.cpp index 0f8bed97c..76cefa5a6 100644 --- a/receiver/unittests/test_requests_dispatcher.cpp +++ b/receiver/unittests/test_requests_dispatcher.cpp @@ -54,7 +54,7 @@ namespace { TEST(RequestDispatcher, Constructor) { asapo::Statistics* stat; - RequestsDispatcher dispatcher{0, "some_address",stat}; + RequestsDispatcher dispatcher{0, "some_address", stat}; ASSERT_THAT(dynamic_cast<const asapo::Statistics*>(dispatcher.statistics__), Ne(nullptr)); ASSERT_THAT(dynamic_cast<asapo::IO*>(dispatcher.io__.get()), Ne(nullptr)); ASSERT_THAT(dynamic_cast<asapo::RequestFactory*>(dispatcher.request_factory__.get()), Ne(nullptr)); @@ -62,30 +62,30 @@ TEST(RequestDispatcher, Constructor) { } class MockRequest: public Request { - public: - MockRequest(const GenericRequestHeader& request_header, SocketDescriptor socket_fd): - Request(request_header, socket_fd,"") {}; - Error Handle(Statistics* statistics) override { - return Error{Handle_t()}; - }; - MOCK_CONST_METHOD0(Handle_t, ErrorInterface * ()); + public: + MockRequest(const GenericRequestHeader& request_header, SocketDescriptor socket_fd): + Request(request_header, socket_fd, "") {}; + Error Handle(Statistics* statistics) override { + return Error{Handle_t()}; + }; + MOCK_CONST_METHOD0(Handle_t, ErrorInterface * ()); }; class MockRequestFactory: public asapo::RequestFactory { - public: - std::unique_ptr<Request> GenerateRequest(const GenericRequestHeader& request_header, - SocketDescriptor socket_fd,std::string origin_uri, - Error* err) const noexcept override { - ErrorInterface* error = nullptr; - auto res = GenerateRequest_t(request_header, socket_fd,origin_uri, &error); - err->reset(error); - return std::unique_ptr<Request> {res}; - } - - MOCK_CONST_METHOD4(GenerateRequest_t, Request * (const GenericRequestHeader&, - SocketDescriptor ,std::string , - ErrorInterface**)); + public: + std::unique_ptr<Request> GenerateRequest(const GenericRequestHeader& request_header, + SocketDescriptor socket_fd, std::string origin_uri, + Error* err) const noexcept override { + ErrorInterface* error = nullptr; + auto res = GenerateRequest_t(request_header, socket_fd, origin_uri, &error); + err->reset(error); + return std::unique_ptr<Request> {res}; + } + + MOCK_CONST_METHOD4(GenerateRequest_t, Request * (const GenericRequestHeader&, + SocketDescriptor , std::string , + ErrorInterface**)); }; @@ -97,83 +97,83 @@ ACTION_P(SaveArg1ToGenericNetworkResponse, value) { } class RequestsDispatcherTests : public Test { - public: - std::unique_ptr<RequestsDispatcher> dispatcher; - std::string connected_uri{"some_address"}; - NiceMock<MockIO> mock_io; - MockRequestFactory mock_factory; - NiceMock<MockStatistics> mock_statictics; - NiceMock<asapo::MockLogger> mock_logger; - - asapo::ReceiverConfig test_config; - GenericRequestHeader header; - MockRequest mock_request{GenericRequestHeader{},1}; - std::unique_ptr<Request> request{&mock_request}; - - void SetUp() override { - test_config.authorization_interval_ms = 0; - SetReceiverConfig(test_config); - dispatcher = std::unique_ptr<RequestsDispatcher> {new RequestsDispatcher{0, connected_uri, &mock_statictics}}; - dispatcher->io__ = std::unique_ptr<asapo::IO> {&mock_io}; - dispatcher->statistics__ = &mock_statictics; - dispatcher->request_factory__ = std::unique_ptr<asapo::RequestFactory> {&mock_factory}; - dispatcher->log__ = &mock_logger; - - } - void TearDown() override { - dispatcher->io__.release(); - dispatcher->request_factory__.release(); - request.release(); - } - void MockReceiveRequest(bool error ){ - EXPECT_CALL(mock_io, Receive_t(_, _, _, _)) - .WillOnce( - DoAll(SetArgPointee<3>(error?asapo::IOErrorTemplates::kUnknownIOError.Generate().release():nullptr), - Return(0)) - ); - if (error) { - EXPECT_CALL(mock_logger, Error(AllOf(HasSubstr("getting next request"), HasSubstr(connected_uri)))); - } - - } - void MockCreateRequest(bool error ){ - EXPECT_CALL(mock_factory, GenerateRequest_t(_, _, _,_)) - .WillOnce( - DoAll(SetArgPointee<3>(error?asapo::ReceiverErrorTemplates::kInvalidOpCode.Generate().release():nullptr), - Return(nullptr)) - ); - if (error) { - EXPECT_CALL(mock_logger, Error(AllOf(HasSubstr("error processing request from"), HasSubstr(connected_uri)))); - } - - - } - void MockHandleRequest(bool error,Error err = asapo::IOErrorTemplates::kUnknownIOError.Generate() ) { - EXPECT_CALL(mock_logger, Debug(AllOf(HasSubstr("processing request from"), HasSubstr(connected_uri)))); - - EXPECT_CALL(mock_request, Handle_t()).WillOnce( - Return(error?err.release():nullptr) - ); - if (error) { - EXPECT_CALL(mock_logger, Error(AllOf(HasSubstr("error processing request from"), HasSubstr(connected_uri)))); - } - - - } - GenericNetworkResponse MockSendResponse(bool error ) { - EXPECT_CALL(mock_logger, Debug(AllOf(HasSubstr("sending response to"), HasSubstr(connected_uri)))); - GenericNetworkResponse response; - EXPECT_CALL(mock_io, Send_t(_, _, _, _)).WillOnce( - DoAll(SetArgPointee<3>(error?asapo::IOErrorTemplates::kConnectionRefused.Generate().release():nullptr), - SaveArg1ToGenericNetworkResponse(&response), - Return(0) - )); - if (error) { - EXPECT_CALL(mock_logger, Error(AllOf(HasSubstr("error sending response"), HasSubstr(connected_uri)))); - } - - return response; - } + public: + std::unique_ptr<RequestsDispatcher> dispatcher; + std::string connected_uri{"some_address"}; + NiceMock<MockIO> mock_io; + MockRequestFactory mock_factory; + NiceMock<MockStatistics> mock_statictics; + NiceMock<asapo::MockLogger> mock_logger; + + asapo::ReceiverConfig test_config; + GenericRequestHeader header; + MockRequest mock_request{GenericRequestHeader{}, 1}; + std::unique_ptr<Request> request{&mock_request}; + + void SetUp() override { + test_config.authorization_interval_ms = 0; + SetReceiverConfig(test_config); + dispatcher = std::unique_ptr<RequestsDispatcher> {new RequestsDispatcher{0, connected_uri, &mock_statictics}}; + dispatcher->io__ = std::unique_ptr<asapo::IO> {&mock_io}; + dispatcher->statistics__ = &mock_statictics; + dispatcher->request_factory__ = std::unique_ptr<asapo::RequestFactory> {&mock_factory}; + dispatcher->log__ = &mock_logger; + + } + void TearDown() override { + dispatcher->io__.release(); + dispatcher->request_factory__.release(); + request.release(); + } + void MockReceiveRequest(bool error ) { + EXPECT_CALL(mock_io, Receive_t(_, _, _, _)) + .WillOnce( + DoAll(SetArgPointee<3>(error ? asapo::IOErrorTemplates::kUnknownIOError.Generate().release() : nullptr), + Return(0)) + ); + if (error) { + EXPECT_CALL(mock_logger, Error(AllOf(HasSubstr("getting next request"), HasSubstr(connected_uri)))); + } + + } + void MockCreateRequest(bool error ) { + EXPECT_CALL(mock_factory, GenerateRequest_t(_, _, _, _)) + .WillOnce( + DoAll(SetArgPointee<3>(error ? asapo::ReceiverErrorTemplates::kInvalidOpCode.Generate().release() : nullptr), + Return(nullptr)) + ); + if (error) { + EXPECT_CALL(mock_logger, Error(AllOf(HasSubstr("error processing request from"), HasSubstr(connected_uri)))); + } + + + } + void MockHandleRequest(bool error, Error err = asapo::IOErrorTemplates::kUnknownIOError.Generate() ) { + EXPECT_CALL(mock_logger, Debug(AllOf(HasSubstr("processing request from"), HasSubstr(connected_uri)))); + + EXPECT_CALL(mock_request, Handle_t()).WillOnce( + Return(error ? err.release() : nullptr) + ); + if (error) { + EXPECT_CALL(mock_logger, Error(AllOf(HasSubstr("error processing request from"), HasSubstr(connected_uri)))); + } + + + } + GenericNetworkResponse MockSendResponse(bool error ) { + EXPECT_CALL(mock_logger, Debug(AllOf(HasSubstr("sending response to"), HasSubstr(connected_uri)))); + GenericNetworkResponse response; + EXPECT_CALL(mock_io, Send_t(_, _, _, _)).WillOnce( + DoAll(SetArgPointee<3>(error ? asapo::IOErrorTemplates::kConnectionRefused.Generate().release() : nullptr), + SaveArg1ToGenericNetworkResponse(&response), + Return(0) + )); + if (error) { + EXPECT_CALL(mock_logger, Error(AllOf(HasSubstr("error sending response"), HasSubstr(connected_uri)))); + } + + return response; + } }; @@ -239,7 +239,7 @@ TEST_F(RequestsDispatcherTests, OkProcessRequestSendOK) { TEST_F(RequestsDispatcherTests, ProcessRequestReturnsAlreadyExist) { - MockHandleRequest(true,asapo::IOErrorTemplates::kFileAlreadyExists.Generate()); + MockHandleRequest(true, asapo::IOErrorTemplates::kFileAlreadyExists.Generate()); auto response = MockSendResponse(false); auto err = dispatcher->ProcessRequest(request); @@ -250,7 +250,7 @@ TEST_F(RequestsDispatcherTests, ProcessRequestReturnsAlreadyExist) { } TEST_F(RequestsDispatcherTests, ProcessRequestReturnsAuthorizationFailure) { - MockHandleRequest(true,asapo::ReceiverErrorTemplates::kAuthorizationFailure.Generate()); + MockHandleRequest(true, asapo::ReceiverErrorTemplates::kAuthorizationFailure.Generate()); auto response = MockSendResponse(false); auto err = dispatcher->ProcessRequest(request); -- GitLab