Skip to content
Snippets Groups Projects
Select Git revision
  • 1b4021d0dacaacc8c8670ead0a535c84279cc96b
  • master default protected
  • v1.22.9
  • v1.22.8
  • v1.22.7
  • v1.22.6
  • v1.22.5
  • v1.22.4
  • v1.22.3
  • v1.22.1
  • v1.22.0
  • v1.21.0
  • v1.20.5
  • v1.20.4
  • v1.20.3
  • v1.20.2
  • v1.20.1
  • v1.20.0
  • v1.19.0
  • v1.18.3
  • v1.18.2
  • v1.18.1
22 results

error-handler_test.go

Blame
  • Volker Schukai's avatar
    Volker Schukai authored
    92480e2d
    History
    error-handler_test.go 1.08 KiB
    // Copyright 2022 schukai GmbH
    // SPDX-License-Identifier: AGPL-3.0
    
    package configuration
    
    import (
    	"github.com/stretchr/testify/assert"
    	"testing"
    	"time"
    )
    
    type mockTestEventErrorHandler struct {
    	ErrorHook
    	ch chan bool
    }
    
    func (m *mockTestEventErrorHandler) Handle(event ErrorEvent) {
    	// do nothing
    	m.ch <- true
    
    }
    
    func TestErrorHandling(t *testing.T) {
    
    	defaults := ConfigStruct2{
    		A: "Hello!",
    	}
    
    	c := New(defaults)
    	var h ErrorHook
    	h = &mockTestEventErrorHandler{
    		ch: make(chan bool),
    	}
    
    	c.OnError(h)
    	c.SetDefaultDirectories()
    
    	select {
    	case <-h.(*mockTestEventErrorHandler).ch:
    		assert.True(t, true)
    	case <-time.After(11 * time.Second):
    		t.Error("Timeout, expected error event")
    	}
    
    }
    
    func TestAddRemoveErrorHook(t *testing.T) {
    
    	config := struct {
    		Host string
    	}{
    		Host: "localhost",
    	}
    
    	s := New(config)
    
    	var h ErrorHook
    	h = &mockTestEventErrorHandler{}
    	s.OnError(h)
    
    	if len(s.hooks.error) != 1 {
    		t.Error("Expected 1 got ", len(s.hooks.change))
    	}
    
    	s.RemoveOnErrorHook(h)
    
    	if len(s.hooks.error) != 0 {
    		t.Error("Expected 0 got ", len(s.hooks.change))
    	}
    
    }