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]
|
*s = (*s)[:l-1]
|
||||||
return item, nil
|
return item, nil
|
||||||
}
|
}
|
||||||
return nil, ErrEmptyStack{action: "pop"}
|
return nil, ErrEmptyStack{action: "Pop"}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Stack) PopString() (string, error) {
|
func (s *Stack) PopString() (string, error) {
|
||||||
|
@ -49,7 +49,7 @@ func (s *Stack) PopString() (string, error) {
|
||||||
}
|
}
|
||||||
return "", ErrBadTypeCast{}
|
return "", ErrBadTypeCast{}
|
||||||
}
|
}
|
||||||
return "", ErrEmptyStack{action: "pop"}
|
return "", ErrEmptyStack{action: "PopString"}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s Stack) Empty() bool {
|
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