github.com/Jeffail/benthos/v3@v3.65.0/lib/input/inproc_test.go (about)

     1  package input_test
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/Jeffail/benthos/v3/lib/input"
     8  	"github.com/Jeffail/benthos/v3/lib/log"
     9  	"github.com/Jeffail/benthos/v3/lib/manager"
    10  	"github.com/Jeffail/benthos/v3/lib/metrics"
    11  	"github.com/Jeffail/benthos/v3/lib/types"
    12  )
    13  
    14  //------------------------------------------------------------------------------
    15  
    16  func TestInprocDryRun(t *testing.T) {
    17  	t.Parallel()
    18  
    19  	mgr, err := manager.New(manager.NewConfig(), nil, log.Noop(), metrics.Noop())
    20  	if err != nil {
    21  		t.Fatal(err)
    22  	}
    23  
    24  	mgr.SetPipe("foo", make(chan types.Transaction))
    25  
    26  	conf := input.NewConfig()
    27  	conf.Inproc = "foo"
    28  
    29  	var ip input.Type
    30  	if ip, err = input.NewInproc(conf, mgr, log.Noop(), metrics.Noop()); err != nil {
    31  		t.Fatal(err)
    32  	}
    33  
    34  	<-time.After(time.Millisecond * 100)
    35  
    36  	ip.CloseAsync()
    37  	if err = ip.WaitForClose(time.Second); err != nil {
    38  		t.Error(err)
    39  	}
    40  }
    41  
    42  func TestInprocDryRunNoConn(t *testing.T) {
    43  	t.Parallel()
    44  
    45  	mgr, err := manager.New(manager.NewConfig(), nil, log.Noop(), metrics.Noop())
    46  	if err != nil {
    47  		t.Fatal(err)
    48  	}
    49  
    50  	conf := input.NewConfig()
    51  	conf.Inproc = "foo"
    52  
    53  	var ip input.Type
    54  	if ip, err = input.NewInproc(conf, mgr, log.Noop(), metrics.Noop()); err != nil {
    55  		t.Fatal(err)
    56  	}
    57  
    58  	<-time.After(time.Millisecond * 100)
    59  
    60  	ip.CloseAsync()
    61  	if err = ip.WaitForClose(time.Second); err != nil {
    62  		t.Error(err)
    63  	}
    64  }
    65  
    66  //------------------------------------------------------------------------------