Merge pull request #31 from jkearse3/master

Refactor tests to remove dependency 'github.com/stretchr/testify/assert'
diff --git a/chain_test.go b/chain_test.go
index 97e0ff1..6f4316b 100644
--- a/chain_test.go
+++ b/chain_test.go
@@ -6,8 +6,6 @@
 	"net/http/httptest"
 	"reflect"
 	"testing"
-
-	"github.com/stretchr/testify/assert"
 )
 
 // A constructor for middleware
@@ -34,11 +32,11 @@
 	w.Write([]byte("app\n"))
 })
 
-// Tests creating a new chain
 func TestNew(t *testing.T) {
 	c1 := func(h http.Handler) http.Handler {
 		return nil
 	}
+
 	c2 := func(h http.Handler) http.Handler {
 		return http.StripPrefix("potato", nil)
 	}
@@ -46,27 +44,29 @@
 	slice := []Constructor{c1, c2}
 
 	chain := New(slice...)
-	assert.True(t, funcsEqual(chain.constructors[0], slice[0]))
-	assert.True(t, funcsEqual(chain.constructors[1], slice[1]))
+	for k := range slice {
+		if !funcsEqual(chain.constructors[k], slice[k]) {
+			t.Error("New does not add constructors correctly")
+		}
+	}
 }
 
 func TestThenWorksWithNoMiddleware(t *testing.T) {
-	assert.NotPanics(t, func() {
-		chain := New()
-		final := chain.Then(testApp)
-
-		assert.True(t, funcsEqual(final, testApp))
-	})
+	if !funcsEqual(New().Then(testApp), testApp) {
+		t.Error("Then does not work with no middleware")
+	}
 }
 
 func TestThenTreatsNilAsDefaultServeMux(t *testing.T) {
-	chained := New().Then(nil)
-	assert.Equal(t, chained, http.DefaultServeMux)
+	if New().Then(nil) != http.DefaultServeMux {
+		t.Error("Then does not treat nil as DefaultServeMux")
+	}
 }
 
 func TestThenFuncTreatsNilAsDefaultServeMux(t *testing.T) {
-	chained := New().ThenFunc(nil)
-	assert.Equal(t, chained, http.DefaultServeMux)
+	if New().ThenFunc(nil) != http.DefaultServeMux {
+		t.Error("ThenFunc does not treat nil as DefaultServeMux")
+	}
 }
 
 func TestThenFuncConstructsHandlerFunc(t *testing.T) {
@@ -75,11 +75,15 @@
 	})
 	chained := New().ThenFunc(fn)
 	rec := httptest.NewRecorder()
+
 	chained.ServeHTTP(rec, (*http.Request)(nil))
-	assert.Equal(t, 200, rec.Code)
+
+	if reflect.TypeOf(chained) != reflect.TypeOf((http.HandlerFunc)(nil)) {
+		t.Error("ThenFunc does not construct HandlerFunc")
+	}
 }
 
-func TestThenOrdersHandlersRight(t *testing.T) {
+func TestThenOrdersHandlersCorrectly(t *testing.T) {
 	t1 := tagMiddleware("t1\n")
 	t2 := tagMiddleware("t2\n")
 	t3 := tagMiddleware("t3\n")
@@ -94,15 +98,21 @@
 
 	chained.ServeHTTP(w, r)
 
-	assert.Equal(t, w.Body.String(), "t1\nt2\nt3\napp\n")
+	if w.Body.String() != "t1\nt2\nt3\napp\n" {
+		t.Error("Then does not order handlers correctly")
+	}
 }
 
 func TestAppendAddsHandlersCorrectly(t *testing.T) {
 	chain := New(tagMiddleware("t1\n"), tagMiddleware("t2\n"))
 	newChain := chain.Append(tagMiddleware("t3\n"), tagMiddleware("t4\n"))
 
-	assert.Equal(t, len(chain.constructors), 2)
-	assert.Equal(t, len(newChain.constructors), 4)
+	if len(chain.constructors) != 2 {
+		t.Error("chain should have 2 constructors")
+	}
+	if len(newChain.constructors) != 4 {
+		t.Error("newChain should have 4 constructors")
+	}
 
 	chained := newChain.Then(testApp)
 
@@ -114,14 +124,18 @@
 
 	chained.ServeHTTP(w, r)
 
-	assert.Equal(t, w.Body.String(), "t1\nt2\nt3\nt4\napp\n")
+	if w.Body.String() != "t1\nt2\nt3\nt4\napp\n" {
+		t.Error("Append does not add handlers correctly")
+	}
 }
 
 func TestAppendRespectsImmutability(t *testing.T) {
 	chain := New(tagMiddleware(""))
 	newChain := chain.Append(tagMiddleware(""))
 
-	assert.NotEqual(t, &chain.constructors[0], &newChain.constructors[0])
+	if &chain.constructors[0] == &newChain.constructors[0] {
+		t.Error("Apppend does not respect immutability")
+	}
 }
 
 func TestExtendAddsHandlersCorrectly(t *testing.T) {
@@ -129,9 +143,15 @@
 	chain2 := New(tagMiddleware("t3\n"), tagMiddleware("t4\n"))
 	newChain := chain1.Extend(chain2)
 
-	assert.Equal(t, len(chain1.constructors), 2)
-	assert.Equal(t, len(chain2.constructors), 2)
-	assert.Equal(t, len(newChain.constructors), 4)
+	if len(chain1.constructors) != 2 {
+		t.Error("chain1 should contain 2 constructors")
+	}
+	if len(chain2.constructors) != 2 {
+		t.Error("chain2 should contain 2 constructors")
+	}
+	if len(newChain.constructors) != 4 {
+		t.Error("newChain should contain 4 constructors")
+	}
 
 	chained := newChain.Then(testApp)
 
@@ -143,12 +163,16 @@
 
 	chained.ServeHTTP(w, r)
 
-	assert.Equal(t, w.Body.String(), "t1\nt2\nt3\nt4\napp\n")
+	if w.Body.String() != "t1\nt2\nt3\nt4\napp\n" {
+		t.Error("Extend does not add handlers in correctly")
+	}
 }
 
 func TestExtendRespectsImmutability(t *testing.T) {
 	chain := New(tagMiddleware(""))
 	newChain := chain.Extend(New(tagMiddleware("")))
 
-	assert.NotEqual(t, &chain.constructors[0], &newChain.constructors[0])
+	if &chain.constructors[0] == &newChain.constructors[0] {
+		t.Error("Extend does not respect immutability")
+	}
 }