Socket
Socket
Sign inDemoInstall

typemoq

Package Overview
Dependencies
Maintainers
1
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

typemoq - npm Package Compare versions

Comparing version 2.0.1 to 2.1.0

6

CHANGELOG.md

@@ -0,1 +1,7 @@

v2.1.0 / 2017-10-31
===================
* enable dynamic mocks to call failing invocation toString at error time #77
* update to lodash 4.17.4
v2.0.1 / 2017-08-10

@@ -2,0 +8,0 @@ ===================

4

dist/typemoq-min.js

@@ -1,2 +0,2 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("lodash"),require("circular-json")):"function"==typeof define&&define.amd?define(["exports","lodash","circular-json"],e):e(t.TypeMoq={},t._,t.CircularJSON)}(this,function(t,e,n){!function(t){t[t.Loose=0]="Loose",t[t.Strict=1]="Strict"}(t.MockBehavior||(t.MockBehavior={})),function(t){t[t.InAnyOrder=0]="InAnyOrder",t[t.InSequence=1]="InSequence"}(t.ExpectedCallType||(t.ExpectedCallType={}));var r,o=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=function(t){function e(n,r){var o=t.call(this,r)||this;return o.name=n,Object.setPrototypeOf(o,e.prototype),o}return o(e,t),e.prototype.toString=function(){var t=this.message?this.name+" - "+this.message:this.name;return t},e}(Error),c=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(t){t[t.NoSetup="no setup expression found for"]="NoSetup",t[t.MoreThanOneSetup="more than one setup expression found for"]="MoreThanOneSetup",t[t.InvalidArg="invalid argument"]="InvalidArg",t[t.InvalidSetup="invalid setup expression"]="InvalidSetup",t[t.InvalidMatcher="invalid matching expression"]="InvalidMatcher",t[t.UnknownGlobalType="unknown global type"]="UnknownGlobalType",t[t.CallCountVerificationFailed="invocation count verification failed"]="CallCountVerificationFailed",t[t.CallOrderVerificationFailed="invocation order verification failed"]="CallOrderVerificationFailed",t[t.InvalidDynamicProxyRuntime="invalid dynamic proxy runtime"]="InvalidDynamicProxyRuntime"}(r||(r={}));var u,a=function(t){function e(n,r,o){void 0===o&&(o=void 0);var i=t.call(this,"MockException",o)||this;return i.reason=n,i.ctx=r,i.message=o,Object.setPrototypeOf(i,e.prototype),i}return c(e,t),e.prototype.toString=function(){var t=this.name+" - "+this.reason;return this.message&&(t=t+" ("+this.message+")"),t},e}(i),s=function(){function t(t,n,r,o){this._condition=t,this.min=n,this.max=r,this._failMessage=e.template(o)}return t.prototype.failMessage=function(t){return this._failMessage({i:t,min:this.min,max:this.max,c:this._lastCallCount})},t.prototype.verify=function(t){return this._lastCallCount=t,this._condition(t)},t.checkArg=function(t,e){if(0>t)throw new a(r.InvalidArg,void 0,e+" argument cannot be a negative number")},t.exactly=function(e){return t.checkArg(e,"'Times.exactly'"),new t(function(t){return t===e},e,e,t.NO_MATCHING_CALLS_EXACTLY_N_TIMES)},t.atLeast=function(e){return t.checkArg(e,"'Times.atLeast'"),new t(function(t){return t>=e},e,255,t.NO_MATCHING_CALLS_AT_LEAST_N_TIMES)},t.atMost=function(e){return t.checkArg(e,"'Times.atMost'"),new t(function(t){return t>=0&&e>=t},0,e,t.NO_MATCHING_CALLS_AT_MOST_N_TIMES)},t.never=function(){return t.exactly(0)},t.once=function(){return t.exactly(1)},t.atLeastOnce=function(){return t.atLeast(1)},t.atMostOnce=function(){return t.atMost(1)},t.prototype.toString=function(){var t="";return t=this.min===this.max?0===this.min?"never":1===this.min?"once":this.min+" times":0===this.min&&255!==this.max?"at most "+this.max+" times":"at least "+this.min+" times"},t.NO_MATCHING_CALLS_EXACTLY_N_TIMES="expected invocation of <%= i %> exactly <%= min %> times, invoked <%= c %> times",t.NO_MATCHING_CALLS_AT_LEAST_N_TIMES="expected invocation of <%= i %> at least <%= min %> times, invoked <%= c %> times",t.NO_MATCHING_CALLS_AT_MOST_N_TIMES="expected invocation of <%= i %> at most <%= max %> times, invoked <%= c %> times",t}(),p=function(){function t(){}return t.getOwnEnumerables=function(t){return this._getPropertyNames(t,!0,!1,this._enumerable)},t.getOwnNonenumerables=function(t){return this._getPropertyNames(t,!0,!1,this._notEnumerable)},t.getOwnEnumerablesAndNonenumerables=function(t){return this._getPropertyNames(t,!0,!1,this._enumerableAndNotEnumerable)},t.getPrototypeEnumerables=function(t){return this._getPropertyNames(t,!1,!0,this._enumerable)},t.getPrototypeNonenumerables=function(t){return this._getPropertyNames(t,!1,!0,this._notEnumerable)},t.getPrototypeEnumerablesAndNonenumerables=function(t){return this._getPropertyNames(t,!1,!0,this._enumerableAndNotEnumerable)},t.getOwnAndPrototypeEnumerables=function(t){return this._getPropertyNames(t,!0,!0,this._enumerable)},t.getOwnAndPrototypeNonenumerables=function(t){return this._getPropertyNames(t,!0,!0,this._notEnumerable)},t.getOwnAndPrototypeEnumerablesAndNonenumerables=function(t){return this._getPropertyNames(t,!0,!0,this._enumerableAndNotEnumerable)},t._enumerable=function(t,e){return t.propertyIsEnumerable(e)},t._notEnumerable=function(t,e){return!t.propertyIsEnumerable(e)},t._enumerableAndNotEnumerable=function(t,e){return!0},t._getPropertyNames=function(t,n,r,o){var i=[];do{if(n)for(var c=Object.getOwnPropertyNames(t),u=function(n){var r=e.find(i,function(t){return t.name===n});if(!r&&o(t,n)){var c=Object.getOwnPropertyDescriptor(t,n);i.push({name:n,desc:c})}},a=0,s=c;a<s.length;a++){var p=s[a];u(p)}if(!r)break;n=!0}while(t=Object.getPrototypeOf(t));return i},t}(),l=function(){function t(){}return t.IMATCH_ID_VALUE="438A51D3-6864-49D7-A655-CA1153B86965",t.IMATCH_ID_NAME="___id",t.IMATCH_MATCHES_NAME="___matches",t.IPROXY_ID_VALUE="BCDF5CE5-F0DF-40B7-8BA0-69DF395033C8",t.IPROXY_ID_NAME="___id",t}(),f=function(){function t(){}return t.isMatcher=function(t){return!e.isNil(t)&&!e.isUndefined(t[l.IMATCH_MATCHES_NAME])&&!e.isUndefined(t[l.IMATCH_ID_NAME])&&t[l.IMATCH_ID_NAME]===l.IMATCH_ID_VALUE},t}(),h=function(){function t(){}return t.functionName=function(t){var e;if(t.name)e=t.name;else{var n=t.toString();n=n.substr("function ".length),e=n.substr(0,n.indexOf("("))}return e},t.objectName=function(e){var n=t.functionName(e.constructor);return n},t.argsName=function(t){var r=Array.prototype.slice.call(t),o=r.map(function(t){var e="";return e=f.isMatcher(t)?t.toString():n.stringify(t)}),i=e.join(o);return i},t.conthunktor=function(t,e){var n=new(t.bind.apply(t,[void 0].concat(e)));return n},t.clone=function(t,e){for(var n=p.getOwnAndPrototypeEnumerablesAndNonenumerables(e),r=0,o=n;r<o.length;r++){var i=o[r];Object.defineProperty(t,i.name,i.desc)}},t}(),y=function(){function t(t){this._ctor=t,this.___id=l.IMATCH_ID_VALUE}return t.prototype.___matches=function(t){var e=!1;return t&&t.constructor.prototype==this._ctor.prototype&&(e=!0),e},t.prototype.toString=function(){var t="It.isAnyObject("+h.functionName(this._ctor)+")";return t},t}(),_=function(){function t(){this.___id=l.IMATCH_ID_VALUE}return t.prototype.___matches=function(t){var e=!0;return e},t.prototype.toString=function(){return"It.isAny()"},t}(),v=function(){function t(){this.___id=l.IMATCH_ID_VALUE}return t.prototype.___matches=function(t){var n=!1;return e.isString(t)&&(n=!0),n},t.prototype.toString=function(){return"It.isAnyString()"},t}(),d=function(){function t(){this.___id=l.IMATCH_ID_VALUE}return t.prototype.___matches=function(t){var n=!1;return e.isNumber(t)&&(n=!0),n},t.prototype.toString=function(){return"It.isAnyNumber()"},t}(),m=function(){function t(t){this._pred=t,this.___id=l.IMATCH_ID_VALUE}return t.prototype.___matches=function(t){var e=!1;return t&&this._pred(t)&&(e=!0),e},t.prototype.toString=function(){var t="It.is("+this._pred+")";return t},t}(),b=function(){function t(t){this.___id=l.IMATCH_ID_VALUE,this._value=e.cloneDeep(t)}return t.prototype.___matches=function(t){var n=!1;return e.isEqual(this._value,t)&&(n=!0),n},t.prototype.toString=function(){var t=h.argsName([this._value]),e="It.isValue("+t+")";return e},t}(),g=function(){function t(t){this.___id=l.IMATCH_ID_VALUE,this._value=e.cloneDeep(t)}return t.prototype.___matches=function(t){var n=!1,r=e.pick(t,e.keys(this._value));return e.isEqual(this._value,r)&&(n=!0),n},t.prototype.toString=function(){var t=h.argsName([this._value]),e="It.isObjectWith("+t+")";return e},t}();!function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.PROPERTY=1]="PROPERTY",t[t.FUNCTION=2]="FUNCTION"}(u||(u={}));var C;!function(t){t[t.STATIC=0]="STATIC",t[t.DYNAMIC=1]="DYNAMIC"}(C||(C={}));var O,I=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(t){t[t.NONE=0]="NONE",t[t.SETUP=1]="SETUP",t[t.EXECUTE=2]="EXECUTE"}(O||(O={}));var w,P=function(){function t(t,e){this.proxyType=t,this.callType=e,this.invocationType=O.NONE}return Object.defineProperty(t.prototype,"isAnUnknownDynamicCallAtExecution",{get:function(){return this.proxyType==C.DYNAMIC&&this.callType==u.UNKNOWN&&this.invocationType==O.EXECUTE},enumerable:!0,configurable:!0}),t}(),x=function(t){function n(n,r,o,i,c){void 0===i&&(i=C.STATIC),void 0===c&&(c=u.FUNCTION);var a=t.call(this,i,c)||this;return a._that=n,a._property=r,o&&(a._args=e.cloneDeep(o),a._args.length=o.length,a._args.callee=o.callee),a}return I(n,t),Object.defineProperty(n.prototype,"args",{get:function(){return this._args||{length:0,callee:null}},set:function(t){this._args=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"property",{get:function(){return this._property},enumerable:!0,configurable:!0}),n.prototype.invokeBase=function(){var t={};this._that?h.clone(t,this._that):t=this._property.obj,this.returnValue=this._property.toFunc.apply(t,this._args)},n.prototype.toString=function(){var t=this.property+"("+h.argsName(this.args)+")";return t},n}(P),A=function(t){function n(n,r,o,i){void 0===o&&(o=C.STATIC),void 0===i&&(i=u.PROPERTY);var c=t.call(this,o,i)||this;return c._property=n,c.value=r,c.returnValue=e.cloneDeep(r),c}return I(n,t),Object.defineProperty(n.prototype,"args",{get:function(){var t=[];return Object.defineProperty(t,"callee",{configurable:!0,enumerable:!0,writable:!1,value:null}),t},set:function(t){},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"property",{get:function(){return this._property},enumerable:!0,configurable:!0}),n.prototype.invokeBase=function(){this.returnValue=this._property.obj[this._property.name]},n.prototype.toString=function(){var t=""+this.property;return t},n}(P),N=function(t){function n(n,r){var o=t.call(this,n,r,C.DYNAMIC,u.UNKNOWN)||this;return o.returnValue=e.cloneDeep(r),o}return I(n,t),n}(A),T=function(t){function n(n,r,o,i){void 0===o&&(o=C.STATIC),void 0===i&&(i=u.PROPERTY);var c=t.call(this,o,i)||this;return c._property=n,c._args=e.cloneDeep(r),c._args.length=r.length,c._args.callee=r.callee,c}return I(n,t),Object.defineProperty(n.prototype,"args",{get:function(){return this._args},set:function(t){this._args=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"property",{get:function(){return this._property},enumerable:!0,configurable:!0}),n.prototype.invokeBase=function(){this._property.obj[this._property.name]=this._args[0],this.returnValue=this._property.obj[this._property.name]},n.prototype.toString=function(){var t=this.property+" = "+h.argsName(this.args[0]);return t},n}(P),E=function(t){function e(e,n,r,o){void 0===r&&(r=C.STATIC),void 0===o&&(o=u.FUNCTION);var i=t.call(this,r,o)||this;return i._property=e,i._getter=n,i}return I(e,t),Object.defineProperty(e.prototype,"args",{get:function(){var t=[];return Object.defineProperty(t,"callee",{configurable:!0,enumerable:!0,writable:!1,value:null}),t},set:function(t){},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"property",{get:function(){return this._property},enumerable:!0,configurable:!0}),e.prototype.invokeBase=function(){this.returnValue=this._property.obj[this._property.name]},e.prototype.toString=function(){var t=""+this.property;return t},e}(P),j=function(t){function n(n,r,o,i,c){void 0===i&&(i=C.STATIC),void 0===c&&(c=u.FUNCTION);var a=t.call(this,i,c)||this;return a._property=n,a._setter=r,a._args=e.cloneDeep(o),a._args.length=o.length,a._args.callee=o.callee,a}return I(n,t),Object.defineProperty(n.prototype,"args",{get:function(){return this._args},set:function(t){this._args=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"property",{get:function(){return this._property},enumerable:!0,configurable:!0}),n.prototype.invokeBase=function(){this._property.obj[this._property.name]=this._args[0],this.returnValue=this._property.obj[this._property.name]},n.prototype.toString=function(){var t=this.property+"("+h.argsName(this.args[0])+")";return t},n}(P),k=function(){function t(t,n,r){this.obj=t,this.name=n,r&&(this.desc=e.cloneDeep(r))}return Object.defineProperty(t.prototype,"toFunc",{get:function(){var t;return t=e.isFunction(this.obj)?this.obj:this.obj[this.name]},enumerable:!0,configurable:!0}),t.prototype.toString=function(){var t=h.objectName(this.obj),e=t+"."+this.name;return e},t}(),M=function(){function t(t,n,r){this.obj=t,this.name=n,r&&(this.desc=e.cloneDeep(r))}return t.prototype.toString=function(){var t=h.objectName(this.obj),e=t+"."+this.name;return e},t}(),S=function(){function t(t,n){var r=this;this.___id=l.IPROXY_ID_VALUE,this.check(t);var o=this,i=p.getOwnAndPrototypeEnumerablesAndNonenumerables(t);e.each(i,function(i){if(e.isFunction(i.desc.value)){var c={configurable:i.desc.configurable,enumerable:i.desc.enumerable,writable:i.desc.writable};r.defineMethodProxy(o,n,t,i.name,c)}else{var c={configurable:i.desc.configurable,enumerable:i.desc.enumerable};void 0!==i.desc.value?r.defineValuePropertyProxy(o,n,t,i.name,i.desc.value,c):r.defineGetSetPropertyProxy(o,n,t,i.name,i.desc.get,i.desc.set,c)}})}return t.of=function(n,r){t.check(n);var o;if(e.isFunction(n)){var i=h.functionName(n);o=t.methodProxyValue(void 0,r,n,i,null)}else o=new t(n,r);return o},t.isProxy=function(t){return e.isNil(t)||e.isUndefined(t[l.IPROXY_ID_NAME])||t[l.IPROXY_ID_NAME]!==l.IPROXY_ID_VALUE?!1:!0},t.check=function(n){t.checkNotNullOrUndefined(n);var o=!1;if((e.isFunction(n)||e.isObject(n)&&!t.isPrimitiveObject(n))&&(o=!0),!o)throw new a(r.InvalidArg,n,"'"+n+"'; proxy argument should be a function or a non primitive object")},t.prototype.check=function(n){t.checkNotNullOrUndefined(n);var o=!1;if(e.isFunction(n)||!e.isObject(n)||t.isPrimitiveObject(n)||(o=!0),!o)throw new a(r.InvalidArg,n,"'"+n+"'; proxy argument should be a non primitive object")},t.checkNotNullOrUndefined=function(t){if(e.isNil(t))throw new a(r.InvalidArg,t,"'"+t+"'; proxy argument is required")},t.isPrimitiveObject=function(t){var n=!1;return(e.isFunction(t)||e.isArray(t)||e.isDate(t)||e.isNull(t))&&(n=!0),n},t.prototype.defineMethodProxy=function(e,n,r,o,i){void 0===i&&(i={configurable:!0,enumerable:!0,writable:!1}),i.value=t.methodProxyValue(e,n,r,o,i),this.defineProperty(e,o,i)},t.methodProxyValue=function(t,e,n,r,o){function i(){var i=new k(n,r,o),c=new x(t,i,arguments);return e.intercept(c),c.returnValue}return i},t.prototype.defineValuePropertyProxy=function(t,e,n,r,o,i){function c(){var t=new M(n,r),i=new A(t,o);return e.intercept(i),i.returnValue}function u(t){var o=new M(n,r),i=new T(o,arguments);e.intercept(i)}void 0===i&&(i={configurable:!0,enumerable:!0}),i.get=c,i.set=u,this.defineProperty(t,r,i)},t.prototype.defineGetSetPropertyProxy=function(t,e,n,r,o,i,c){function u(){var t=new M(n,r),i=new E(t,o);return e.intercept(i),i.returnValue}function a(t){var o=new M(n,r),c=new j(o,i,arguments);e.intercept(c)}void 0===c&&(c={configurable:!0,enumerable:!0}),c.get=u,c.set=a,this.defineProperty(t,r,c)},t.prototype.defineProperty=function(t,e,n){try{Object.defineProperty(t,e,n)}catch(r){console.log(r.message)}},t}(),V=function(){function t(t,e){this.___id=l.IPROXY_ID_VALUE;var n=new Proxy(t,e);return n}return t.of=function(e,n){t.check();var r=new t(e,n);return r},t.check=function(){if("undefined"==typeof Proxy)throw new a(r.InvalidDynamicProxyRuntime,null,"ES6 Proxy object not detected; the dynamic mocking feature requires ES6 Proxy object support")},t}(),D=function(){function t(t){this._interceptor=t}return t.prototype.apply=function(t,e,n){var r=h.functionName(t),o=new k(t,r),i=new x(t,o,n,C.DYNAMIC);return this._interceptor.intercept(i),i.returnValue},t.prototype.get=function(t,e,n){var r=this,o=t[e],i=new M(t,e),c=new N(i,o);return this._interceptor.intercept(c),c.callType==u.PROPERTY&&c.property.desc?c.returnValue:function(){for(var n=[],o=0;o<arguments.length;o++)n[o]=arguments[o];r._interceptor.removeInvocation(c);var i=new k(t,e),u=new x(t,i,n,C.DYNAMIC);return r._interceptor.intercept(u),u.returnValue}},t.prototype.set=function(t,e,n,r){var o=new M(t,e),i=new T(o,[n],C.DYNAMIC);return this._interceptor.intercept(i),Reflect.set(t,e,n,r)},t.prototype.defineProperty=function(t,e,n){return n.configurable=!0,Reflect.defineProperty(t,e,n)},t}(),U=function(){function t(){}return t.createProxy=function(t,e){var n=S.of(t,e);return n},t.createProxyES6=function(t,e){var n=new D(e),r=V.of(t,n);return r},t}(),L=function(){function n(e,n,r){void 0===r&&(r=t.MockBehavior.Loose),this.target=e,this.canOverrideTarget=n,this.behavior=r,this._id=this.generateId(),this._name=this.getNameOf(this.target)}return Object.defineProperty(n.prototype,"object",{get:function(){return this._proxy},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"callBase",{get:function(){return this._callBase},set:function(t){this._callBase=t},enumerable:!0,configurable:!0}),n.prototype.generateId=function(){return"Mock<"+e.uniqueId()+">"},n.prototype.getNameOf=function(t){var n;if(e.isFunction(t))n=h.functionName(t);else if(e.isObject(t)){var r=t.constructor;n=h.functionName(r)}return n&&(n=n.trim()),n},n.prototype.verifyAll=function(){try{this._interceptor.verify()}catch(t){throw t}},n.prototype.reset=function(){this._interceptor.reset()},n}();!function(t){t[t.Continue=0]="Continue",t[t.Stop=1]="Stop"}(w||(w={}));var F,B=function(){function t(t){this.mock=t,this._actualInvocations=[],this._expectedCalls=[]}return Object.defineProperty(t.prototype,"behavior",{get:function(){return this.mock.behavior},enumerable:!0,configurable:!0}),t.prototype.addInvocation=function(t){this._actualInvocations.push(t)},t.prototype.removeInvocation=function(t){e.remove(this._actualInvocations,function(e){return e===t})},t.prototype.actualInvocations=function(){return this._actualInvocations},t.prototype.clearInvocations=function(){this._actualInvocations.splice(0,this._actualInvocations.length)},t.prototype.addExpectedCall=function(t){this._expectedCalls.push(t)},t.prototype.removeExpectedCall=function(t){e.filter(this._expectedCalls,function(e){return e.id!==t.id})},t.prototype.expectedCalls=function(){return this._expectedCalls},t.prototype.clearExpectedCalls=function(){this._expectedCalls.splice(0,this._expectedCalls.length)},t.prototype.reset=function(){this.clearInvocations(),this.clearExpectedCalls()},t}(),R=function(){function t(){}return t}(),Y=function(){function t(){}return t.prototype.handleIntercept=function(t,e,n){return e.addInvocation(t),w.Continue},t}(),H=function(){function n(){}return n.prototype.handleIntercept=function(n,o,i){var c=o.expectedCalls().slice(),s=function(t){return t.matches(n)},p=e.filter(c,function(t){return s(t)});if(p.length>1&&(s=function(t){return!t.isInvoked&&t.matches(n)}),i.call=e.find(c,function(t){return s(t)}),null!=i.call){if(n.isAnUnknownDynamicCallAtExecution&&(n.callType=i.call.setupCall.callType,n.callType==u.FUNCTION))return w.Stop;i.call.evaluatedSuccessfully()}else if(o.behavior==t.MockBehavior.Strict)throw new a(r.NoSetup,n,"'"+n+"'");return w.Continue},n}(),q=function(){function t(){}return t.prototype.handleIntercept=function(t,e,n){this._ctx=e;var r=n.call;return null!=r?(r.execute(t),w.Stop):w.Continue},t}(),G=function(){function t(){}return t.prototype.handleIntercept=function(t,e,n){return e.mock.callBase?(t.invokeBase(),w.Stop):w.Continue},t}(),X=function(){function t(){}return t.prototype.handleIntercept=function(t,e,n){return w.Continue},t}(),W=function(){function n(t){this._interceptorContext=new B(t)}return Object.defineProperty(n.prototype,"interceptorContext",{get:function(){return this._interceptorContext},enumerable:!0,configurable:!0}),n.prototype.intercept=function(t){var n=this,r=new R;t.invocationType=O.EXECUTE,e.some(this.interceptionStrategies(),function(e){return w.Stop===e.handleIntercept(t,n.interceptorContext,r)?!0:void 0})},n.prototype.removeInvocation=function(t){this._interceptorContext.removeInvocation(t)},n.prototype.addExpectedCall=function(t){this._interceptorContext.addExpectedCall(t)},n.prototype.verify=function(){var n=this._interceptorContext.expectedCalls(),r=[];if(this._interceptorContext.behavior==t.MockBehavior.Strict)for(var o=0,i=n;o<i.length;o++){var c=i[o];c.isVerifiable||c.setVerifiable(),r.push(c)}else r=e.filter(n,function(t){return t.isVerifiable});for(var u=0,a=r;u<a.length;u++){var s=a[u];this.verifyCallCount(s,s.expectedCallCount)}var p=e.filter(n,function(t){return t.isInSequence});this.verifyCallsOrder(p)},n.prototype.verifyCallCount=function(t,n){var r=this._interceptorContext.expectedCalls(),o=this._interceptorContext.actualInvocations(),i=e.filter(o,function(e){return t.matches(e)}).length;n.verify(i)||this.throwVerifyCallCountException(t.setupCall,n,r,o)},n.prototype.throwVerifyCallCountException=function(t,e,n,o){var i=e.failMessage(t),c=n.reduce(function(t,e){return t+" "+e+"\n"},""),u=o.reduce(function(t,e){return t+" "+e+"\n"},""),s=i+"\n Configured setups:\n"+c+"\n Performed invocations:\n"+u,p=new a(r.CallCountVerificationFailed,t,s);throw p},n.prototype.verifyCallsOrder=function(t){var e=this._interceptorContext.actualInvocations();this.checkCallOrderExpectations(t,e)},n.prototype.checkCallOrderExpectations=function(t,n){var r=function(r){for(var o=e.sum(r),i=0,c=0;c<r.length;c++)for(var u=t[c],a=r[c],s=1;a>=s;s++){var p=n[i++];if(!u.matches(p))return!1}return i===o},o=!1,i=function(e,n){if(!o)if(n===t.length)o=r(e);else for(var c=t[n].expectedCallCount.min;c<=t[n].expectedCallCount.max;c++)e[n]=c,i(e,n+1)};i([],0),o||this.throwVerifyCallOrderException()},n.prototype.throwVerifyCallOrderException=function(){var t=new a(r.CallOrderVerificationFailed,null);throw t},n.prototype.reset=function(){this._interceptorContext.reset()},n.prototype.interceptionStrategies=function(){var t=[new Y,new H,new q,new G,new X];return t},n}(),K=function(){function t(){}return Object.defineProperty(t.prototype,"interceptedCall",{get:function(){return this._interceptedCall},enumerable:!0,configurable:!0}),t.prototype.intercept=function(t){if(t.invocationType=O.SETUP,t.proxyType==C.DYNAMIC&&t.callType==u.UNKNOWN&&(t.callType=u.PROPERTY),this._interceptedCall)throw new a(r.MoreThanOneSetup,t,"'"+t+"'; setup should contain only one expression");this._interceptedCall=t},t.prototype.removeInvocation=function(t){this._interceptedCall&&this._interceptedCall===t&&(this._interceptedCall=void 0)},t}(),J=function(){function n(t,e,n,o){if(this.mock=t,this._setupExpression=e,this._callCount=0,this._id=this.generateId(),e(o),!n.interceptedCall)throw new a(r.InvalidSetup,this._setupExpression,"'"+this._setupExpression+"'");var i=n.interceptedCall,c=this.transformToMatchers(i.args);Object.defineProperty(c,"callee",{configurable:!0,enumerable:!0,writable:!1,value:i.args.callee}),i.args=c,this._setupCall=i}return n.ofStaticMock=function(t,e){var r=new K,o=U.createProxy(t.target,r),i=new n(t,e,r,o);return i},n.ofDynamicMock=function(t,e){var r=new K,o=U.createProxyES6(t.target,r),i=new n(t,e,r,o);return i},n.prototype.generateId=function(){return"MethodCall<"+e.uniqueId()+">"},n.prototype.transformToMatchers=function(t){var n=[];return e.each(t,function(t){if(e.isObject(t))if(f.isMatcher(t))n.push(t);else{var r=new m(function(n){return e.isEqual(n,t)});n.push(r)}else{var r=new b(t);n.push(r)}}),n},Object.defineProperty(n.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"setupExpression",{get:function(){return this._setupExpression},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"setupCall",{get:function(){return this._setupCall},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"isVerifiable",{get:function(){return this._isVerifiable},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"isInSequence",{get:function(){return this._expectedCallType===t.ExpectedCallType.InSequence},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"expectedCallCount",{get:function(){return this._expectedCallCount},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"isInvoked",{get:function(){return this._isInvoked},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"callCount",{get:function(){return this._callCount},enumerable:!0,configurable:!0}),n.prototype.setVerifiable=function(e,n){void 0===e&&(e=s.once()),void 0===n&&(n=t.ExpectedCallType.InAnyOrder),this._isVerifiable=!0,this._expectedCallCount=e,this._expectedCallType=n},n.prototype.evaluatedSuccessfully=function(){this._evaluatedSuccessfully=!0},n.prototype.matches=function(t){var n=!1;return this._setupCall.property&&t&&t.property&&this._setupCall.property.name===t.property.name&&this._setupCall.args.length>=t.args.length&&(n=!0,t.isAnUnknownDynamicCallAtExecution||e.each(this._setupCall.args,function(e,r){var o=e,i=t.args[r];n&&!o.___matches(i)&&(n=!1)})),n},n.prototype.execute=function(t){if(this._isInvoked=!0,null!=this._setupCallback&&this._setupCallback.apply(this,t.args),null!=this._thrownException)throw this._thrownException;this._callCount++},n.prototype.verifiable=function(t,e){this.setVerifiable(t,e)},n.prototype.toString=function(){var t=""+this.setupCall;return this.expectedCallCount&&(t=t+", "+this.expectedCallCount),t},n}(),z=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Q=function(t){function e(e,n,r,o){var i=t.call(this,e,n,r,o)||this;return i._overrideTarget=e.canOverrideTarget,i}return z(e,t),e.ofStaticMock=function(t,n){var r=new K,o=U.createProxy(t.target,r),i=new e(t,n,r,o);return i},e.ofDynamicMock=function(t,n){var r=new K,o=U.createProxyES6(t.target,r),i=new e(t,n,r,o);return i},e.prototype.execute=function(e){t.prototype.execute.call(this,e),this._callBase?e.invokeBase():this.hasReturnValue&&(e.returnValue=this._returnValueFunc.apply(this,e.args),e.property.desc={value:this.setupCall.property.desc&&this.setupCall.property.desc.value})},e.prototype.callback=function(t){return this._setupCallback=t,this},e.prototype["throws"]=function(t){return this._thrownException=t,this},e.prototype.returns=function(t){if(this._returnValueFunc=t,this.hasReturnValue=!0,this._overrideTarget){var e=this.mock.target,n=this.setupCall.property.name,r=this.setupCall.property.desc;r||this.setupCall.proxyType!=C.DYNAMIC?r&&(r.configurable=!0,r.enumerable=!0,r.value=this._returnValueFunc,Object.defineProperty(e,n,r)):(r={},r.configurable=!0,r.enumerable=!0,this.setupCall.callType==u.FUNCTION?r.value=this._returnValueFunc:r.get=this._returnValueFunc,Object.defineProperty(e,n,r))}return this},e.prototype.callBase=function(){return this._callBase=!0,this},e}(J),Z=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),$=function(t){function n(e,n,r){var o=t.call(this,e,n,r)||this;return o._interceptor=new W(o),o._proxy=U.createProxy(e,o._interceptor),o}return Z(n,t),n.ofInstance=function(t,e,r){t=n.cloneDeep(t);var o=new n(t,r,e);return o},n.ofGlobalInstance=function(t,e){var r=new n(t,!1,e);return r},n.ofType=function(t,e,r,o){var i=h.conthunktor(t,o),c=new n(i,r,e);return c},n.cloneDeep=function(t){var n=t;if(!e.isFunction(t)){var r=function(t){return S.isProxy(t)?t:void 0};n=e.cloneDeepWith(t,r)}return n},n.prototype.setup=function(t){var e=Q.ofStaticMock(this,t);return this._interceptor.addExpectedCall(e),e},n.prototype.verify=function(t,e){var n=J.ofStaticMock(this,t);this._interceptor.addExpectedCall(n);try{this._interceptor.verifyCallCount(n,e)}catch(r){throw r}},n}(L),tt=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),et=function(t){function e(e,n,r,o){var i=t.call(this,e,r,o)||this;return n&&(i._name=n),i._interceptor=new W(i),i._proxy=U.createProxyES6(e,i._interceptor),i}return tt(e,t),e.ofType=function(t,n,r){var o=new e(function(){},t,r,n);return o},e.prototype.setup=function(t){var e=Q.ofDynamicMock(this,t);return this._interceptor.addExpectedCall(e),e},e.prototype.verify=function(t,e){var n=J.ofDynamicMock(this,t);this._interceptor.addExpectedCall(n);try{this._interceptor.verifyCallCount(n,e)}catch(r){throw r}},e}(L),nt=function(){function e(){}return e.ofInstance=function(e,n,r){void 0===n&&(n=t.MockBehavior.Loose),void 0===r&&(r=!0);var o=$.ofInstance(e,n,r);return o},e.ofType=function(n,r,o){void 0===r&&(r=t.MockBehavior.Loose),void 0===o&&(o=!0);for(var i=[],c=3;c<arguments.length;c++)i[c-3]=arguments[c];var u;return u=n?e.ofType2(n,i,r,o):et.ofType(void 0,r,o)},e.ofType2=function(e,n,r,o){void 0===r&&(r=t.MockBehavior.Loose),void 0===o&&(o=!0);var i=$.ofType(e,r,o,n);return i},e}(),rt=function(){function t(){}return t.isValue=function(t){var e=new b(t);return e},t.isObjectWith=function(t){var e=new g(t);return e},t.isAnyObject=function(t){var e=new y(t);return e},t.isAny=function(){var t=new _;return t},t.isAnyString=function(){var t=new v;return t},t.isAnyNumber=function(){var t=new d;return t},t.is=function(t){var e=new m(t);return e},t}();!function(t){t[t.Class=0]="Class",t[t.Function=1]="Function",t[t.Value=2]="Value"}(F||(F={}));var ot=function(){function t(t,e,n,r){this.mock=t,this._name=e,this._type=n,this.container=r,this._name||(this._name=t.name)}return Object.defineProperty(t.prototype,"object",{get:function(){return this.mock.object},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"target",{get:function(){return this.mock.target},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return this._name||this.mock.name},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"behavior",{get:function(){return this.mock.behavior},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"callBase",{get:function(){return this.mock.callBase},set:function(t){this.mock.callBase=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"type",{get:function(){return this._type},enumerable:!0,configurable:!0}),t.prototype.setup=function(t){return this.mock.setup(t)},t.prototype.verify=function(t,e){this.mock.verify(t,e)},t.prototype.verifyAll=function(){this.mock.verifyAll()},t.prototype.reset=function(){this.mock.reset()},t}(),it=function(){function n(){}return n.ofInstance=function(n,r,o,i){void 0===o&&(o=window),void 0===i&&(i=t.MockBehavior.Loose);var c=$.ofGlobalInstance(n,i),u=e.isFunction(n)?F.Function:F.Value;return new ot(c,r,u,o)},n.ofType=function(e,n,r){void 0===n&&(n=window),void 0===r&&(r=t.MockBehavior.Loose);
var o=new e,i=$.ofInstance(o,r,!1);return new ot(i,void 0,F.Class,n)},n.ofType2=function(e,n,r){void 0===n&&(n=window),void 0===r&&(r=t.MockBehavior.Loose);var o=et.ofType(e,r,!1);return new ot(o,void 0,F.Class,n)},n}(),ct=function(){function t(t){this._args=t}return t.prototype["with"]=function(t){var n={};try{e.each(this._args,function(t){var o=p.getOwnAndPrototypeEnumerablesAndNonenumerables(t.container),i=e.find(o,function(e){return e.name===t.name});if(i){n[t.name]=i.desc;var c={};switch(t.type){case F.Class:c.value=function(){return t.mock.object};break;case F.Function:c.value=t.mock.object;break;case F.Value:c.get=function(){return t.mock.object};break;default:throw new a(r.UnknownGlobalType,t,"unknown global type: "+t.type)}try{Object.defineProperty(t.container,t.name,c)}catch(u){console.log("1: "+u)}}}),t.apply(this,this._args)}catch(o){console.log("2: "+o)}finally{e.each(this._args,function(t){var e=n[t.name];if(e){switch(t.type){case F.Class:break;case F.Function:break;case F.Value:e.configurable=!0}try{Object.defineProperty(t.container,t.name,e)}catch(r){console.log("3: "+r)}}})}},t}(),ut=function(){function t(){}return t.using=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=new ct(t);return n},t}();t.Mock=nt,t.It=rt,t.Times=s,t.GlobalMock=it,t.GlobalScope=ut,t.MockException=a,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("lodash"),require("circular-json")):"function"==typeof define&&define.amd?define(["exports","lodash","circular-json"],e):e(t.TypeMoq={},t._,t.CircularJSON)}(this,function(t,e,n){!function(t){t[t.Loose=0]="Loose",t[t.Strict=1]="Strict"}(t.MockBehavior||(t.MockBehavior={})),function(t){t[t.InAnyOrder=0]="InAnyOrder",t[t.InSequence=1]="InSequence"}(t.ExpectedCallType||(t.ExpectedCallType={}));var r,o=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),i=function(t){function e(n,r){var o=t.call(this,r)||this;return o.name=n,Object.setPrototypeOf(o,e.prototype),o}return o(e,t),e.prototype.toString=function(){var t=this.message?this.name+" - "+this.message:this.name;return t},e}(Error),c=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(t){t[t.NoSetup="no setup expression found for"]="NoSetup",t[t.MoreThanOneSetup="more than one setup expression found for"]="MoreThanOneSetup",t[t.InvalidArg="invalid argument"]="InvalidArg",t[t.InvalidSetup="invalid setup expression"]="InvalidSetup",t[t.InvalidMatcher="invalid matching expression"]="InvalidMatcher",t[t.UnknownGlobalType="unknown global type"]="UnknownGlobalType",t[t.CallCountVerificationFailed="invocation count verification failed"]="CallCountVerificationFailed",t[t.CallOrderVerificationFailed="invocation order verification failed"]="CallOrderVerificationFailed",t[t.InvalidDynamicProxyRuntime="invalid dynamic proxy runtime"]="InvalidDynamicProxyRuntime"}(r||(r={}));var u,a=function(t){function e(n,r,o){void 0===o&&(o=void 0);var i=t.call(this,"MockException",o)||this;return i.reason=n,i.ctx=r,i.message=o,Object.setPrototypeOf(i,e.prototype),i}return c(e,t),e.prototype.toString=function(){var t=this.name+" - "+this.reason;return this.message&&(t=t+" ("+this.message+")"),t},e}(i),s=function(){function t(t,n,r,o){this._condition=t,this.min=n,this.max=r,this._failMessage=e.template(o)}return t.prototype.failMessage=function(t){return this._failMessage({i:t,min:this.min,max:this.max,c:this._lastCallCount})},t.prototype.verify=function(t){return this._lastCallCount=t,this._condition(t)},t.checkArg=function(t,e){if(0>t)throw new a(r.InvalidArg,void 0,e+" argument cannot be a negative number")},t.exactly=function(e){return t.checkArg(e,"'Times.exactly'"),new t(function(t){return t===e},e,e,t.NO_MATCHING_CALLS_EXACTLY_N_TIMES)},t.atLeast=function(e){return t.checkArg(e,"'Times.atLeast'"),new t(function(t){return t>=e},e,255,t.NO_MATCHING_CALLS_AT_LEAST_N_TIMES)},t.atMost=function(e){return t.checkArg(e,"'Times.atMost'"),new t(function(t){return t>=0&&e>=t},0,e,t.NO_MATCHING_CALLS_AT_MOST_N_TIMES)},t.never=function(){return t.exactly(0)},t.once=function(){return t.exactly(1)},t.atLeastOnce=function(){return t.atLeast(1)},t.atMostOnce=function(){return t.atMost(1)},t.prototype.toString=function(){var t="";return t=this.min===this.max?0===this.min?"never":1===this.min?"once":this.min+" times":0===this.min&&255!==this.max?"at most "+this.max+" times":"at least "+this.min+" times"},t.NO_MATCHING_CALLS_EXACTLY_N_TIMES="expected invocation of <%= i %> exactly <%= min %> times, invoked <%= c %> times",t.NO_MATCHING_CALLS_AT_LEAST_N_TIMES="expected invocation of <%= i %> at least <%= min %> times, invoked <%= c %> times",t.NO_MATCHING_CALLS_AT_MOST_N_TIMES="expected invocation of <%= i %> at most <%= max %> times, invoked <%= c %> times",t}(),p=function(){function t(){}return t.getOwnEnumerables=function(t){return this._getPropertyNames(t,!0,!1,this._enumerable)},t.getOwnNonenumerables=function(t){return this._getPropertyNames(t,!0,!1,this._notEnumerable)},t.getOwnEnumerablesAndNonenumerables=function(t){return this._getPropertyNames(t,!0,!1,this._enumerableAndNotEnumerable)},t.getPrototypeEnumerables=function(t){return this._getPropertyNames(t,!1,!0,this._enumerable)},t.getPrototypeNonenumerables=function(t){return this._getPropertyNames(t,!1,!0,this._notEnumerable)},t.getPrototypeEnumerablesAndNonenumerables=function(t){return this._getPropertyNames(t,!1,!0,this._enumerableAndNotEnumerable)},t.getOwnAndPrototypeEnumerables=function(t){return this._getPropertyNames(t,!0,!0,this._enumerable)},t.getOwnAndPrototypeNonenumerables=function(t){return this._getPropertyNames(t,!0,!0,this._notEnumerable)},t.getOwnAndPrototypeEnumerablesAndNonenumerables=function(t){return this._getPropertyNames(t,!0,!0,this._enumerableAndNotEnumerable)},t._enumerable=function(t,e){return t.propertyIsEnumerable(e)},t._notEnumerable=function(t,e){return!t.propertyIsEnumerable(e)},t._enumerableAndNotEnumerable=function(t,e){return!0},t._getPropertyNames=function(t,n,r,o){var i=[];do{if(n)for(var c=Object.getOwnPropertyNames(t),u=function(n){var r=e.find(i,function(t){return t.name===n});if(!r&&o(t,n)){var c=Object.getOwnPropertyDescriptor(t,n);i.push({name:n,desc:c})}},a=0,s=c;a<s.length;a++){var p=s[a];u(p)}if(!r)break;n=!0}while(t=Object.getPrototypeOf(t));return i},t}(),l=function(){function t(){}return t.IMATCH_ID_VALUE="438A51D3-6864-49D7-A655-CA1153B86965",t.IMATCH_ID_NAME="___id",t.IMATCH_MATCHES_NAME="___matches",t.IPROXY_ID_VALUE="BCDF5CE5-F0DF-40B7-8BA0-69DF395033C8",t.IPROXY_ID_NAME="___id",t}(),f=function(){function t(){}return t.isMatcher=function(t){return!e.isNil(t)&&!e.isUndefined(t[l.IMATCH_MATCHES_NAME])&&!e.isUndefined(t[l.IMATCH_ID_NAME])&&t[l.IMATCH_ID_NAME]===l.IMATCH_ID_VALUE},t}(),h=function(){function t(){}return t.functionName=function(t){var e;if(t.name)e=t.name;else{var n=t.toString();n=n.substr("function ".length),e=n.substr(0,n.indexOf("("))}return e},t.objectName=function(e){var n=t.functionName(e.constructor);return n},t.argsName=function(t){var r=Array.prototype.slice.call(t),o=r.map(function(t){var r="";if(f.isMatcher(t))r=t.toString();else{var o=function(t,n){return void 0===n?"undefined":e.isFunction(n)?"Function":n};r=n.stringify(t,o)}return r}),i=e.join(o);return i},t.conthunktor=function(t,e){var n=new(t.bind.apply(t,[void 0].concat(e)));return n},t.clone=function(t,e){for(var n=p.getOwnAndPrototypeEnumerablesAndNonenumerables(e),r=0,o=n;r<o.length;r++){var i=o[r];Object.defineProperty(t,i.name,i.desc)}},t}(),y=function(){function t(t){this._ctor=t,this.___id=l.IMATCH_ID_VALUE}return t.prototype.___matches=function(t){var e=!1;return t&&t.constructor.prototype==this._ctor.prototype&&(e=!0),e},t.prototype.toString=function(){var t="It.isAnyObject("+h.functionName(this._ctor)+")";return t},t}(),_=function(){function t(){this.___id=l.IMATCH_ID_VALUE}return t.prototype.___matches=function(t){var e=!0;return e},t.prototype.toString=function(){return"It.isAny()"},t}(),v=function(){function t(){this.___id=l.IMATCH_ID_VALUE}return t.prototype.___matches=function(t){var n=!1;return e.isString(t)&&(n=!0),n},t.prototype.toString=function(){return"It.isAnyString()"},t}(),d=function(){function t(){this.___id=l.IMATCH_ID_VALUE}return t.prototype.___matches=function(t){var n=!1;return e.isNumber(t)&&(n=!0),n},t.prototype.toString=function(){return"It.isAnyNumber()"},t}(),m=function(){function t(t){this._pred=t,this.___id=l.IMATCH_ID_VALUE}return t.prototype.___matches=function(t){var e=!1;return t&&this._pred(t)&&(e=!0),e},t.prototype.toString=function(){var t="It.is("+this._pred+")";return t},t}(),b=function(){function t(t){this.___id=l.IMATCH_ID_VALUE,this._value=e.cloneDeep(t)}return t.prototype.___matches=function(t){var n=!1;return e.isEqual(this._value,t)&&(n=!0),n},t.prototype.toString=function(){var t=h.argsName([this._value]),e="It.isValue("+t+")";return e},t}(),g=function(){function t(t){this.___id=l.IMATCH_ID_VALUE,this._value=e.cloneDeep(t)}return t.prototype.___matches=function(t){var n=!1,r=e.pick(t,e.keys(this._value));return e.isEqual(this._value,r)&&(n=!0),n},t.prototype.toString=function(){var t=h.argsName([this._value]),e="It.isObjectWith("+t+")";return e},t}();!function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.PROPERTY=1]="PROPERTY",t[t.FUNCTION=2]="FUNCTION"}(u||(u={}));var C;!function(t){t[t.STATIC=0]="STATIC",t[t.DYNAMIC=1]="DYNAMIC"}(C||(C={}));var O,I=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(t){t[t.NONE=0]="NONE",t[t.SETUP=1]="SETUP",t[t.EXECUTE=2]="EXECUTE"}(O||(O={}));var w,P=function(){function t(t,e){this.proxyType=t,this.callType=e,this.invocationType=O.NONE}return Object.defineProperty(t.prototype,"isAnUnknownDynamicCallAtExecution",{get:function(){return this.proxyType==C.DYNAMIC&&this.callType==u.UNKNOWN&&this.invocationType==O.EXECUTE},enumerable:!0,configurable:!0}),t}(),x=function(t){function n(n,r,o,i,c){void 0===i&&(i=C.STATIC),void 0===c&&(c=u.FUNCTION);var a=t.call(this,i,c)||this;return a._that=n,a._property=r,o&&(a._args=e.cloneDeep(o),a._args.length=o.length,a._args.callee=o.callee),a}return I(n,t),Object.defineProperty(n.prototype,"args",{get:function(){return this._args||{length:0,callee:null}},set:function(t){this._args=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"property",{get:function(){return this._property},enumerable:!0,configurable:!0}),n.prototype.invokeBase=function(){var t={};this._that?h.clone(t,this._that):t=this._property.obj,this.returnValue=this._property.toFunc.apply(t,this._args)},n.prototype.toString=function(){var t=this.property+"("+h.argsName(this.args)+")";return t},n}(P),A=function(t){function n(n,r,o,i){void 0===o&&(o=C.STATIC),void 0===i&&(i=u.PROPERTY);var c=t.call(this,o,i)||this;return c._property=n,c.value=r,c.returnValue=e.cloneDeep(r),c}return I(n,t),Object.defineProperty(n.prototype,"args",{get:function(){var t=[];return Object.defineProperty(t,"callee",{configurable:!0,enumerable:!0,writable:!1,value:null}),t},set:function(t){},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"property",{get:function(){return this._property},enumerable:!0,configurable:!0}),n.prototype.invokeBase=function(){this.returnValue=this._property.obj[this._property.name]},n.prototype.toString=function(){var t=""+this.property;return t},n}(P),N=function(t){function n(n,r){var o=t.call(this,n,r,C.DYNAMIC,u.UNKNOWN)||this;return o.returnValue=e.cloneDeep(r),o}return I(n,t),n}(A),T=function(t){function n(n,r,o,i){void 0===o&&(o=C.STATIC),void 0===i&&(i=u.PROPERTY);var c=t.call(this,o,i)||this;return c._property=n,c._args=e.cloneDeep(r),c._args.length=r.length,c._args.callee=r.callee,c}return I(n,t),Object.defineProperty(n.prototype,"args",{get:function(){return this._args},set:function(t){this._args=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"property",{get:function(){return this._property},enumerable:!0,configurable:!0}),n.prototype.invokeBase=function(){this._property.obj[this._property.name]=this._args[0],this.returnValue=this._property.obj[this._property.name]},n.prototype.toString=function(){var t=this.property+" = "+h.argsName(this.args[0]);return t},n}(P),E=function(t){function e(e,n,r,o){void 0===r&&(r=C.STATIC),void 0===o&&(o=u.FUNCTION);var i=t.call(this,r,o)||this;return i._property=e,i._getter=n,i}return I(e,t),Object.defineProperty(e.prototype,"args",{get:function(){var t=[];return Object.defineProperty(t,"callee",{configurable:!0,enumerable:!0,writable:!1,value:null}),t},set:function(t){},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"property",{get:function(){return this._property},enumerable:!0,configurable:!0}),e.prototype.invokeBase=function(){this.returnValue=this._property.obj[this._property.name]},e.prototype.toString=function(){var t=""+this.property;return t},e}(P),S=function(t){function n(n,r,o,i,c){void 0===i&&(i=C.STATIC),void 0===c&&(c=u.FUNCTION);var a=t.call(this,i,c)||this;return a._property=n,a._setter=r,a._args=e.cloneDeep(o),a._args.length=o.length,a._args.callee=o.callee,a}return I(n,t),Object.defineProperty(n.prototype,"args",{get:function(){return this._args},set:function(t){this._args=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"property",{get:function(){return this._property},enumerable:!0,configurable:!0}),n.prototype.invokeBase=function(){this._property.obj[this._property.name]=this._args[0],this.returnValue=this._property.obj[this._property.name]},n.prototype.toString=function(){var t=this.property+"("+h.argsName(this.args[0])+")";return t},n}(P),j=function(){function t(t,n,r){this.obj=t,this.name=n,r&&(this.desc=e.cloneDeep(r))}return Object.defineProperty(t.prototype,"toFunc",{get:function(){var t=e.isFunction(this.obj)?this.obj:this.obj[this.name];return t},enumerable:!0,configurable:!0}),t.prototype.toString=function(){var t=h.objectName(this.obj),n=e.isFunction(this.obj)?""+t:t+"."+this.name;return n},t}(),k=function(){function t(t,n,r){this.obj=t,this.name=n,r&&(this.desc=e.cloneDeep(r))}return t.prototype.toString=function(){var t=h.objectName(this.obj),e=t+"."+this.name;return e},t}(),M=function(){function t(t,n){var r=this;this.___id=l.IPROXY_ID_VALUE,this.check(t);var o=this,i=p.getOwnAndPrototypeEnumerablesAndNonenumerables(t);e.each(i,function(i){if(e.isFunction(i.desc.value)){var c={configurable:i.desc.configurable,enumerable:i.desc.enumerable,writable:i.desc.writable};r.defineMethodProxy(o,n,t,i.name,c)}else{var c={configurable:i.desc.configurable,enumerable:i.desc.enumerable};void 0!==i.desc.value?r.defineValuePropertyProxy(o,n,t,i.name,i.desc.value,c):r.defineGetSetPropertyProxy(o,n,t,i.name,i.desc.get,i.desc.set,c)}})}return t.of=function(n,r){t.check(n);var o;if(e.isFunction(n)){var i=h.functionName(n);o=t.methodProxyValue(void 0,r,n,i,null)}else o=new t(n,r);return o},t.isProxy=function(t){return e.isNil(t)||e.isUndefined(t[l.IPROXY_ID_NAME])||t[l.IPROXY_ID_NAME]!==l.IPROXY_ID_VALUE?!1:!0},t.check=function(n){t.checkNotNullOrUndefined(n);var o=!1;if((e.isFunction(n)||e.isObject(n)&&!t.isPrimitiveObject(n))&&(o=!0),!o)throw new a(r.InvalidArg,n,"'"+n+"'; proxy argument should be a function or a non primitive object")},t.prototype.check=function(n){t.checkNotNullOrUndefined(n);var o=!1;if(e.isFunction(n)||!e.isObject(n)||t.isPrimitiveObject(n)||(o=!0),!o)throw new a(r.InvalidArg,n,"'"+n+"'; proxy argument should be a non primitive object")},t.checkNotNullOrUndefined=function(t){if(e.isNil(t))throw new a(r.InvalidArg,t,"'"+t+"'; proxy argument is required")},t.isPrimitiveObject=function(t){var n=!1;return(e.isFunction(t)||e.isArray(t)||e.isDate(t)||e.isNull(t))&&(n=!0),n},t.prototype.defineMethodProxy=function(e,n,r,o,i){void 0===i&&(i={configurable:!0,enumerable:!0,writable:!1}),i.value=t.methodProxyValue(e,n,r,o,i),this.defineProperty(e,o,i)},t.methodProxyValue=function(t,e,n,r,o){function i(){var i=new j(n,r,o),c=new x(t,i,arguments);return e.intercept(c),c.returnValue}return i},t.prototype.defineValuePropertyProxy=function(t,e,n,r,o,i){function c(){var t=new k(n,r),i=new A(t,o);return e.intercept(i),i.returnValue}function u(t){var o=new k(n,r),i=new T(o,arguments);e.intercept(i)}void 0===i&&(i={configurable:!0,enumerable:!0}),i.get=c,i.set=u,this.defineProperty(t,r,i)},t.prototype.defineGetSetPropertyProxy=function(t,e,n,r,o,i,c){function u(){var t=new k(n,r),i=new E(t,o);return e.intercept(i),i.returnValue}function a(t){var o=new k(n,r),c=new S(o,i,arguments);e.intercept(c)}void 0===c&&(c={configurable:!0,enumerable:!0}),c.get=u,c.set=a,this.defineProperty(t,r,c)},t.prototype.defineProperty=function(t,e,n){try{Object.defineProperty(t,e,n)}catch(r){console.log(r.message)}},t}(),V=function(){function t(t,e){this.___id=l.IPROXY_ID_VALUE;var n=new Proxy(t,e);return n[Symbol.toStringTag]=Function.prototype.toString.bind(t),n}return t.of=function(e,n){t.check();var r=new t(e,n);return r},t.check=function(){if("undefined"==typeof Proxy)throw new a(r.InvalidDynamicProxyRuntime,null,"ES6 Proxy object not detected; the dynamic mocking feature requires ES6 Proxy object support")},t}(),D=function(){function t(t){this._interceptor=t}return t.prototype.apply=function(t,e,n){var r=h.functionName(t),o=new j(t,r),i=new x(t,o,n,C.DYNAMIC);return this._interceptor.intercept(i),i.returnValue},t.prototype.get=function(t,e,n){var r=this;if(e!==Symbol.toStringTag&&e!==Symbol.toPrimitive&&"toJSON"!==e){var o=t[e],i=new k(t,e),c=new N(i,o);return this._interceptor.intercept(c),c.callType==u.PROPERTY&&c.property.desc?c.returnValue:function(){for(var n=[],o=0;o<arguments.length;o++)n[o]=arguments[o];r._interceptor.removeInvocation(c);var i=new j(t,e),u=new x(t,i,n,C.DYNAMIC);return r._interceptor.intercept(u),u.returnValue}}return Reflect.get(t,e,n)},t.prototype.set=function(t,e,n,r){if(e!==Symbol.toStringTag){var o=new k(t,e),i=new T(o,[n],C.DYNAMIC);this._interceptor.intercept(i)}return Reflect.set(t,e,n,r)},t.prototype.defineProperty=function(t,e,n){return n.configurable=!0,Reflect.defineProperty(t,e,n)},t}(),U=function(){function t(){}return t.createProxy=function(t,e){var n=M.of(t,e);return n},t.createProxyES6=function(t,e){var n=new D(e),r=V.of(t,n);return r},t}(),F=function(){function n(e,n,r){void 0===r&&(r=t.MockBehavior.Loose),this.target=e,this.canOverrideTarget=n,this.behavior=r,this._id=this.generateId(),this._name=this.getNameOf(this.target)}return Object.defineProperty(n.prototype,"object",{get:function(){return this._proxy},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"callBase",{get:function(){return this._callBase},set:function(t){this._callBase=t},enumerable:!0,configurable:!0}),n.prototype.generateId=function(){return"Mock<"+e.uniqueId()+">"},n.prototype.getNameOf=function(t){var n;if(e.isFunction(t))n=h.functionName(t);else if(e.isObject(t)){var r=t.constructor;n=h.functionName(r)}return n&&(n=n.trim()),n},n.prototype.verifyAll=function(){try{this._interceptor.verify()}catch(t){throw t}},n.prototype.reset=function(){this._interceptor.reset()},n}();!function(t){t[t.Continue=0]="Continue",t[t.Stop=1]="Stop"}(w||(w={}));var L,B=function(){function t(t){this.mock=t,this._actualInvocations=[],this._expectedCalls=[]}return Object.defineProperty(t.prototype,"behavior",{get:function(){return this.mock.behavior},enumerable:!0,configurable:!0}),t.prototype.addInvocation=function(t){this._actualInvocations.push(t)},t.prototype.removeInvocation=function(t){e.remove(this._actualInvocations,function(e){return e===t})},t.prototype.actualInvocations=function(){return this._actualInvocations},t.prototype.clearInvocations=function(){this._actualInvocations.splice(0,this._actualInvocations.length)},t.prototype.addExpectedCall=function(t){this._expectedCalls.push(t)},t.prototype.removeExpectedCall=function(t){e.filter(this._expectedCalls,function(e){return e.id!==t.id})},t.prototype.expectedCalls=function(){return this._expectedCalls},t.prototype.clearExpectedCalls=function(){this._expectedCalls.splice(0,this._expectedCalls.length)},t.prototype.reset=function(){this.clearInvocations(),this.clearExpectedCalls()},t}(),R=function(){function t(){}return t}(),Y=function(){function t(){}return t.prototype.handleIntercept=function(t,e,n){return e.addInvocation(t),w.Continue},t}(),H=function(){function n(){}return n.prototype.handleIntercept=function(n,o,i){var c=o.expectedCalls().slice(),s=function(t){return t.matches(n)},p=e.filter(c,function(t){return s(t)});if(p.length>1&&(s=function(t){return!t.isInvoked&&t.matches(n)}),i.call=e.find(c,function(t){return s(t)}),null!=i.call){if(n.isAnUnknownDynamicCallAtExecution&&(n.callType=i.call.setupCall.callType,n.callType==u.FUNCTION))return w.Stop;i.call.evaluatedSuccessfully()}else if(o.behavior==t.MockBehavior.Strict)throw new a(r.NoSetup,n,"'"+n+"'");return w.Continue},n}(),q=function(){function t(){}return t.prototype.handleIntercept=function(t,e,n){this._ctx=e;var r=n.call;return null!=r?(r.execute(t),w.Stop):w.Continue},t}(),G=function(){function t(){}return t.prototype.handleIntercept=function(t,e,n){return e.mock.callBase?(t.invokeBase(),w.Stop):w.Continue},t}(),X=function(){function t(){}return t.prototype.handleIntercept=function(t,e,n){return w.Continue},t}(),W=function(){function n(t){this._interceptorContext=new B(t)}return Object.defineProperty(n.prototype,"interceptorContext",{get:function(){return this._interceptorContext},enumerable:!0,configurable:!0}),n.prototype.intercept=function(t){var n=this,r=new R;t.invocationType=O.EXECUTE,e.some(this.interceptionStrategies(),function(e){return w.Stop===e.handleIntercept(t,n.interceptorContext,r)?!0:void 0})},n.prototype.removeInvocation=function(t){this._interceptorContext.removeInvocation(t)},n.prototype.addExpectedCall=function(t){this._interceptorContext.addExpectedCall(t)},n.prototype.verify=function(){var n=this._interceptorContext.expectedCalls(),r=[];if(this._interceptorContext.behavior==t.MockBehavior.Strict)for(var o=0,i=n;o<i.length;o++){var c=i[o];c.isVerifiable||c.setVerifiable(),r.push(c)}else r=e.filter(n,function(t){return t.isVerifiable});for(var u=0,a=r;u<a.length;u++){var s=a[u];this.verifyCallCount(s,s.expectedCallCount)}var p=e.filter(n,function(t){return t.isInSequence});this.verifyCallsOrder(p)},n.prototype.verifyCallCount=function(t,n){var r=this._interceptorContext.expectedCalls(),o=this._interceptorContext.actualInvocations(),i=e.filter(o,function(e){return t.matches(e)}).length;n.verify(i)||this.throwVerifyCallCountException(t.setupCall,n,r,o)},n.prototype.throwVerifyCallCountException=function(t,e,n,o){var i=e.failMessage(t),c=n.reduce(function(t,e){return t+" "+e+"\n"},""),u=o.reduce(function(t,e){return t+" "+e+"\n"},""),s=i+"\n Configured setups:\n"+c+"\n Performed invocations:\n"+u,p=new a(r.CallCountVerificationFailed,t,s);throw p},n.prototype.verifyCallsOrder=function(t){var e=this._interceptorContext.actualInvocations();this.checkCallOrderExpectations(t,e)},n.prototype.checkCallOrderExpectations=function(t,n){var r=function(r){for(var o=e.sum(r),i=0,c=0;c<r.length;c++)for(var u=t[c],a=r[c],s=1;a>=s;s++){var p=n[i++];if(!u.matches(p))return!1}return i===o},o=!1,i=function(e,n){if(!o)if(n===t.length)o=r(e);else for(var c=t[n].expectedCallCount.min;c<=t[n].expectedCallCount.max;c++)e[n]=c,i(e,n+1)};i([],0),o||this.throwVerifyCallOrderException()},n.prototype.throwVerifyCallOrderException=function(){var t=new a(r.CallOrderVerificationFailed,null);throw t},n.prototype.reset=function(){this._interceptorContext.reset()},n.prototype.interceptionStrategies=function(){var t=[new Y,new H,new q,new G,new X];return t},n}(),K=function(){function t(){}return Object.defineProperty(t.prototype,"interceptedCall",{get:function(){return this._interceptedCall},enumerable:!0,configurable:!0}),t.prototype.intercept=function(t){if(t.invocationType=O.SETUP,t.proxyType==C.DYNAMIC&&t.callType==u.UNKNOWN&&(t.callType=u.PROPERTY),this._interceptedCall)throw new a(r.MoreThanOneSetup,t,"'"+t+"'; setup should contain only one expression");this._interceptedCall=t},t.prototype.removeInvocation=function(t){this._interceptedCall&&this._interceptedCall===t&&(this._interceptedCall=void 0)},t}(),J=function(){function n(t,e,n,o){if(this.mock=t,this._setupExpression=e,this._callCount=0,this._id=this.generateId(),e(o),!n.interceptedCall)throw new a(r.InvalidSetup,this._setupExpression,"'"+this._setupExpression+"'");var i=n.interceptedCall,c=this.transformToMatchers(i.args);Object.defineProperty(c,"callee",{configurable:!0,enumerable:!0,writable:!1,value:i.args.callee}),i.args=c,this._setupCall=i}return n.ofStaticMock=function(t,e){var r=new K,o=U.createProxy(t.target,r),i=new n(t,e,r,o);return i},n.ofDynamicMock=function(t,e){var r=new K,o=U.createProxyES6(t.target,r),i=new n(t,e,r,o);return i},n.prototype.generateId=function(){return"MethodCall<"+e.uniqueId()+">"},n.prototype.transformToMatchers=function(t){var n=[];return e.each(t,function(t){if(e.isObject(t))if(f.isMatcher(t))n.push(t);else{var r=new m(function(n){return e.isEqual(n,t)});n.push(r)}else{var r=new b(t);n.push(r)}}),n},Object.defineProperty(n.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"setupExpression",{get:function(){return this._setupExpression},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"setupCall",{get:function(){return this._setupCall},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"isVerifiable",{get:function(){return this._isVerifiable},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"isInSequence",{get:function(){return this._expectedCallType===t.ExpectedCallType.InSequence},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"expectedCallCount",{get:function(){return this._expectedCallCount},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"isInvoked",{get:function(){return this._isInvoked},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"callCount",{get:function(){return this._callCount},enumerable:!0,configurable:!0}),n.prototype.setVerifiable=function(e,n){void 0===e&&(e=s.once()),void 0===n&&(n=t.ExpectedCallType.InAnyOrder),this._isVerifiable=!0,this._expectedCallCount=e,this._expectedCallType=n},n.prototype.evaluatedSuccessfully=function(){this._evaluatedSuccessfully=!0},n.prototype.matches=function(t){var n=!1;return this._setupCall.property&&t&&t.property&&this._setupCall.property.name===t.property.name&&this._setupCall.args.length>=t.args.length&&(n=!0,t.isAnUnknownDynamicCallAtExecution||e.each(this._setupCall.args,function(e,r){var o=e,i=t.args[r];n&&!o.___matches(i)&&(n=!1)})),n},n.prototype.execute=function(t){if(this._isInvoked=!0,null!=this._setupCallback&&this._setupCallback.apply(this,t.args),null!=this._thrownException)throw this._thrownException;this._callCount++},n.prototype.verifiable=function(t,e){this.setVerifiable(t,e)},n.prototype.toString=function(){var t=""+this.setupCall;return this.expectedCallCount&&(t=t+", "+this.expectedCallCount),t},n}(),z=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Q=function(t){function e(e,n,r,o){var i=t.call(this,e,n,r,o)||this;return i._overrideTarget=e.canOverrideTarget,i}return z(e,t),e.ofStaticMock=function(t,n){var r=new K,o=U.createProxy(t.target,r),i=new e(t,n,r,o);return i},e.ofDynamicMock=function(t,n){var r=new K,o=U.createProxyES6(t.target,r),i=new e(t,n,r,o);return i},e.prototype.execute=function(e){t.prototype.execute.call(this,e),this._callBase?e.invokeBase():this.hasReturnValue&&(e.returnValue=this._returnValueFunc.apply(this,e.args),e.property.desc={value:this.setupCall.property.desc&&this.setupCall.property.desc.value})},e.prototype.callback=function(t){return this._setupCallback=t,this},e.prototype["throws"]=function(t){return this._thrownException=t,this},e.prototype.returns=function(t){if(this._returnValueFunc=t,this.hasReturnValue=!0,this._overrideTarget){var e=this.mock.target,n=this.setupCall.property.name,r=this.setupCall.property.desc;r||this.setupCall.proxyType!=C.DYNAMIC?r&&(r.configurable=!0,r.enumerable=!0,r.value=this._returnValueFunc,Object.defineProperty(e,n,r)):(r={},r.configurable=!0,r.enumerable=!0,this.setupCall.callType==u.FUNCTION?r.value=this._returnValueFunc:r.get=this._returnValueFunc,Object.defineProperty(e,n,r))}return this},e.prototype.callBase=function(){return this._callBase=!0,this},e}(J),Z=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),$=function(t){function n(e,n,r){var o=t.call(this,e,n,r)||this;return o._interceptor=new W(o),o._proxy=U.createProxy(e,o._interceptor),o}return Z(n,t),n.ofInstance=function(t,e,r){t=n.cloneDeep(t);var o=new n(t,r,e);return o},n.ofGlobalInstance=function(t,e){var r=new n(t,!1,e);return r},n.ofType=function(t,e,r,o){var i=h.conthunktor(t,o),c=new n(i,r,e);return c},n.cloneDeep=function(t){var n=t;if(!e.isFunction(t)){var r=function(t){return M.isProxy(t)?t:void 0};n=e.cloneDeepWith(t,r)}return n},n.prototype.setup=function(t){var e=Q.ofStaticMock(this,t);return this._interceptor.addExpectedCall(e),e},n.prototype.verify=function(t,e){var n=J.ofStaticMock(this,t);this._interceptor.addExpectedCall(n);try{this._interceptor.verifyCallCount(n,e)}catch(r){throw r}},n}(F),tt=function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),et=function(t){function e(e,n,r,o){var i=t.call(this,e,r,o)||this;return n&&(i._name=n),i._interceptor=new W(i),i._proxy=U.createProxyES6(e,i._interceptor),i}return tt(e,t),e.ofType=function(t,n,r){var o=new e(function(){},t,r,n);return o},e.prototype.setup=function(t){var e=Q.ofDynamicMock(this,t);return this._interceptor.addExpectedCall(e),e},e.prototype.verify=function(t,e){var n=J.ofDynamicMock(this,t);this._interceptor.addExpectedCall(n);try{this._interceptor.verifyCallCount(n,e)}catch(r){throw r}},e}(F),nt=function(){function e(){}return e.ofInstance=function(e,n,r){void 0===n&&(n=t.MockBehavior.Loose),void 0===r&&(r=!0);var o=$.ofInstance(e,n,r);return o},e.ofType=function(n,r,o){void 0===r&&(r=t.MockBehavior.Loose),void 0===o&&(o=!0);for(var i=[],c=3;c<arguments.length;c++)i[c-3]=arguments[c];var u;return u=n?e.ofType2(n,i,r,o):et.ofType(void 0,r,o)},e.ofType2=function(e,n,r,o){void 0===r&&(r=t.MockBehavior.Loose),void 0===o&&(o=!0);var i=$.ofType(e,r,o,n);return i},e}(),rt=function(){function t(){}return t.isValue=function(t){var e=new b(t);return e},t.isObjectWith=function(t){var e=new g(t);return e},t.isAnyObject=function(t){var e=new y(t);return e},t.isAny=function(){var t=new _;return t},t.isAnyString=function(){var t=new v;return t},t.isAnyNumber=function(){var t=new d;return t},t.is=function(t){var e=new m(t);return e},t}();!function(t){t[t.Class=0]="Class",t[t.Function=1]="Function",t[t.Value=2]="Value"}(L||(L={}));var ot=function(){function t(t,e,n,r){this.mock=t,this._name=e,this._type=n,this.container=r,this._name||(this._name=t.name)}return Object.defineProperty(t.prototype,"object",{get:function(){return this.mock.object},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"target",{get:function(){return this.mock.target},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return this._name||this.mock.name},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"behavior",{get:function(){return this.mock.behavior},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"callBase",{get:function(){return this.mock.callBase},set:function(t){this.mock.callBase=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"type",{get:function(){return this._type},enumerable:!0,configurable:!0}),t.prototype.setup=function(t){return this.mock.setup(t)},t.prototype.verify=function(t,e){this.mock.verify(t,e)},t.prototype.verifyAll=function(){this.mock.verifyAll()},t.prototype.reset=function(){
this.mock.reset()},t}(),it=function(){function n(){}return n.ofInstance=function(n,r,o,i){void 0===o&&(o=window),void 0===i&&(i=t.MockBehavior.Loose);var c=$.ofGlobalInstance(n,i),u=e.isFunction(n)?L.Function:L.Value;return new ot(c,r,u,o)},n.ofType=function(e,n,r){void 0===n&&(n=window),void 0===r&&(r=t.MockBehavior.Loose);var o=new e,i=$.ofInstance(o,r,!1);return new ot(i,void 0,L.Class,n)},n.ofType2=function(e,n,r){void 0===n&&(n=window),void 0===r&&(r=t.MockBehavior.Loose);var o=et.ofType(e,r,!1);return new ot(o,void 0,L.Class,n)},n}(),ct=function(){function t(t){this._args=t}return t.prototype["with"]=function(t){var n={};try{e.each(this._args,function(t){var o=p.getOwnAndPrototypeEnumerablesAndNonenumerables(t.container),i=e.find(o,function(e){return e.name===t.name});if(i){n[t.name]=i.desc;var c={};switch(t.type){case L.Class:c.value=function(){return t.mock.object};break;case L.Function:c.value=t.mock.object;break;case L.Value:c.get=function(){return t.mock.object};break;default:throw new a(r.UnknownGlobalType,t,"unknown global type: "+t.type)}try{Object.defineProperty(t.container,t.name,c)}catch(u){console.log("1: "+u)}}}),t.apply(this,this._args)}catch(o){console.log("2: "+o)}finally{e.each(this._args,function(t){var e=n[t.name];if(e){switch(t.type){case L.Class:break;case L.Function:break;case L.Value:e.configurable=!0}try{Object.defineProperty(t.container,t.name,e)}catch(r){console.log("3: "+r)}}})}},t}(),ut=function(){function t(){}return t.using=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=new ct(t);return n},t}();t.Mock=nt,t.It=rt,t.Times=s,t.GlobalMock=it,t.GlobalScope=ut,t.MockException=a,Object.defineProperty(t,"__esModule",{value:!0})});

@@ -44,3 +44,3 @@ module.exports = function (config) {

// - IE (only Windows)
browsers: ['Chrome', 'Firefox', 'IE'],
browsers: ['Chrome', 'Firefox', 'IE', 'Edge'],

@@ -59,5 +59,6 @@ // If browser does not capture in given timeout [ms], kill it

'karma-firefox-launcher',
'karma-ie-launcher'
'karma-ie-launcher',
'karma-edge-launcher'
]
});
};
{
"name": "typemoq",
"version": "2.0.1",
"version": "2.1.0",
"description": "A simple mocking library for TypeScript",

@@ -38,3 +38,3 @@ "author": "Florin Nitoi <florin.nitoi@gmail.com>",

"circular-json": "^0.3.1",
"lodash": "^4.16.4",
"lodash": "^4.17.4",
"postinstall-build": "^5.0.1"

@@ -45,3 +45,3 @@ },

"@types/circular-json": "^0.1.30",
"@types/lodash": "^4.14.37",
"@types/lodash": "^4.14.79",
"@types/mocha": "2.2.32",

@@ -67,2 +67,3 @@ "@types/node": "^6.0.45",

"karma-chrome-launcher": "0.1.7",
"karma-edge-launcher": "0.4.2",
"karma-firefox-launcher": "0.1.4",

@@ -75,3 +76,3 @@ "karma-ie-launcher": "1.0.0",

"run-sequence": "1.0.2",
"typescript": "^2.3.4"
"typescript": "^2.5.2"
},

@@ -78,0 +79,0 @@ "engines": {

@@ -15,4 +15,4 @@ import * as _ from "lodash";

let repr = fun.toString();
repr = repr.substr('function '.length);
res = repr.substr(0, repr.indexOf('('));
repr = repr.substr("function ".length);
res = repr.substr(0, repr.indexOf("("));
}

@@ -31,6 +31,15 @@ return res;

let res = "";
if (Match.isMatcher(x))
if (Match.isMatcher(x)) {
res = x.toString();
else
res = CircularJSON.stringify(x);
}
else {
const replacer = (key: string, value: any) => {
if (value === undefined)
return "undefined";
if (_.isFunction(value))
return "Function";
return value;
};
res = CircularJSON.stringify(x, replacer);
}
return res;

@@ -37,0 +46,0 @@ });

@@ -64,3 +64,3 @@ import * as _ from "lodash";

toString(): string {
let res = `${this.property}(${common.Utils.argsName(this.args)})`;
const res = `${this.property}(${common.Utils.argsName(this.args)})`;
return res;

@@ -76,3 +76,3 @@ }

callType = CallType.PROPERTY) {
super(proxyType, callType);

@@ -98,3 +98,3 @@

toString(): string {
let res = `${this.property}`;
const res = `${this.property}`;
return res;

@@ -142,3 +142,3 @@ }

toString(): string {
let res = `${this.property} = ${common.Utils.argsName(this.args[0])}`;
const res = `${this.property} = ${common.Utils.argsName(this.args[0])}`;
return res;

@@ -173,3 +173,3 @@ }

toString(): string {
let res = `${this.property}`;
const res = `${this.property}`;
return res;

@@ -207,3 +207,3 @@ }

toString(): string {
let res = `${this.property}(${common.Utils.argsName(this.args[0])})`;
const res = `${this.property}(${common.Utils.argsName(this.args[0])})`;
return res;

@@ -226,7 +226,3 @@ }

get toFunc(): Function {
let func: Function;
if (_.isFunction(this.obj))
func = <Function>this.obj;
else
func = <Function>this.obj[this.name];
const func = _.isFunction(this.obj) ? <Function>this.obj : <Function>this.obj[this.name];
return func;

@@ -236,4 +232,4 @@ }

toString(): string {
let objName = common.Utils.objectName(this.obj);
let res = `${objName}.${this.name}`;
const objName = common.Utils.objectName(this.obj);
const res = _.isFunction(this.obj) ? `${objName}` : `${objName}.${this.name}`;
return res;

@@ -256,4 +252,4 @@ }

toString(): string {
let objName = common.Utils.objectName(this.obj);
let res = `${objName}.${this.name}`;
const objName = common.Utils.objectName(this.obj);
const res = `${objName}.${this.name}`;
return res;

@@ -260,0 +256,0 @@ }

@@ -12,3 +12,4 @@ ///<reference path="../../node_modules/typescript/lib/lib.es6.d.ts"/>

private constructor(target: T, handler: IProxyHandler<T>) {
let p = <ProxyES6<T>>new Proxy(<Object>target, handler);
const p = <ProxyES6<T>>new Proxy(<Object>target, handler);
(<any>p)[Symbol.toStringTag] = Function.prototype.toString.bind(target);
return p;

@@ -19,6 +20,6 @@ }

ProxyES6.check();
let result = new ProxyES6(target, handler);
const result = new ProxyES6(target, handler);
return result;
}
private static check(): void {

@@ -25,0 +26,0 @@ if (typeof Proxy === "undefined")

@@ -24,23 +24,30 @@ import * as common from "../Common/_all";

const propValue = (<any>target)[p];
const method = new inv.PropertyInfo(target, <string>p);
const invocation = new inv.DynamicGetInvocation(method, propValue);
if (p !== Symbol.toStringTag &&
p !== Symbol.toPrimitive &&
p !== "toJSON") {
this._interceptor.intercept(invocation);
const propValue = (<any>target)[p];
const method = new inv.PropertyInfo(target, <string>p);
const invocation = new inv.DynamicGetInvocation(method, propValue);
if (invocation.callType == CallType.PROPERTY &&
invocation.property.desc) // value getter invocation at execution time
this._interceptor.intercept(invocation);
return invocation.returnValue;
else
return (...args: any[]) => {
if (invocation.callType == CallType.PROPERTY &&
invocation.property.desc) // value getter invocation at execution time
this._interceptor.removeInvocation(invocation);
return invocation.returnValue;
else
return (...args: any[]) => {
const method = new inv.MethodInfo(target, <string>p);
const methodInvocation = new inv.MethodInvocation(target, method, <any>args, ProxyType.DYNAMIC);
this._interceptor.intercept(methodInvocation);
this._interceptor.removeInvocation(invocation);
return methodInvocation.returnValue;
}
const method = new inv.MethodInfo(target, <string>p);
const methodInvocation = new inv.MethodInvocation(target, method, <any>args, ProxyType.DYNAMIC);
this._interceptor.intercept(methodInvocation);
return methodInvocation.returnValue;
}
}
else
return Reflect.get(<Object>target, p, receiver);
}

@@ -50,6 +57,9 @@

const method = new inv.PropertyInfo(target, <string>p);
const invocation: ICallContext = new inv.ValueSetterInvocation(method, <any>[value], ProxyType.DYNAMIC);
this._interceptor.intercept(invocation);
if (p !== Symbol.toStringTag) {
const method = new inv.PropertyInfo(target, <string>p);
const invocation: ICallContext = new inv.ValueSetterInvocation(method, <any>[value], ProxyType.DYNAMIC);
this._interceptor.intercept(invocation);
}
return Reflect.set(<Object>target, p, value, receiver);

@@ -56,0 +66,0 @@ }

{
"compileOnSave": false,
"compilerOptions": {

@@ -3,0 +4,0 @@ "target": "es5",

{
"compileOnSave": false,
"compilerOptions": {

@@ -3,0 +4,0 @@ "target": "es5",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc