| 
									
										
										
										
											2013-12-06 13:46:12 -05:00
										 |  |  | var	assert = require('assert'), | 
					
						
							| 
									
										
										
										
											2014-09-24 13:52:49 -04:00
										 |  |  | 	db = require('./mocks/databasemock'), | 
					
						
							| 
									
										
										
										
											2013-12-06 13:46:12 -05:00
										 |  |  | 	async = require('async'); | 
					
						
							| 
									
										
										
										
											2013-10-30 01:47:27 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe('Test database', function() { | 
					
						
							|  |  |  | 	it('should work', function(){ | 
					
						
							|  |  |  | 		assert.doesNotThrow(function(){ | 
					
						
							| 
									
										
										
										
											2014-09-24 13:52:49 -04:00
										 |  |  | 			var db = require('./mocks/databasemock'); | 
					
						
							| 
									
										
										
										
											2013-10-30 01:47:27 +02:00
										 |  |  | 		}); | 
					
						
							|  |  |  | 	}); | 
					
						
							| 
									
										
										
										
											2013-12-06 13:46:12 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-25 02:43:11 -05:00
										 |  |  | 	require('./database/keys'); | 
					
						
							| 
									
										
										
										
											2014-12-29 16:20:35 -05:00
										 |  |  | 	require('./database/list'); | 
					
						
							| 
									
										
										
										
											2014-04-09 23:22:43 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-06 13:46:12 -05:00
										 |  |  | 	it('should not throw err', function(done) { | 
					
						
							|  |  |  | 		var objectKey = 'testObj'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function setObject(callback) { | 
					
						
							|  |  |  | 			db.setObject(objectKey, {name:'baris', 'lastname':'usakli', age:3}, function(err, result) { | 
					
						
							|  |  |  | 				callback(err, {'setObject':result}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function getObject(callback) { | 
					
						
							|  |  |  | 			db.getObject(objectKey, function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'getObject':data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function getObjects(callback) { | 
					
						
							|  |  |  | 			db.getObjects(['testing1', objectKey, 'doesntexist', 'user:1'], function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'getObjects':data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function setObjectField(callback) { | 
					
						
							|  |  |  | 			db.setObjectField(objectKey, 'reputation', 5, function(err, result) { | 
					
						
							|  |  |  | 				callback(err, {'setObjectField': result}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function getObjectField(callback) { | 
					
						
							|  |  |  | 			db.getObjectField(objectKey, 'age', function(err, age) { | 
					
						
							|  |  |  | 				callback(err, {'getObjectField' : age}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function getObjectFields(callback) { | 
					
						
							|  |  |  | 			db.getObjectFields(objectKey, ['name', 'lastname'], function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'getObjectFields':data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function getObjectValues(callback) { | 
					
						
							|  |  |  | 			db.getObjectValues(objectKey, function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'getObjectValues':data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function isObjectField(callback) { | 
					
						
							|  |  |  | 			db.isObjectField(objectKey, 'age', function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'isObjectField':data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function deleteObjectField(callback) { | 
					
						
							|  |  |  | 			db.deleteObjectField(objectKey, 'reputation', function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'deleteObjectField':data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function incrObjectFieldBy(callback) { | 
					
						
							|  |  |  | 			db.incrObjectFieldBy(objectKey, 'age', 3, function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'incrObjectFieldBy':data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-23 16:37:11 -05:00
										 |  |  | 		function getObjectKeys(callback) { | 
					
						
							|  |  |  | 			db.getObjectKeys(objectKey, function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'getObjectKeys':data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-06 13:46:12 -05:00
										 |  |  | 		var objectTasks = [ | 
					
						
							|  |  |  | 			setObject, | 
					
						
							|  |  |  | 			getObject, | 
					
						
							|  |  |  | 			deleteObjectField, | 
					
						
							|  |  |  | 			getObject, | 
					
						
							|  |  |  | 			setObjectField, | 
					
						
							|  |  |  | 			getObject, | 
					
						
							|  |  |  | 			deleteObjectField, | 
					
						
							|  |  |  | 			getObject, | 
					
						
							|  |  |  | 			getObjectField, | 
					
						
							|  |  |  | 			getObjectFields, | 
					
						
							|  |  |  | 			getObjectValues, | 
					
						
							|  |  |  | 			isObjectField, | 
					
						
							|  |  |  | 			incrObjectFieldBy, | 
					
						
							|  |  |  | 			getObject, | 
					
						
							| 
									
										
										
										
											2014-01-23 16:37:11 -05:00
										 |  |  | 			getObjects, | 
					
						
							|  |  |  | 			getObjectKeys | 
					
						
							| 
									
										
										
										
											2013-12-06 13:46:12 -05:00
										 |  |  | 		]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		async.series(objectTasks, function(err, results) { | 
					
						
							|  |  |  | 			assert.equal(err, null, 'error in object methods'); | 
					
						
							|  |  |  | 			assert.ok(results); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			done(); | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	it('should not throw err', function(done) { | 
					
						
							|  |  |  | 		function setAdd(callback) { | 
					
						
							|  |  |  | 			db.setAdd('myTestSet', 15, function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'setAdd': data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function setRemove(callback) { | 
					
						
							|  |  |  | 			db.setRemove('myTestSet', 15, function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'setRemove': data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function getSetMembers(callback) { | 
					
						
							|  |  |  | 			db.getSetMembers('myTestSet', function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'getSetMembers': data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function isSetMember(callback) { | 
					
						
							|  |  |  | 			db.isSetMember('myTestSet', 15, function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'isSetMember': data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function isMemberOfSets(callback) { | 
					
						
							|  |  |  | 			db.isMemberOfSets(['doesntexist', 'myTestSet', 'nonexistingSet'], 15, function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'isMemberOfSets': data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function setRemoveRandom(callback) { | 
					
						
							|  |  |  | 			db.setRemoveRandom('myTestSet', function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'setRemoveRandom': data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function setCount(callback) { | 
					
						
							|  |  |  | 			db.setCount('myTestSet', function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'setCount': data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		var setTasks = [ | 
					
						
							|  |  |  | 			getSetMembers, | 
					
						
							|  |  |  | 			setAdd, | 
					
						
							| 
									
										
										
										
											2014-04-11 01:38:09 -04:00
										 |  |  | 			setAdd, | 
					
						
							|  |  |  | 			setAdd, | 
					
						
							| 
									
										
										
										
											2013-12-06 13:46:12 -05:00
										 |  |  | 			getSetMembers, | 
					
						
							|  |  |  | 			setRemove, | 
					
						
							|  |  |  | 			getSetMembers, | 
					
						
							|  |  |  | 			isSetMember, | 
					
						
							|  |  |  | 			setAdd, | 
					
						
							|  |  |  | 			getSetMembers, | 
					
						
							|  |  |  | 			isSetMember, | 
					
						
							|  |  |  | 			setRemoveRandom, | 
					
						
							|  |  |  | 			getSetMembers, | 
					
						
							|  |  |  | 			setCount, | 
					
						
							|  |  |  | 			isMemberOfSets | 
					
						
							|  |  |  | 		]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		require('async').series(setTasks, function(err, results) { | 
					
						
							|  |  |  | 			assert.equal(err, null, 'error in set methods'); | 
					
						
							|  |  |  | 			assert.ok(results); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			done(); | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 	}); | 
					
						
							| 
									
										
										
										
											2014-04-10 00:36:28 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	it('should not throw err', function(done) { | 
					
						
							|  |  |  | 		function sortedSetAdd(callback) { | 
					
						
							| 
									
										
										
										
											2014-09-03 20:19:51 -04:00
										 |  |  | 			db.sortedSetAdd('sortedSet3', 12, 5, function(err) { | 
					
						
							|  |  |  | 				callback(err); | 
					
						
							| 
									
										
										
										
											2014-04-10 00:36:28 -04:00
										 |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function sortedSetRemove(callback) { | 
					
						
							|  |  |  | 			db.sortedSetRemove('sortedSet3', 12, function(err, data) { | 
					
						
							| 
									
										
										
										
											2014-09-03 20:19:51 -04:00
										 |  |  | 				callback(err); | 
					
						
							| 
									
										
										
										
											2014-04-10 00:36:28 -04:00
										 |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function getSortedSetRange(callback) { | 
					
						
							| 
									
										
										
										
											2014-04-11 01:38:09 -04:00
										 |  |  | 			db.getSortedSetRange('sortedSet3', 0, -1, function(err, data) { | 
					
						
							| 
									
										
										
										
											2014-04-10 00:36:28 -04:00
										 |  |  | 				callback(err, {'getSortedSetRange': data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-11 01:38:09 -04:00
										 |  |  | 		function getSortedSetRevRange(callback) { | 
					
						
							|  |  |  | 			db.getSortedSetRevRange('sortedSet3', 0, -1, function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'getSortedSetRevRange': data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-10 00:36:28 -04:00
										 |  |  | 		function getSortedSetRevRangeByScore(callback) { | 
					
						
							| 
									
										
										
										
											2014-04-11 12:49:53 -04:00
										 |  |  | 			db.getSortedSetRevRangeByScore('sortedSet3', 0, 10, Infinity, 100, function(err, data) { | 
					
						
							| 
									
										
										
										
											2014-04-10 00:36:28 -04:00
										 |  |  | 				callback(err, {'getSortedSetRevRangeByScore': data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function sortedSetCount(callback) { | 
					
						
							|  |  |  | 			db.sortedSetCount('sortedSet3', -Infinity, Infinity, function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'sortedSetCount': data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function sortedSetScore(callback) { | 
					
						
							|  |  |  | 			db.sortedSetScore('users:joindate', 1, function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'sortedSetScore': data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		function sortedSetsScore(callback) { | 
					
						
							|  |  |  | 			db.sortedSetsScore(['users:joindate', 'users:derp', 'users:postcount'], 1, function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'sortedSetsScore': data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-11 01:38:09 -04:00
										 |  |  | 		function isSortedSetMember(callback) { | 
					
						
							|  |  |  | 			db.isSortedSetMember('sortedSet3', 5, function(err, data) { | 
					
						
							|  |  |  | 				callback(err, {'sortedSetMember': data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-23 08:57:51 -04:00
										 |  |  | 		function getSortedSetUnion(callback) { | 
					
						
							| 
									
										
										
										
											2014-07-24 23:33:33 -04:00
										 |  |  | 			db.getSortedSetUnion(['users:joindate', 'users:derp', 'users:postcount'], 0, -1, function(err, data) { | 
					
						
							| 
									
										
										
										
											2014-05-23 08:57:51 -04:00
										 |  |  | 				callback(err, {'sortedSetUnion': data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-23 09:22:17 -04:00
										 |  |  | 		function getSortedSetRevUnion(callback) { | 
					
						
							| 
									
										
										
										
											2014-07-24 23:33:33 -04:00
										 |  |  | 			db.getSortedSetRevUnion(['users:joindate', 'users:derp', 'users:postcount'], 0, -1, function(err, data) { | 
					
						
							| 
									
										
										
										
											2014-05-23 09:22:17 -04:00
										 |  |  | 				callback(err, {'sortedSetUnion': data}); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-10 00:36:28 -04:00
										 |  |  | 		var sortedSetTasks = [ | 
					
						
							|  |  |  | 			sortedSetAdd, | 
					
						
							| 
									
										
										
										
											2014-04-11 01:38:09 -04:00
										 |  |  | 			sortedSetAdd, | 
					
						
							|  |  |  | 			isSortedSetMember, | 
					
						
							| 
									
										
										
										
											2014-04-10 00:36:28 -04:00
										 |  |  | 			getSortedSetRange, | 
					
						
							|  |  |  | 			sortedSetAdd, | 
					
						
							|  |  |  | 			getSortedSetRange, | 
					
						
							| 
									
										
										
										
											2014-04-11 01:38:09 -04:00
										 |  |  | 			getSortedSetRevRange, | 
					
						
							| 
									
										
										
										
											2014-04-10 00:36:28 -04:00
										 |  |  | 			sortedSetRemove, | 
					
						
							|  |  |  | 			getSortedSetRange, | 
					
						
							|  |  |  | 			sortedSetCount, | 
					
						
							|  |  |  | 			sortedSetScore, | 
					
						
							|  |  |  | 			sortedSetsScore, | 
					
						
							| 
									
										
										
										
											2014-05-23 08:57:51 -04:00
										 |  |  | 			getSortedSetRevRangeByScore, | 
					
						
							| 
									
										
										
										
											2014-05-23 09:22:17 -04:00
										 |  |  | 			getSortedSetUnion, | 
					
						
							|  |  |  | 			getSortedSetRevUnion | 
					
						
							| 
									
										
										
										
											2014-04-10 00:36:28 -04:00
										 |  |  | 		]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		async.series(sortedSetTasks, function(err, results) { | 
					
						
							|  |  |  | 			assert.equal(err, null, 'error in sorted set methods'); | 
					
						
							|  |  |  | 			assert.ok(results); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			done(); | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	}); | 
					
						
							| 
									
										
										
										
											2014-11-04 18:39:25 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	after(function() { | 
					
						
							|  |  |  | 		db.flushdb(); | 
					
						
							|  |  |  | 	}); | 
					
						
							| 
									
										
										
										
											2013-10-30 01:47:27 +02:00
										 |  |  | }); |