github.com/chenjiandongx/go-queue@v0.0.0-20191023082232-e2a36f382f84/queue_test.go (about)

     1  package collections
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  const nums = 1000
    10  
    11  func TestQueue(t *testing.T) {
    12  	q := NewQueue()
    13  
    14  	var item interface{}
    15  	var ok bool
    16  
    17  	for i := 0; i < nums; i++ {
    18  		q.Put(i)
    19  	}
    20  	for i := 0; i < nums; i++ {
    21  		item, ok = q.Get()
    22  		assert.Equal(t, i, item.(int))
    23  		assert.Equal(t, ok, true)
    24  	}
    25  
    26  	item, ok = q.Get()
    27  	assert.Equal(t, nil, item)
    28  	assert.Equal(t, ok, false)
    29  
    30  	item, ok = q.Get()
    31  	assert.Equal(t, nil, item)
    32  	assert.Equal(t, ok, false)
    33  }