Skip to content

Commit

Permalink
Adds basic tests for dispatcher classes
Browse files Browse the repository at this point in the history
  • Loading branch information
ksysoev committed Apr 7, 2024
1 parent 740f0c3 commit 22cbf8c
Show file tree
Hide file tree
Showing 6 changed files with 15 additions and 13 deletions.
5 changes: 4 additions & 1 deletion .mockery.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,8 @@ mock-build-tags: "!compile"
packages:
github.com/ksysoev/wasabi:
interfaces:
Dispatcher:
ConnectionRegistry:
Dispatcher:
Backend:
RequestHandler:
Connection:
8 changes: 1 addition & 7 deletions dispatch/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package dispatch
import "github.com/ksysoev/wasabi"

// RequestMiddlewere is interface for request middleweres
type RequestMiddlewere func(next RequestHandler) RequestHandler
type RequestMiddlewere func(next wasabi.RequestHandler) wasabi.RequestHandler

// RequestHandlerFunc is a function that implements RequestHandler interface
type RequestHandlerFunc func(conn wasabi.Connection, req wasabi.Request) error
Expand All @@ -12,9 +12,3 @@ type RequestHandlerFunc func(conn wasabi.Connection, req wasabi.Request) error
func (f RequestHandlerFunc) Handle(conn wasabi.Connection, req wasabi.Request) error {
return f(conn, req)
}

// TODO: Shall we moove it wasabi package?
// RequestHandler is interface for request handlers
type RequestHandler interface {
Handle(conn wasabi.Connection, req wasabi.Request) error
}
2 changes: 1 addition & 1 deletion dispatch/dispatcher.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ func (d *PipeDispatcher) Use(middlewere RequestMiddlewere) {
}

// useMiddleware prepare request handler with middleweres chain
func (d *PipeDispatcher) useMiddleware(endpoint RequestHandler) RequestHandler {
func (d *PipeDispatcher) useMiddleware(endpoint wasabi.RequestHandler) wasabi.RequestHandler {
for i := len(d.middlewares) - 1; i >= 0; i-- {
endpoint = d.middlewares[i](endpoint)
}
Expand Down
5 changes: 5 additions & 0 deletions interfaces.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,8 @@ type Connection interface {
ID() string
HandleRequests()
}

// RequestHandler is interface for request handlers
type RequestHandler interface {
Handle(conn Connection, req Request) error
}
4 changes: 2 additions & 2 deletions middleware/request/error_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import (

type ErrorHandler func(conn wasabi.Connection, req wasabi.Request, err error) error

func NewErrorHandlingMiddleware(onError ErrorHandler) func(next dispatch.RequestHandler) dispatch.RequestHandler {
return func(next dispatch.RequestHandler) dispatch.RequestHandler {
func NewErrorHandlingMiddleware(onError ErrorHandler) func(next wasabi.RequestHandler) wasabi.RequestHandler {
return func(next wasabi.RequestHandler) wasabi.RequestHandler {
return dispatch.RequestHandlerFunc(func(conn wasabi.Connection, req wasabi.Request) error {
err := next.Handle(conn, req)

Expand Down
4 changes: 2 additions & 2 deletions middleware/request/throttler.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ import (

type token struct{}

func NewTrottlerMiddleware(limit uint) func(next dispatch.RequestHandler) dispatch.RequestHandler {
func NewTrottlerMiddleware(limit uint) func(next wasabi.RequestHandler) wasabi.RequestHandler {
sem := make(chan token, limit)

return func(next dispatch.RequestHandler) dispatch.RequestHandler {
return func(next wasabi.RequestHandler) wasabi.RequestHandler {
return dispatch.RequestHandlerFunc(func(conn wasabi.Connection, req wasabi.Request) error {
select {
case sem <- token{}:
Expand Down

0 comments on commit 22cbf8c

Please sign in to comment.