func (s *ServerSuite) TestServerCRUD(c *C) {
	e := testutils.NewResponder("Hi, I'm endpoint")
	defer e.Close()
	b := MakeBatch(Batch{Addr: "localhost:11300", Route: `Path("/")`, URL: e.URL})
	c.Assert(s.mux.UpsertServer(b.BK, b.S), IsNil)
	c.Assert(s.mux.UpsertFrontend(b.F), IsNil)
	c.Assert(s.mux.UpsertListener(b.L), IsNil)
	c.Assert(s.mux.Start(), IsNil)
	c.Assert(GETResponse(c, b.FrontendURL("/")), Equals, "Hi, I'm endpoint")
	c.Assert(s.mux.DeleteListener(b.LK), IsNil)
	_, _, err := testutils.Get(b.FrontendURL("/"))
	c.Assert(err, NotNil)
}
Here we upsert only server that creates backend with default settings
package mux
import (
	"bufio"
	"crypto/ecdsa"
	"crypto/elliptic"
	"crypto/rand"
	"crypto/tls"
	"crypto/x509"
	"encoding/base64"
	"encoding/json"
	"fmt"
	"html/template"
	"io"
	"io/ioutil"
	"math/big"
	"net/http"
	"net/http/httptest"
	"reflect"
	"testing"
	"time"
	log "github.com/sirupsen/logrus"
	"github.com/vulcand/oxy/testutils"
	"github.com/vulcand/vulcand/engine"
	"github.com/vulcand/vulcand/plugin/cacheprovider"
	"github.com/vulcand/vulcand/proxy"
	"github.com/vulcand/vulcand/stapler"
	. "github.com/vulcand/vulcand/testutils"
	"golang.org/x/crypto/acme/autocert"
	. "gopkg.in/check.v1"
)
func TestServer(t *testing.T) { TestingT(t) }
var _ = Suite(&ServerSuite{})
type ServerSuite struct {
	mux    *mux
	lastId int
	st     stapler.Stapler
}
func (s *ServerSuite) SetUpTest(c *C) {
	st := stapler.New()
	m, err := New(s.lastId, st, proxy.Options{})
	c.Assert(err, IsNil)
	s.mux = m
	s.st = st
}
func (s *ServerSuite) TearDownTest(c *C) {
	s.mux.Stop(true)
}
func (s *ServerSuite) TestStartStop(c *C) {
	c.Assert(s.mux.Start(), IsNil)
}
func (s *ServerSuite) TestBackendCRUD(c *C) {
	e := testutils.NewResponder("Hi, I'm endpoint")
	defer e.Close()
	b := MakeBatch(Batch{Addr: "localhost:11300", Route: `Path("/")`, URL: e.URL})
	c.Assert(s.mux.UpsertBackend(b.B), IsNil)
	c.Assert(s.mux.UpsertServer(b.BK, b.S), IsNil)
	c.Assert(s.mux.UpsertFrontend(b.F), IsNil)
	c.Assert(s.mux.UpsertListener(b.L), IsNil)
	c.Assert(s.mux.Start(), IsNil)
	c.Assert(GETResponse(c, b.FrontendURL("/")), Equals, "Hi, I'm endpoint")
	c.Assert(s.mux.DeleteListener(b.LK), IsNil)
	_, _, err := testutils.Get(b.FrontendURL("/"))
	c.Assert(err, NotNil)
}