Commit c8a4daea authored by Boris Mühmer's avatar Boris Mühmer
Browse files

added chaining example

parent 51220f87
Loading
Loading
Loading
Loading

chaining/chaining.go

0 → 100644
+44 −0
Original line number Diff line number Diff line
package chaining

const (
	defaultAddr = "127.0.0.1"
	defaultPort = 2000
)

type Service struct {
	addr        string
	addrChanged bool
	port        int
	portChanged bool
}

func New() *Service {
	return &Service{
		addr: defaultAddr,
		port: defaultPort,
	}
}

func (s *Service) Addr(addr string) *Service {
	s.addr = addr
	s.addrChanged = true
	return s
}

func (s *Service) Port(port int) *Service {
	s.port = port
	s.portChanged = true
	return s
}

func (s *Service) Run() error {
	return nil
}

func (s *Service) IsAddrChanged() bool {
	return s.addrChanged
}

func (s *Service) IsPortChanged() bool {
	return s.portChanged
}
+18 −0
Original line number Diff line number Diff line
package chaining

import "testing"

func TestService(t *testing.T) {
	addr := "0.0.0.0"
	port := 3000
	svc := New().Addr(addr).Port(port)
	if err := svc.Run(); err != nil {
		t.Fatalf("svc.Run() failed with: %s", err)
	}
	if !svc.IsAddrChanged() {
		t.Errorf("service addr did not chang")
	}
	if !svc.IsPortChanged() {
		t.Errorf("service port did not change")
	}
}