|
|
- var DLList = require('../lib/DLList')
- var assert = require('assert')
- var c = require('./context')({datastore: 'local'})
-
- var fakeQueues = function () {
- this._length = 0
- this.incr = () => this._length++
- this.decr = () => this._length--
- }
-
- describe('DLList', function () {
-
- it('Should be created and be empty', function () {
- var list = new DLList(new fakeQueues())
- c.mustEqual(list.getArray().length, 0)
- })
-
- it('Should be possible to append once', function () {
- var list = new DLList(new fakeQueues())
- list.push(5)
- var arr = list.getArray()
- c.mustEqual(arr.length, 1)
- c.mustEqual(list.length, 1)
- c.mustEqual(list._queues._length, 1)
- c.mustEqual(arr[0], 5)
- })
-
- it('Should be possible to append multiple times', function () {
- var list = new DLList(new fakeQueues())
- list.push(5)
- list.push(6)
- var arr = list.getArray()
- c.mustEqual(arr.length, 2)
- c.mustEqual(list.length, 2)
- c.mustEqual(list._queues._length, 2)
- c.mustEqual(arr[0], 5)
- c.mustEqual(arr[1], 6)
-
- list.push(10)
-
- arr = list.getArray()
- c.mustEqual(arr.length, 3)
- c.mustEqual(list.length, 3)
- c.mustEqual(arr[0], 5)
- c.mustEqual(arr[1], 6)
- c.mustEqual(arr[2], 10)
- })
-
- it('Should be possible to shift an empty list', function () {
- var list = new DLList(new fakeQueues())
- c.mustEqual(list.length, 0)
- assert(list.shift() === undefined)
- var arr = list.getArray()
- c.mustEqual(arr.length, 0)
- c.mustEqual(list.length, 0)
- assert(list.shift() === undefined)
- arr = list.getArray()
- c.mustEqual(arr.length, 0)
- c.mustEqual(list.length, 0)
- c.mustEqual(list._queues._length, 0)
- })
-
- it('Should be possible to append then shift once', function () {
- var list = new DLList(new fakeQueues())
- list.push(5)
- c.mustEqual(list.length, 1)
- c.mustEqual(list.shift(), 5)
- var arr = list.getArray()
- c.mustEqual(arr.length, 0)
- c.mustEqual(list.length, 0)
- c.mustEqual(list._queues._length, 0)
- })
-
- it('Should be possible to append then shift multiple times', function () {
- var list = new DLList(new fakeQueues())
- list.push(5)
- c.mustEqual(list.length, 1)
- c.mustEqual(list.shift(), 5)
- c.mustEqual(list.length, 0)
-
- list.push(6)
- c.mustEqual(list.length, 1)
- c.mustEqual(list.shift(), 6)
- c.mustEqual(list.length, 0)
- c.mustEqual(list._queues._length, 0)
- })
-
- it('Should pass a full test', function () {
- var list = new DLList(new fakeQueues())
- list.push(10)
- c.mustEqual(list.length, 1)
- list.push("11")
- c.mustEqual(list.length, 2)
- list.push(12)
- c.mustEqual(list.length, 3)
- c.mustEqual(list._queues._length, 3)
-
- c.mustEqual(list.shift(), 10)
- c.mustEqual(list.length, 2)
- c.mustEqual(list.shift(),"11")
- c.mustEqual(list.length, 1)
-
- list.push(true)
- c.mustEqual(list.length, 2)
-
- var arr = list.getArray()
- c.mustEqual(arr[0], 12)
- c.mustEqual(arr[1], true)
- c.mustEqual(arr.length, 2)
- c.mustEqual(list._queues._length, 2)
- })
-
- it('Should return the first value without shifting', function () {
- var list = new DLList(new fakeQueues())
- assert(list.first() === undefined)
- assert(list.first() === undefined)
-
- list.push(1)
- c.mustEqual(list.first(), 1)
- c.mustEqual(list.first(), 1)
-
- list.push(2)
- c.mustEqual(list.first(), 1)
- c.mustEqual(list.first(), 1)
-
- c.mustEqual(list.shift(), 1)
- c.mustEqual(list.first(), 2)
- c.mustEqual(list.first(), 2)
-
- c.mustEqual(list.shift(), 2)
- assert(list.first() === undefined)
- assert(list.first() === undefined)
-
- assert(list.first() === undefined)
- assert(list.shift() === undefined)
- assert(list.first() === undefined)
- })
-
- })
|