mirror of https://gitee.com/bigwinds/arangodb
Merge pull request #916 from triAGENS/js-cleanup
Cleanup of some JavaScript modules
This commit is contained in:
commit
151f9ef6c7
|
@ -14,7 +14,7 @@ var _ = require("underscore");
|
||||||
// Helper function to correctly set up the prototype chain, for subclasses.
|
// Helper function to correctly set up the prototype chain, for subclasses.
|
||||||
// Similar to `goog.inherits`, but uses a hash of prototype properties and
|
// Similar to `goog.inherits`, but uses a hash of prototype properties and
|
||||||
// class properties to be extended.
|
// class properties to be extended.
|
||||||
exports.extend = function(protoProps, staticProps) {
|
exports.extend = function (protoProps, staticProps) {
|
||||||
var parent = this;
|
var parent = this;
|
||||||
var child;
|
var child;
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ exports.extend = function(protoProps, staticProps) {
|
||||||
if (protoProps && _.has(protoProps, 'constructor')) {
|
if (protoProps && _.has(protoProps, 'constructor')) {
|
||||||
child = protoProps.constructor;
|
child = protoProps.constructor;
|
||||||
} else {
|
} else {
|
||||||
child = function(){ return parent.apply(this, arguments); };
|
child = function () { return parent.apply(this, arguments); };
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add static properties to the constructor function, if supplied.
|
// Add static properties to the constructor function, if supplied.
|
||||||
|
@ -32,13 +32,15 @@ exports.extend = function(protoProps, staticProps) {
|
||||||
|
|
||||||
// Set the prototype chain to inherit from `parent`, without calling
|
// Set the prototype chain to inherit from `parent`, without calling
|
||||||
// `parent`'s constructor function.
|
// `parent`'s constructor function.
|
||||||
var Surrogate = function(){ this.constructor = child; };
|
var Surrogate = function () { this.constructor = child; };
|
||||||
Surrogate.prototype = parent.prototype;
|
Surrogate.prototype = parent.prototype;
|
||||||
child.prototype = new Surrogate;
|
child.prototype = new Surrogate();
|
||||||
|
|
||||||
// Add prototype properties (instance properties) to the subclass,
|
// Add prototype properties (instance properties) to the subclass,
|
||||||
// if supplied.
|
// if supplied.
|
||||||
if (protoProps) _.extend(child.prototype, protoProps);
|
if (protoProps) {
|
||||||
|
_.extend(child.prototype, protoProps);
|
||||||
|
}
|
||||||
|
|
||||||
// Set a convenience property in case the parent's prototype is needed
|
// Set a convenience property in case the parent's prototype is needed
|
||||||
// later.
|
// later.
|
|
@ -1,181 +0,0 @@
|
||||||
/*jslint indent: 2, nomen: true, maxlen: 100, white: true, plusplus: true, eqeq: true */
|
|
||||||
/*global require, exports, assertTrue */
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
/// @brief Mini Stub and Mock Framework
|
|
||||||
///
|
|
||||||
/// @file
|
|
||||||
///
|
|
||||||
/// DISCLAIMER
|
|
||||||
///
|
|
||||||
/// Copyright 2010-2012 triagens GmbH, Cologne, Germany
|
|
||||||
///
|
|
||||||
/// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
/// you may not use this file except in compliance with the License.
|
|
||||||
/// You may obtain a copy of the License at
|
|
||||||
///
|
|
||||||
/// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
///
|
|
||||||
/// Unless required by applicable law or agreed to in writing, software
|
|
||||||
/// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
/// See the License for the specific language governing permissions and
|
|
||||||
/// limitations under the License.
|
|
||||||
///
|
|
||||||
/// Copyright holder is triAGENS GmbH, Cologne, Germany
|
|
||||||
///
|
|
||||||
/// @author Lucas Dohmen
|
|
||||||
/// @author Copyright 2011-2012, triAGENS GmbH, Cologne, Germany
|
|
||||||
|
|
||||||
var stub,
|
|
||||||
allow,
|
|
||||||
expect,
|
|
||||||
FunctionStub,
|
|
||||||
FunctionMock,
|
|
||||||
mockConstructor,
|
|
||||||
_ = require("underscore");
|
|
||||||
|
|
||||||
// Sorry for Yak Shaving. But I can't take it anymore.
|
|
||||||
|
|
||||||
// x = stub();
|
|
||||||
|
|
||||||
stub = function () {
|
|
||||||
'use strict';
|
|
||||||
return function() {};
|
|
||||||
};
|
|
||||||
|
|
||||||
// allow(x)
|
|
||||||
// .toReceive("functionName")
|
|
||||||
// .andReturn({ x: 1 })
|
|
||||||
|
|
||||||
FunctionStub = function(obj) {
|
|
||||||
'use strict';
|
|
||||||
this.obj = obj;
|
|
||||||
};
|
|
||||||
|
|
||||||
_.extend(FunctionStub.prototype, {
|
|
||||||
toReceive: function (functionName) {
|
|
||||||
'use strict';
|
|
||||||
this.functionName = functionName;
|
|
||||||
this.buildFunctionStub();
|
|
||||||
return this;
|
|
||||||
},
|
|
||||||
|
|
||||||
andReturn: function (returnValue) {
|
|
||||||
'use strict';
|
|
||||||
this.returnValue = returnValue;
|
|
||||||
this.buildFunctionStub();
|
|
||||||
return this;
|
|
||||||
},
|
|
||||||
|
|
||||||
buildFunctionStub: function () {
|
|
||||||
'use strict';
|
|
||||||
var returnValue = this.returnValue;
|
|
||||||
|
|
||||||
this.obj[this.functionName] = function () {
|
|
||||||
return returnValue;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
allow = function(obj) {
|
|
||||||
'use strict';
|
|
||||||
return (new FunctionStub(obj));
|
|
||||||
};
|
|
||||||
|
|
||||||
// expect(x)
|
|
||||||
// .toReceive("functionName")
|
|
||||||
// .withArguments(5)
|
|
||||||
// .andReturn({ x: 1 })
|
|
||||||
//
|
|
||||||
// ...
|
|
||||||
//
|
|
||||||
// x.assertIsSatisfied();
|
|
||||||
|
|
||||||
FunctionMock = function(obj) {
|
|
||||||
'use strict';
|
|
||||||
this.obj = obj;
|
|
||||||
this.obj.satisfied = false;
|
|
||||||
|
|
||||||
this.obj.assertIsSatisfied = function () {
|
|
||||||
assertTrue(this.satisfied, "Mock expectation was not satisfied");
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
_.extend(FunctionMock.prototype, {
|
|
||||||
toReceive: function (functionName) {
|
|
||||||
'use strict';
|
|
||||||
this.functionName = functionName;
|
|
||||||
this.buildFunctionMock();
|
|
||||||
return this;
|
|
||||||
},
|
|
||||||
|
|
||||||
andReturn: function (returnValue) {
|
|
||||||
'use strict';
|
|
||||||
this.returnValue = returnValue;
|
|
||||||
this.buildFunctionMock();
|
|
||||||
return this;
|
|
||||||
},
|
|
||||||
|
|
||||||
withArguments: function () {
|
|
||||||
'use strict';
|
|
||||||
this.expectedArguments = arguments;
|
|
||||||
this.buildFunctionMock();
|
|
||||||
return this;
|
|
||||||
},
|
|
||||||
|
|
||||||
buildFunctionMock: function () {
|
|
||||||
'use strict';
|
|
||||||
var returnValue = this.returnValue,
|
|
||||||
expectedArguments = this.expectedArguments,
|
|
||||||
obj = this.obj;
|
|
||||||
|
|
||||||
this.obj[this.functionName] = function () {
|
|
||||||
if ((expectedArguments === undefined) || (_.isEqual(arguments, expectedArguments))) {
|
|
||||||
obj.satisfied = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return returnValue;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
expect = function(obj) {
|
|
||||||
'use strict';
|
|
||||||
return (new FunctionMock(obj));
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Create a Mock Constructor
|
|
||||||
*
|
|
||||||
* Give the arguments you expect to mockConstructor:
|
|
||||||
* It checks, if it was called with new and the
|
|
||||||
* correct arguments.
|
|
||||||
*
|
|
||||||
* MyProto = mockConstructor(test);
|
|
||||||
*
|
|
||||||
* a = new MyProto(test);
|
|
||||||
*
|
|
||||||
* MyProto.assertIsSatisfied();
|
|
||||||
*/
|
|
||||||
mockConstructor = function () {
|
|
||||||
'use strict';
|
|
||||||
var expectedArguments = arguments,
|
|
||||||
satisfied = false,
|
|
||||||
MockConstructor = function () {
|
|
||||||
if (this.constructor === MockConstructor) {
|
|
||||||
// Was called as a constructor
|
|
||||||
satisfied = _.isEqual(arguments, expectedArguments);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
MockConstructor.assertIsSatisfied = function () {
|
|
||||||
assertTrue(satisfied);
|
|
||||||
};
|
|
||||||
|
|
||||||
return MockConstructor;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.stub = stub;
|
|
||||||
exports.allow = allow;
|
|
||||||
exports.expect = expect;
|
|
||||||
exports.mockConstructor = mockConstructor;
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*jslint indent: 2, nomen: true, maxlen: 120, regexp: true, todo: true */
|
/*jslint indent: 2, nomen: true, maxlen: 120, regexp: true */
|
||||||
/*global module, require, exports, print */
|
/*global module, require, exports, print */
|
||||||
|
|
||||||
var runTest = require('jsunity').runTest,
|
var runTest = require('jsunity').runTest,
|
||||||
|
@ -19,8 +19,7 @@ runJSUnityTests = function (tests) {
|
||||||
_.each(tests, function (file) {
|
_.each(tests, function (file) {
|
||||||
if (result) {
|
if (result) {
|
||||||
print("\nRunning JSUnity test from file '" + file + "'");
|
print("\nRunning JSUnity test from file '" + file + "'");
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
print("\nSkipping JSUnity test from file '" + file + "' due to previous errors");
|
print("\nSkipping JSUnity test from file '" + file + "' due to previous errors");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
var Model,
|
var Model,
|
||||||
_ = require("underscore"),
|
_ = require("underscore"),
|
||||||
is = require("org/arangodb/is"),
|
is = require("org/arangodb/is"),
|
||||||
backbone_helpers = require("backbone"),
|
extend = require('org/arangodb/extend').extend,
|
||||||
metadataKeys = ['_id', '_key', '_rev'],
|
metadataKeys = ['_id', '_key', '_rev'],
|
||||||
parseAttributes,
|
parseAttributes,
|
||||||
parseRequiredAttributes;
|
parseRequiredAttributes;
|
||||||
|
@ -285,7 +285,7 @@ _.extend(Model.prototype, {
|
||||||
/// the second object those to be defined on the prototype.
|
/// the second object those to be defined on the prototype.
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
Model.extend = backbone_helpers.extend;
|
Model.extend = extend;
|
||||||
|
|
||||||
exports.Model = Model;
|
exports.Model = Model;
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
|
|
||||||
var Repository,
|
var Repository,
|
||||||
_ = require("underscore"),
|
_ = require("underscore"),
|
||||||
backbone_helpers = require("backbone");
|
extend = require('org/arangodb/extend').extend;
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @startDocuBlock JSF_foxx_repository_initializer
|
/// @startDocuBlock JSF_foxx_repository_initializer
|
||||||
|
@ -412,7 +412,7 @@ _.extend(Repository.prototype, {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Repository.extend = backbone_helpers.extend;
|
Repository.extend = extend;
|
||||||
|
|
||||||
exports.Repository = Repository;
|
exports.Repository = Repository;
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,97 @@
|
||||||
require("internal").flushModuleCache();
|
require("internal").flushModuleCache();
|
||||||
|
|
||||||
|
// Stubbing and Mocking
|
||||||
|
|
||||||
|
var stub,
|
||||||
|
allow,
|
||||||
|
FunctionStub,
|
||||||
|
mockConstructor,
|
||||||
|
_ = require("underscore");
|
||||||
|
|
||||||
|
// Sorry for Yak Shaving. But I can't take it anymore.
|
||||||
|
|
||||||
|
// x = stub();
|
||||||
|
|
||||||
|
stub = function () {
|
||||||
|
'use strict';
|
||||||
|
return function() {};
|
||||||
|
};
|
||||||
|
|
||||||
|
// allow(x)
|
||||||
|
// .toReceive("functionName")
|
||||||
|
// .andReturn({ x: 1 })
|
||||||
|
|
||||||
|
FunctionStub = function(obj) {
|
||||||
|
'use strict';
|
||||||
|
this.obj = obj;
|
||||||
|
};
|
||||||
|
|
||||||
|
_.extend(FunctionStub.prototype, {
|
||||||
|
toReceive: function (functionName) {
|
||||||
|
'use strict';
|
||||||
|
this.functionName = functionName;
|
||||||
|
this.buildFunctionStub();
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
|
||||||
|
andReturn: function (returnValue) {
|
||||||
|
'use strict';
|
||||||
|
this.returnValue = returnValue;
|
||||||
|
this.buildFunctionStub();
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
|
||||||
|
buildFunctionStub: function () {
|
||||||
|
'use strict';
|
||||||
|
var returnValue = this.returnValue;
|
||||||
|
|
||||||
|
this.obj[this.functionName] = function () {
|
||||||
|
return returnValue;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
allow = function(obj) {
|
||||||
|
'use strict';
|
||||||
|
return (new FunctionStub(obj));
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Create a Mock Constructor
|
||||||
|
*
|
||||||
|
* Give the arguments you expect to mockConstructor:
|
||||||
|
* It checks, if it was called with new and the
|
||||||
|
* correct arguments.
|
||||||
|
*
|
||||||
|
* MyProto = mockConstructor(test);
|
||||||
|
*
|
||||||
|
* a = new MyProto(test);
|
||||||
|
*
|
||||||
|
* MyProto.assertIsSatisfied();
|
||||||
|
*/
|
||||||
|
mockConstructor = function () {
|
||||||
|
'use strict';
|
||||||
|
var expectedArguments = arguments,
|
||||||
|
satisfied = false,
|
||||||
|
MockConstructor = function () {
|
||||||
|
if (this.constructor === MockConstructor) {
|
||||||
|
// Was called as a constructor
|
||||||
|
satisfied = _.isEqual(arguments, expectedArguments);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
MockConstructor.assertIsSatisfied = function () {
|
||||||
|
assertTrue(satisfied);
|
||||||
|
};
|
||||||
|
|
||||||
|
return MockConstructor;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
var jsunity = require("jsunity"),
|
var jsunity = require("jsunity"),
|
||||||
FoxxController = require("org/arangodb/foxx").Controller,
|
FoxxController = require("org/arangodb/foxx").Controller,
|
||||||
db = require("org/arangodb").db,
|
db = require("org/arangodb").db,
|
||||||
_ = require("underscore"),
|
|
||||||
fakeContext,
|
fakeContext,
|
||||||
fakeContextWithRootElement,
|
fakeContextWithRootElement;
|
||||||
stub_and_mock = require("org/arangodb/stub_and_mock"),
|
|
||||||
stub = stub_and_mock.stub,
|
|
||||||
allow = stub_and_mock.allow,
|
|
||||||
mockConstructor = stub_and_mock.mockConstructor;
|
|
||||||
|
|
||||||
fakeContext = {
|
fakeContext = {
|
||||||
prefix: "",
|
prefix: "",
|
||||||
|
|
Loading…
Reference in New Issue