'use strict'; var async = require('async'), assert = require('assert'), db = require('../mocks/databasemock'); describe('Sorted Set methods', function() { describe('sortedSetAdd()', function() { it('should add an element to a sorted set', function(done) { db.sortedSetAdd('sorted1', 1, 'value1', function(err) { assert.equal(err, null); assert.equal(arguments.length, 1); done(); }); }); it('should add two elements to a sorted set', function(done) { db.sortedSetAdd('sorted2', [1, 2], ['value1', 'value2'], function(err) { assert.equal(err, null); assert.equal(arguments.length, 1); done(); }); }); }); describe('sortedSetsAdd()', function() { it('should add an element to two sorted sets', function(done) { db.sortedSetsAdd(['sorted1, sorted2'], 3, 'value3', function(err) { assert.equal(err, null); assert.equal(arguments.length, 1); done(); }); }); }); describe('getSortedSetRange()', function() { it('should return the lowest scored element', function(done) { db.getSortedSetRange('sorted2', 0, 0, function(err, value) { assert.equal(err, null); assert.equal(arguments.length, 2); assert.equal(value, 'value1'); done(); }); }); it('should return elements sorted by score lowest to highest', function(done) { db.getSortedSetRange('sorted2', 0, -1, function(err, values) { assert.equal(err, null); assert.equal(arguments.length, 2); assert.deepEqual(values, ['value1', 'value2', 'value3']); done(); }); }); }); describe('getSortedSetRevRange()', function() { it('should return the highest scored element', function(done) { db.getSortedSetRevRange('sorted2', 0, 0, function(err, value) { assert.equal(err, null); assert.equal(arguments.length, 2); assert.equal(value, 'value3'); done(); }); }); it('should return elements sorted by score highest to lowest', function(done) { db.getSortedSetRevRange('sorted2', 0, -1, function(err, values) { assert.equal(err, null); assert.equal(arguments.length, 2); assert.deepEqual(values, ['value3', 'value2', 'value1']); done(); }); }); }); describe('getSortedSetRangeWithScores()', function() { it('should return array of elements sorted by score lowest to highest with scores', function(done) { db.getSortedSetRangeWithScores('sorted2', 0, -1, function(err, values) { assert.equal(err, null); assert.equal(arguments.length, 2); assert.deepEqual(values, [{value: 'value1', score: 1}, {value: 'value2', score: 2}, {value: 'value3', score: 3}]); done(); }); }); }); describe('getSortedSetRevRangeWithScores()', function() { it('should return array of elements sorted by score highest to lowest with scores', function(done) { db.getSortedSetRevRangeWithScores('sorted2', 0, -1, function(err, values) { assert.equal(err, null); assert.equal(arguments.length, 2); assert.deepEqual(values, [{value: 'value3', score: 3}, {value: 'value2', score: 2}, {value: 'value1', score: 1}]); done(); }); }); }); after(function() { db.flushdb(); }); });