mirror of https://github.com/docker/docs.git
adding stack tests
Signed-off-by: David Lawrence <david.lawrence@docker.com> (github: endophage)
This commit is contained in:
parent
33d39afdf5
commit
4982cc7c42
|
@ -36,7 +36,7 @@ func (s *Stack) Pop() (interface{}, error) {
|
|||
*s = (*s)[:l-1]
|
||||
return item, nil
|
||||
}
|
||||
return nil, ErrEmptyStack{action: "pop"}
|
||||
return nil, ErrEmptyStack{action: "Pop"}
|
||||
}
|
||||
|
||||
func (s *Stack) PopString() (string, error) {
|
||||
|
@ -49,7 +49,7 @@ func (s *Stack) PopString() (string, error) {
|
|||
}
|
||||
return "", ErrBadTypeCast{}
|
||||
}
|
||||
return "", ErrEmptyStack{action: "pop"}
|
||||
return "", ErrEmptyStack{action: "PopString"}
|
||||
}
|
||||
|
||||
func (s Stack) Empty() bool {
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
package utils
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestCreateStack(t *testing.T) {
|
||||
s := NewStack()
|
||||
assert.NotNil(t, s)
|
||||
}
|
||||
|
||||
func TestPush(t *testing.T) {
|
||||
s := NewStack()
|
||||
s.Push("foo")
|
||||
assert.Len(t, *s, 1)
|
||||
assert.Equal(t, "foo", (*s)[0])
|
||||
}
|
||||
|
||||
func TestPop(t *testing.T) {
|
||||
s := NewStack()
|
||||
s.Push("foo")
|
||||
i, err := s.Pop()
|
||||
assert.NoError(t, err)
|
||||
assert.Len(t, *s, 0)
|
||||
assert.IsType(t, "", i)
|
||||
assert.Equal(t, "foo", i)
|
||||
}
|
||||
|
||||
func TestPopEmpty(t *testing.T) {
|
||||
s := NewStack()
|
||||
_, err := s.Pop()
|
||||
assert.Error(t, err)
|
||||
assert.IsType(t, ErrEmptyStack{}, err)
|
||||
}
|
||||
|
||||
func TestPopString(t *testing.T) {
|
||||
s := NewStack()
|
||||
s.Push("foo")
|
||||
i, err := s.PopString()
|
||||
assert.NoError(t, err)
|
||||
assert.Len(t, *s, 0)
|
||||
assert.Equal(t, "foo", i)
|
||||
}
|
||||
|
||||
func TestPopStringWrongType(t *testing.T) {
|
||||
s := NewStack()
|
||||
s.Push(123)
|
||||
_, err := s.PopString()
|
||||
assert.Error(t, err)
|
||||
assert.IsType(t, ErrBadTypeCast{}, err)
|
||||
}
|
||||
|
||||
func TestPopStringEmpty(t *testing.T) {
|
||||
s := NewStack()
|
||||
_, err := s.PopString()
|
||||
assert.Error(t, err)
|
||||
assert.IsType(t, ErrEmptyStack{}, err)
|
||||
}
|
||||
|
||||
func TestEmpty(t *testing.T) {
|
||||
s := NewStack()
|
||||
assert.True(t, s.Empty())
|
||||
s.Push("foo")
|
||||
assert.False(t, s.Empty())
|
||||
s.Pop()
|
||||
assert.True(t, s.Empty())
|
||||
}
|
Loading…
Reference in New Issue