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 1.5.0 to 1.6.0

12

CHANGELOG.md

@@ -0,6 +1,12 @@

v1.6.0 / 2017-05-11
===================
* set verifiable by default when strict mocking #57
* fix mock invocation args to act as immutable #60
v1.5.0 / 2017-04-25
===================
* display expected and actual calls when count verification failed #56
* display args as json strings in mock failure messages #56
* display expected and actual calls when count verification failed #56
* display args as json strings in mock failure messages #56

@@ -10,3 +16,3 @@ v1.4.2 / 2017-04-20

* fix dynamic mock matcher ignoring setup params #55
* fix dynamic mock matcher ignoring setup params #55

@@ -13,0 +19,0 @@ v1.4.1 / 2017-03-23

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

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

@@ -375,2 +375,3 @@ // Generated by dts-bundle v0.7.2

readonly callCount: number;
setVerifiable(times?: all.Times, expectedCallType?: all.ExpectedCallType): void;
evaluatedSuccessfully(): void;

@@ -435,3 +436,3 @@ matches(call: all.ICallContext): boolean;

export class MethodInvocation extends BaseInvocation {
constructor(_that: Object, _property: MethodInfo, _args?: IArguments, proxyType?: ProxyType, callType?: CallType);
constructor(_that: Object, _property: MethodInfo, args?: IArguments, proxyType?: ProxyType, callType?: CallType);
args: IArguments;

@@ -454,3 +455,3 @@ readonly property: IPropertyInfo;

export class ValueSetterInvocation extends BaseInvocation {
constructor(_property: IPropertyInfo, _args: IArguments, proxyType?: ProxyType, callType?: CallType);
constructor(_property: IPropertyInfo, args: IArguments, proxyType?: ProxyType, callType?: CallType);
args: IArguments;

@@ -469,3 +470,3 @@ readonly property: IPropertyInfo;

export class MethodSetterInvocation extends BaseInvocation {
constructor(_property: IPropertyInfo, _setter: (v: any) => void, _args: IArguments, proxyType?: ProxyType, callType?: CallType);
constructor(_property: IPropertyInfo, _setter: (v: any) => void, args: IArguments, proxyType?: ProxyType, callType?: CallType);
args: IArguments;

@@ -511,2 +512,3 @@ readonly property: IPropertyInfo;

callCount: number;
setVerifiable(times?: api.Times, expectedCallType?: api.ExpectedCallType): void;
evaluatedSuccessfully(): void;

@@ -712,3 +714,3 @@ matches(call: ICallContext): boolean;

readonly ___id: string;
constructor(_value: T);
constructor(value: T);
___matches(object: any): boolean;

@@ -723,3 +725,3 @@ toString(): string;

readonly ___id: string;
constructor(_value: T);
constructor(value: T);
___matches(object: Object): boolean;

@@ -726,0 +728,0 @@ toString(): string;

{
"name": "typemoq",
"version": "1.5.0",
"version": "1.6.0",
"description": "A simple mocking library for TypeScript",

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

@@ -279,3 +279,3 @@ TypeMoq [![build badge](https://travis-ci.org/florinn/typemoq.svg?branch=master)](https://travis-ci.org/florinn/typemoq)

If no matcher is specified then an implicit matcher is considered that performs strict equality comparison, equivalent to `It.is(x => x === a)`.
If no matcher is specified then an implicit matcher is considered that performs strict equality deep comparison, equivalent to `It.is(x => _.isEqual(x, a))`.

@@ -620,4 +620,6 @@ ##### Matching functions

The default value of the `times` parameter is equal to `Times.once()`.
```typescript
mock.setup(x => x.doNumber(999)).verifiable();
mock.setup(x => x.doNumber(999)).verifiable(); // Times.once()
mock.setup(x => x.doString(It.isAny())).verifiable(Times.exactly(2));

@@ -634,4 +636,16 @@ mock.setup(x => x.doVoid()).verifiable(Times.atMostOnce());

The default value of the `times` param is `Times.atLeastOnce()`.
When mock behavior is `MockBehavior.Strict`, every call to `.setup()` automatically calls `.verifiable()` behind the scenes, as the default.
```typescript
let mock = TypeMoq.Mock.ofType(Doer, TypeMoq.MockBehavior.Strict);
mock.setup(x => x.doNumber(999)); // Times.once()
mock.setup(x => x.doVoid()).verifiable(Times.atMostOnce());
mock.object.doVoid();
mock.object.doNumber(999);
mock.verifyAll();
```
##### Verify expectation invocation order

@@ -638,0 +652,0 @@

@@ -5,2 +5,2 @@ import { Times } from "./Times";

verifiable(times?: Times): void;
}
}

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

let verifiableCalls: Array<all.IProxyCall<T>> = _.filter(expectedCalls, (c: all.IProxyCall<T>) => c.isVerifiable);
let verifiableCalls: Array<all.IProxyCall<T>> = [];
if (this._interceptorContext.behavior == all.MockBehavior.Strict) { // verifiable by default when strict mocking
for (let call of expectedCalls) {
if (!call.isVerifiable)
call.setVerifiable();
verifiableCalls.push(call);
}
}
else {
verifiableCalls = _.filter(expectedCalls, (c: all.IProxyCall<T>) => c.isVerifiable);
}
for (let v of verifiableCalls)

@@ -42,0 +52,0 @@ this.verifyCallCount(v, v.expectedCallCount);

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

constructor(private _ctor: common.Ctor<T>) {
constructor(private readonly _ctor: common.Ctor<T>) {
}

@@ -13,0 +13,0 @@

@@ -7,6 +7,9 @@ import * as _ from "lodash";

export class MatchObjectWith<T> implements IMatch {
readonly ___id = Consts.IMATCH_ID_VALUE;
private readonly _value: T;
constructor(private _value: T) {
constructor(value: T) {
this._value = <any>_.cloneDeep(value);
}

@@ -13,0 +16,0 @@

@@ -9,3 +9,3 @@ import * as common from "../Common/_all";

constructor(private _pred: common.IFunc2<T, boolean>) {
constructor(private readonly _pred: common.IFunc2<T, boolean>) {
}

@@ -12,0 +12,0 @@

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

constructor(private _value: T) {
private readonly _value: T;
constructor(value: T) {
this._value = <any>_.cloneDeep(value);
}

@@ -13,0 +16,0 @@

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

else {
// assume object reference equality, short form of It.is(x => x === a)
let newArg = new all.MatchPred(x => x === a);
// assume strict equality, short form of It.is(x => _.isEqual(x, a))
let newArg = new all.MatchPred(x => _.isEqual(x, a));
newArgs.push(newArg);

@@ -99,2 +99,11 @@ }

setVerifiable(
times: all.Times = all.Times.once(),
expectedCallType: all.ExpectedCallType = all.ExpectedCallType.InAnyOrder): void {
this._isVerifiable = true;
this._expectedCallCount = times;
this._expectedCallType = expectedCallType;
}
evaluatedSuccessfully() {

@@ -146,8 +155,6 @@ this._evaluatedSuccessfully = true;

verifiable(
times: all.Times = all.Times.atLeastOnce(),
expectedCallType: all.ExpectedCallType = all.ExpectedCallType.InAnyOrder): void {
times?: all.Times,
expectedCallType?: all.ExpectedCallType): void {
this._isVerifiable = true;
this._expectedCallCount = times;
this._expectedCallType = expectedCallType;
this.setVerifiable(times, expectedCallType);
}

@@ -154,0 +161,0 @@

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

constructor(public readonly proxyType: ProxyType, public callType: CallType) {
}

@@ -33,9 +32,18 @@

export class MethodInvocation extends BaseInvocation {
private _args: IArguments;
constructor(
private readonly _that: Object,
private readonly _property: MethodInfo,
private _args?: IArguments,
args?: IArguments,
proxyType = ProxyType.STATIC,
callType = CallType.FUNCTION) {
super(proxyType, callType);
if (args) {
this._args = <any>_.cloneDeep(args);
this._args.length = args.length;
this._args.callee = args.callee;
}
}

@@ -69,4 +77,6 @@

callType = CallType.PROPERTY) {
super(proxyType, callType);
this.returnValue = value;
this.returnValue = _.cloneDeep(value);
}

@@ -98,4 +108,6 @@

value: any) {
super(property, value, ProxyType.DYNAMIC, CallType.UNKNOWN);
this.returnValue = value;
this.returnValue = _.cloneDeep(value);
}

@@ -105,8 +117,15 @@ }

export class ValueSetterInvocation extends BaseInvocation {
private _args: IArguments;
constructor(
private readonly _property: IPropertyInfo,
private _args: IArguments,
args: IArguments,
proxyType = ProxyType.STATIC,
callType = CallType.PROPERTY) {
super(proxyType, callType);
this._args = <any>_.cloneDeep(args);
this._args.length = args.length;
this._args.callee = args.callee;
}

@@ -136,2 +155,3 @@

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

@@ -161,9 +181,16 @@ }

export class MethodSetterInvocation extends BaseInvocation {
private _args: IArguments;
constructor(
private readonly _property: IPropertyInfo,
private readonly _setter: (v: any) => void,
private _args: IArguments,
args: IArguments,
proxyType = ProxyType.STATIC,
callType = CallType.FUNCTION) {
super(proxyType, callType);
this._args = <any>_.cloneDeep(args);
this._args.length = args.length;
this._args.callee = args.callee;
}

@@ -188,6 +215,11 @@

export class MethodInfo implements IPropertyInfo {
readonly desc: common.PropDescriptor;
constructor(
public readonly obj: any,
public readonly name: string,
public readonly desc?: common.PropDescriptor) {
desc?: common.PropDescriptor) {
if (desc)
this.desc = _.cloneDeep(desc);
}

@@ -212,6 +244,11 @@

export class PropertyInfo implements IPropertyInfo {
readonly desc: common.PropDescriptor;
constructor(
public readonly obj: Object,
public readonly name: string,
public readonly desc?: common.PropDescriptor) {
desc?: common.PropDescriptor) {
if (desc)
this.desc = _.cloneDeep(desc);
}

@@ -218,0 +255,0 @@

@@ -14,2 +14,7 @@ import * as common from "../Common/_all";

callCount: number;
setVerifiable(
times?: api.Times,
expectedCallType?: api.ExpectedCallType): void;
evaluatedSuccessfully(): void;

@@ -19,2 +24,2 @@

execute(call: ICallContext): void;
}
}

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

return Reflect.set(target, p, value, receiver);
return Reflect.set(<Object>target, p, value, receiver);
}

@@ -63,5 +63,5 @@

return Reflect.defineProperty(target, p, attributes);
return Reflect.defineProperty(<Object>target, p, attributes);
}
}
}

@@ -63,5 +63,12 @@ import { Utils } from "./Utils";

export enum AnEnum {
One = 1,
Two,
Three
}
export class Bar implements IBar {
value: string = '';
anyValue: any = undefined;
enumValue: AnEnum;
}

@@ -72,2 +79,3 @@

anyValue: any;
enumValue: AnEnum;
}

@@ -74,0 +82,0 @@

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