mirror of https://github.com/dapr/go-sdk.git
				
				
				
			* handler checks addressing issue #100 * handler check tests
This commit is contained in:
		
							parent
							
								
									0a93facbba
								
							
						
					
					
						commit
						b7a5b80a89
					
				|  | @ -15,6 +15,9 @@ func (s *Server) AddBindingInvocationHandler(name string, fn func(ctx context.Co | ||||||
| 	if name == "" { | 	if name == "" { | ||||||
| 		return fmt.Errorf("binding name required") | 		return fmt.Errorf("binding name required") | ||||||
| 	} | 	} | ||||||
|  | 	if fn == nil { | ||||||
|  | 		return fmt.Errorf("binding handler required") | ||||||
|  | 	} | ||||||
| 	s.bindingHandlers[name] = fn | 	s.bindingHandlers[name] = fn | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -15,6 +15,9 @@ func (s *Server) AddServiceInvocationHandler(method string, fn func(ctx context. | ||||||
| 	if method == "" { | 	if method == "" { | ||||||
| 		return fmt.Errorf("servie name required") | 		return fmt.Errorf("servie name required") | ||||||
| 	} | 	} | ||||||
|  | 	if fn == nil { | ||||||
|  | 		return fmt.Errorf("invocation handler required") | ||||||
|  | 	} | ||||||
| 	s.invokeHandlers[method] = fn | 	s.invokeHandlers[method] = fn | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -21,6 +21,9 @@ func (s *Server) AddTopicEventHandler(sub *common.Subscription, fn func(ctx cont | ||||||
| 	if sub.PubsubName == "" { | 	if sub.PubsubName == "" { | ||||||
| 		return errors.New("pub/sub name required") | 		return errors.New("pub/sub name required") | ||||||
| 	} | 	} | ||||||
|  | 	if fn == nil { | ||||||
|  | 		return fmt.Errorf("topic handler required") | ||||||
|  | 	} | ||||||
| 	key := fmt.Sprintf("%s-%s", sub.PubsubName, sub.Topic) | 	key := fmt.Sprintf("%s-%s", sub.PubsubName, sub.Topic) | ||||||
| 	s.topicSubscriptions[key] = &topicEventHandler{ | 	s.topicSubscriptions[key] = &topicEventHandler{ | ||||||
| 		component: sub.PubsubName, | 		component: sub.PubsubName, | ||||||
|  |  | ||||||
|  | @ -15,6 +15,9 @@ func (s *Server) AddBindingInvocationHandler(route string, fn func(ctx context.C | ||||||
| 	if route == "" { | 	if route == "" { | ||||||
| 		return fmt.Errorf("binding route required") | 		return fmt.Errorf("binding route required") | ||||||
| 	} | 	} | ||||||
|  | 	if fn == nil { | ||||||
|  | 		return fmt.Errorf("binding handler required") | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 	if !strings.HasPrefix(route, "/") { | 	if !strings.HasPrefix(route, "/") { | ||||||
| 		route = fmt.Sprintf("/%s", route) | 		route = fmt.Sprintf("/%s", route) | ||||||
|  |  | ||||||
|  | @ -12,6 +12,12 @@ import ( | ||||||
| 	"github.com/stretchr/testify/assert" | 	"github.com/stretchr/testify/assert" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | func TestBindingHandlerWithoutHandler(t *testing.T) { | ||||||
|  | 	s := newServer("", nil) | ||||||
|  | 	err := s.AddBindingInvocationHandler("/", nil) | ||||||
|  | 	assert.Errorf(t, err, "expected error adding nil binding event handler") | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func TestBindingHandlerWithoutData(t *testing.T) { | func TestBindingHandlerWithoutData(t *testing.T) { | ||||||
| 	s := newServer("", nil) | 	s := newServer("", nil) | ||||||
| 	err := s.AddBindingInvocationHandler("/", func(ctx context.Context, in *common.BindingEvent) (out []byte, err error) { | 	err := s.AddBindingInvocationHandler("/", func(ctx context.Context, in *common.BindingEvent) (out []byte, err error) { | ||||||
|  |  | ||||||
|  | @ -16,6 +16,9 @@ func (s *Server) AddServiceInvocationHandler(route string, fn func(ctx context.C | ||||||
| 	if route == "" { | 	if route == "" { | ||||||
| 		return fmt.Errorf("service route required") | 		return fmt.Errorf("service route required") | ||||||
| 	} | 	} | ||||||
|  | 	if fn == nil { | ||||||
|  | 		return fmt.Errorf("invocation handler required") | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 	if !strings.HasPrefix(route, "/") { | 	if !strings.HasPrefix(route, "/") { | ||||||
| 		route = fmt.Sprintf("/%s", route) | 		route = fmt.Sprintf("/%s", route) | ||||||
|  |  | ||||||
|  | @ -14,6 +14,12 @@ import ( | ||||||
| 	"github.com/stretchr/testify/assert" | 	"github.com/stretchr/testify/assert" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | func TestInvocationHandlerWithoutHandler(t *testing.T) { | ||||||
|  | 	s := newServer("", nil) | ||||||
|  | 	err := s.AddServiceInvocationHandler("/", nil) | ||||||
|  | 	assert.Errorf(t, err, "expected error adding event handler") | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func TestInvocationHandlerWithData(t *testing.T) { | func TestInvocationHandlerWithData(t *testing.T) { | ||||||
| 	data := `{"name": "test", "data": hellow}` | 	data := `{"name": "test", "data": hellow}` | ||||||
| 	s := newServer("", nil) | 	s := newServer("", nil) | ||||||
|  |  | ||||||
|  | @ -48,6 +48,9 @@ func (s *Server) AddTopicEventHandler(sub *common.Subscription, fn func(ctx cont | ||||||
| 	if sub.Route == "" { | 	if sub.Route == "" { | ||||||
| 		return errors.New("handler route name") | 		return errors.New("handler route name") | ||||||
| 	} | 	} | ||||||
|  | 	if fn == nil { | ||||||
|  | 		return fmt.Errorf("topic handler required") | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| 	if !strings.HasPrefix(sub.Route, "/") { | 	if !strings.HasPrefix(sub.Route, "/") { | ||||||
| 		sub.Route = fmt.Sprintf("/%s", sub.Route) | 		sub.Route = fmt.Sprintf("/%s", sub.Route) | ||||||
|  |  | ||||||
|  | @ -26,6 +26,18 @@ func testErrorTopicFunc(ctx context.Context, e *common.TopicEvent) (retry bool, | ||||||
| 	return true, errors.New("error to cause a retry") | 	return true, errors.New("error to cause a retry") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func TestEventNilHandler(t *testing.T) { | ||||||
|  | 	s := newServer("", nil) | ||||||
|  | 	sub := &common.Subscription{ | ||||||
|  | 		PubsubName: "messages", | ||||||
|  | 		Topic:      "test", | ||||||
|  | 		Route:      "/", | ||||||
|  | 		Metadata:   map[string]string{}, | ||||||
|  | 	} | ||||||
|  | 	err := s.AddTopicEventHandler(sub, nil) | ||||||
|  | 	assert.Errorf(t, err, "expected error adding event handler") | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func TestEventHandler(t *testing.T) { | func TestEventHandler(t *testing.T) { | ||||||
| 	data := `{ | 	data := `{ | ||||||
| 		"specversion" : "1.0", | 		"specversion" : "1.0", | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue