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")
+ }
}