Example #1
0
func TestStackWithPipe(t *testing.T) {
	r, w := inmem.Pipe()
	defer r.Close()
	defer w.Close()
	s := NewStackSender()
	s.Add(w)
	testutils.Timeout(t, func() {
		go func() {
			msg, _, _, err := r.Receive(0)
			if err != nil {
				t.Fatal(err)
			}
			if msg.Name != "hello" {
				t.Fatalf("%#v", msg)
			}
			if strings.Join(msg.Args, " ") != "wonderful world" {
				t.Fatalf("%#v", msg)
			}
		}()
		_, _, err := s.Send(&beam.Message{"hello", []string{"wonderful", "world"}}, 0)
		if err != nil {
			t.Fatal(err)
		}
	})
}
Example #2
0
// Misbehaving backends must be removed
func TestStackAddBad(t *testing.T) {
	s := NewStackSender()
	buf := inmem.Buffer{}
	s.Add(&buf)
	r, w := inmem.Pipe()
	s.Add(w)
	if s.Len() != 2 {
		t.Fatalf("%#v", s)
	}
	r.Close()
	if _, _, err := s.Send(&beam.Message{"for the buffer", nil}, 0); err != nil {
		t.Fatal(err)
	}
	if s.Len() != 1 {
		t.Fatalf("%#v")
	}
	if len(buf) != 1 {
		t.Fatalf("%#v", buf)
	}
	if buf[0].Name != "for the buffer" {
		t.Fatalf("%#v", buf)
	}
}