Best JustMockLite code snippet using Telerik.JustMock.Tests.Baz.Execute
MockFixture.cs
Source:MockFixture.cs  
...81		public void ShouldAssertDoInstead()82		{83			var foo = Mock.Create<IFoo>();84			bool called = false;85			Mock.Arrange(() => foo.Execute(Arg.IsAny<string>()))86								  .DoInstead(() => { called = true; })87								  .Returns((string s) => s);88			Assert.Equal(foo.Execute("ping"), "ping");89			Assert.True(called);90		}91		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]92		public void ShouldAssertDoInsteadForOneArgFromMethod()93		{94			int expected = 0;95			var foo = Mock.Create<IFoo>();96			Mock.Arrange(() => foo.Submit(Arg.IsAny<int>()))97				.DoInstead((int arg1) => { expected = arg1; });98			foo.Submit(10);99			Assert.Equal(10, expected);100		}101		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]102		public void ShouldAssertDoInsteadForTwoArgsFromMethod()103		{104			int expected = 0;105			var foo = Mock.Create<IFoo>();106			Mock.Arrange(() => foo.Submit(Arg.IsAny<int>(), Arg.IsAny<int>()))107				.DoInstead((int arg1, int arg2) => { expected = arg1 + arg2; });108			foo.Submit(10, 10);109			Assert.Equal(20, expected);110		}111		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]112		public void ShouldAssertDoInsteadForThreeArgsFromMethod()113		{114			int expected = 0;115			var foo = Mock.Create<IFoo>();116			Mock.Arrange(() => foo.Submit(Arg.IsAny<int>(), Arg.IsAny<int>(), Arg.IsAny<int>()))117				.DoInstead((int arg1, int arg2, int arg3) => { expected = arg1 + arg2 + arg3; });118			foo.Submit(10, 10, 10);119			Assert.Equal(30, expected);120		}121		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]122		public void ShouldAssertDoInsteadForFourArgsFromMethod()123		{124			int expected = 0;125			var foo = Mock.Create<IFoo>();126			Mock.Arrange(() => foo.Submit(Arg.IsAny<int>(), Arg.IsAny<int>(), Arg.IsAny<int>(), Arg.IsAny<int>()))127				.DoInstead((int arg1, int arg2, int arg3, int arg4) => { expected = arg1 + arg2 + arg3 + arg4; });128			foo.Submit(10, 10, 10, 10);129			Assert.Equal(40, expected);130		}131		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]132		public void ShouldAssertDoInsteadForOneArgFromFunc()133		{134			int expected = 0;135			var foo = Mock.Create<IFoo>();136			Mock.Arrange(() => foo.Echo(Arg.IsAny<int>()))137				.DoInstead((int arg1) => { expected = arg1; })138				.Returns(() => expected);139			Assert.Equal(foo.Echo(10), expected);140		}141		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]142		public void ShouldAssertDoInsteadForTwoArgsFromFunc()143		{144			int expected = 0;145			var foo = Mock.Create<IFoo>();146			Mock.Arrange(() => foo.Echo(Arg.IsAny<int>(), Arg.IsAny<int>()))147				.DoInstead((int arg1, int arg2) => { expected = arg1 + arg2; })148				.Returns(() => expected);149			Assert.Equal(foo.Echo(10), expected);150		}151		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]152		public void ShouldAssertDoInsteadForThreeArgsFromFunc()153		{154			int expected = 0;155			var foo = Mock.Create<IFoo>();156			Mock.Arrange(() => foo.Echo(Arg.IsAny<int>(), Arg.IsAny<int>(), Arg.IsAny<int>()))157				.DoInstead((int arg1, int arg2, int arg3) => { expected = arg1 + arg2 + arg3; })158				.Returns(() => expected);159			Assert.Equal(foo.Echo(10), expected);160		}161		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]162		public void ShouldAssertDoInsteadForFourArgsFromFunc()163		{164			int expected = 0;165			var foo = Mock.Create<IFoo>();166			Mock.Arrange(() => foo.Echo(Arg.IsAny<int>(), Arg.IsAny<int>(), Arg.IsAny<int>(), Arg.IsAny<int>()))167				.DoInstead((int arg1, int arg2, int arg3, int arg4) => { expected = arg1 + arg2 + arg3 + arg4; })168				.Returns(() => expected);169			Assert.Equal(foo.Echo(10), expected);170		}171		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]172		public void ShouldThrowIfArgumentsPassedForInterface()173		{174			Assert.Throws<Exception>(() => Mock.Create<IFoo>(25, true));175		}176		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]177		public void ShouldAssertCallOriginal()178		{179			var foo = Mock.Create<FooBase>();180			Mock.Arrange(() => foo.GetString("x")).CallOriginal();181			Mock.Arrange(() => foo.GetString("y")).Returns("z");182			Assert.Equal("x", foo.GetString("x"));183			Assert.Equal("z", foo.GetString("y"));184		}185		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]186		public void ShouldAssertGuidParam()187		{188			var foo = Mock.Create<IFoo>();189			Guid guid = Guid.NewGuid();190			bool called = false;191			Mock.Arrange(() => foo.Execute(guid)).DoInstead(() => called = true);192			foo.Execute(guid);193			Assert.True(called);194		}195		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]196		public void ShouldAssertCallOriginalForVoid()197		{198			var log = Mock.Create<Log>();199			Mock.Arrange(() => log.Info(Arg.IsAny<string>())).CallOriginal();200			Assert.Throws<Exception>(() => log.Info("test"));201		}202		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]203		public void ShouldPassArgumentToOriginal()204		{205			var log = Mock.Create<Log>();206			Mock.Arrange(() => log.Info("x")).CallOriginal();207			Assert.Equal(Assert.Throws<Exception>(() => log.Info("x")).Message, "x");208		}209		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]210		public void MockObjectShouldBeAssignableToMockedInterface()211		{212			var iFoo = Mock.Create<IFoo>();213			Assert.True(iFoo is IFoo);214		}215		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]216		public void ShouldAssertVoidCall()217		{218			var iFoo = Mock.Create<IFoo>();219			Mock.Arrange(() => iFoo.JustCall()).DoNothing();220			iFoo.JustCall();221		}222		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]223		public void ShouldAssertCallsThatAreMethodCalls()224		{225			const int arg = 2;226			var iBar = Mock.Create<IBar>();227			Mock.Arrange(() => iBar.Echo(Arg.IsAny<int>())).Returns(1);228			Assert.Equal(iBar.Echo(arg + 1), 1);229		}230		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]231		public void ShouldAssertGenericThrowsCall()232		{233			var iFoo = Mock.Create<IFoo>();234			Mock.Arrange(() => iFoo.Execute(Arg.IsAny<string>())).Throws<FormatException>();235			Assert.Throws<FormatException>(() => iFoo.Execute("crash"));236		}237		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]238		public void ShouldAssertThrowsHavingArguments()239		{240			var iFoo = Mock.Create<IFoo>();241			Mock.Arrange(() => iFoo.Execute(Arg.IsAny<string>())).Throws<CustomExepction>("test", true);242			Assert.Throws<CustomExepction>(() => iFoo.Execute("crash"));243		}244		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]245		public void ShouldAssertEqualityRefereces()246		{247			var iFoo1 = Mock.Create<IFoo>();248			var iFoo2 = Mock.Create<IFoo>();249			Assert.True(iFoo1.Equals(iFoo1));250			Assert.False(iFoo1.Equals(iFoo2));251		}252		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]253		public void TwoMockedObjectsShouldHavdDifferentHashCode()254		{255			var iFoo1 = Mock.Create<IFoo>();256			var iFoo2 = Mock.Create<IFoo>();257			Assert.NotEqual(iFoo1.GetHashCode(), iFoo2.GetHashCode());258		}259		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]260		public void ToStringShouldNotbeNullOrEmpty()261		{262			var foo = Mock.Create<IFoo>();263			Assert.False(String.IsNullOrEmpty(foo.ToString()));264		}265		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]266		public void ShouldMockClassWithNonDefaultConstructor()267		{268			var nonDefaultClass = Mock.Create<ClassWithNonDefaultConstructor>("ping", 1);269			Assert.NotNull(nonDefaultClass);270		}271		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]272		public void ShouldMockClassWithNonDefaultConstructorWithoutPassingAnything()273		{274			var nonDefaultClass = Mock.Create<ClassWithNonDefaultConstructor>();275			Assert.NotNull(nonDefaultClass);276		}277		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]278		public void ShouldMockClassWithNoDefaultConstructorWithNull()279		{280			var nonDefaultClass = Mock.Create<ClassWithNonDefaultConstructor>(null, 1);281			Assert.NotNull(nonDefaultClass);282		}283		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]284		public void ShoulsMockClassWithMultipleNonDefaultConstructor()285		{286			var nonDefaultClass = Mock.Create<ClassWithNonDefaultConstructor>(null, 1, true);287			Assert.NotNull(nonDefaultClass);288		}289		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]290		public void ShouldAssertGuidNonDefaultCtorWithDefaultIfNotSpecified()291		{292			var nonDefaultGuidClass = Mock.Create<ClassNonDefaultGuidConstructor>();293			Assert.Equal(nonDefaultGuidClass.guidValue, default(Guid));294		}295		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]296		public void ShouldAssertBaseCallWithGuid()297		{298			var foo = Mock.Create<FooBase>();299			Mock.Arrange(() => foo.GetGuid()).CallOriginal();300			Assert.Equal(foo.GetGuid(), default(Guid));301		}302		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]303		public void ShouldAssertImplementedInterface()304		{305			var implemented = Mock.Create<IFooImplemted>();306			Assert.NotNull(implemented);307		}308		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]309		public void ShouldAssertBaseForImplemetedInterface()310		{311			var implemented = Mock.Create<IFooImplemted>();312			Assert.True(implemented is IFoo);313		}314		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]315		public void SHouldAssertCallsFromBaseInImplemented()316		{317			var implemented = Mock.Create<IFooImplemted>();318			Mock.Arrange(() => implemented.Execute("hello")).Returns("world");319			Assert.Equal(implemented.Execute("hello"), "world");320		}321		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]322		public void ShouldMockObject_GetHashCodeMethod()323		{324			var foo = Mock.Create<FooBase>();325			Mock.Arrange(() => foo.GetHashCode()).Returns(1);326			Assert.Equal(1, foo.GetHashCode());327		}328		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]329		public void ShouldMockObject_ToStringMethod()330		{331			var foo = Mock.Create<FooBase>();332			Mock.Arrange(() => foo.ToString()).Returns("foo");333			Assert.Equal("foo", foo.ToString());334		}335		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]336		public void ShouldMockObject_EqualsMethod()337		{338			var foo = Mock.Create<FooBase>();339			Mock.Arrange(() => foo.Equals(Arg.IsAny<object>())).Returns(true);340			Assert.True(foo.Equals(new object()));341		}342		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]343		public void ShouldCallUnderlyingEquals()344		{345			var foo1 = Mock.Create<FooOverridesEquals>("foo");346			var foo2 = Mock.Create<FooOverridesEquals>("foo");347			Assert.True(foo1.Equals(foo2));348		}349		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]350		public void ShouldNotCallBaseByDefault()351		{352			var foo = Mock.Create<FooBase>();353			// this will not throw exception.354			foo.ThrowException();355		}356		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]357		public void ShouldTakeLatestSetup()358		{359			var foo = Mock.Create<IFoo>();360			Mock.Arrange(() => foo.Execute("ping")).Returns("pong");361			Mock.Arrange(() => foo.Execute(Arg.IsAny<string>())).Returns("pong");362			Assert.Equal(foo.Execute("nothing"), "pong");363		}364		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]365		public void ShouldOverrideBehaviorFromBaseClass()366		{367			var foo = Mock.Create<FooBase>();368			Mock.Arrange(() => foo.GetString("pong")).CallOriginal().InSequence();369			Mock.Arrange(() => foo.GetString(Arg.IsAny<string>())).Returns("ping").InSequence();370			Assert.Equal(foo.GetString("pong"), "pong");371			Assert.Equal(foo.GetString("it"), "ping");372		}373		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]374		public void ShouldAssertDateTimeAsRef()375		{376			var foo = Mock.Create<IFoo>();377			DateTime expected = new DateTime(2009, 11, 26);378			Mock.Arrange(() => foo.Execute(out expected)).DoNothing();379			DateTime acutal = DateTime.Now;380			foo.Execute(out acutal);381			Assert.Equal(expected, acutal);382		}383		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]384		public void ShouldAssertOutputParamPassedViaNested()385		{386			var nested = new Nested();387			nested.expected = 10;388			var foo = Mock.Create<IFoo>();389			Mock.Arrange(() => foo.Execute(out nested.expected));390			int actual = 0;391			foo.Execute(out actual);392			Assert.Equal(actual, 10);393		}394		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]395		public void ShouldNotInvokeOriginalCallWhenInitiatedFromCtor()396		{397			var foo = Mock.Create<FooAbstractCall>(false);398			Assert.NotNull(foo);399		}400		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]401		public void ShouldNotInvokeOriginalActionWhenInitiatedFromCtor()402		{403			var foo = Mock.Create<FooAbstractAction>();404			Assert.NotNull(foo);405		}406		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]407		public void ShouldNotInitalizeAsArgMatcherWhenProcessingMemberAccessArgument()408		{409			var foo = Mock.Create<IFoo>();410			Mock.Arrange(() => foo.Execute(false, BadGuid)).OccursOnce();411			foo.Execute(false, Guid.Empty);412			Mock.Assert(() => foo.Execute(Arg.IsAny<bool>(), Guid.Empty));413		}414		public static readonly Guid BadGuid = Guid.Empty;415		public abstract class FooAbstractCall416		{417			public FooAbstractCall(bool flag)418			{419				// invoke base will throw exception here.420				Initailize();421			}422			public abstract bool Initailize();423		}424		public abstract class FooAbstractAction425		{426			public FooAbstractAction()427			{428				// invoke base will throw exception here.429				Initailize();430			}431			public abstract void Initailize();432		}433#if !COREFX434		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]435		public void ShouldCreateMockClassWithInternalConstructor()436		{437			var foo = Mock.Create<FooWithInternalConstruct>();438			Assert.NotNull(foo);439		}440		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]441		public void ShouldAssertArrangeWithInternalConstructor()442		{443			var foo = Mock.Create<FooWithInternalConstruct>();444			bool called = false;445			Mock.Arrange(() => foo.Execute()).DoInstead(() => called = true);446			foo.Execute();447			Assert.True(called);448		}449#endif450		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]451		public void ShouldAssertGenericFuncCalls()452		{453			var genericClass = Mock.Create<FooGeneric<int>>();454			Mock.Arrange(() => genericClass.Get(1, 1)).Returns(10);455			Assert.Equal(genericClass.Get(1, 1), 10);456		}457		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]458		public void ShouldAssertGenericVoidCalls()459		{460			var genericClass = Mock.Create<FooGeneric<int>>();461			bool called = false;462			Mock.Arrange(() => genericClass.Execute(1)).DoInstead(() => called = true);463			genericClass.Execute(1);464			Assert.True(called);465		}466		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]467		public void ShouldAssertGenricMockWithNoGenericClass()468		{469			var genericClass = Mock.Create<FooGeneric>();470			Mock.Arrange(() => genericClass.Get<int, int>(1)).Returns(10);471			Assert.Equal(genericClass.Get<int, int>(1), 10);472		}473		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]474		public void ShouldAssertFuncWithOccurrence()475		{476			var foo = Mock.Create<IFoo>();477			Mock.Arrange(() => foo.Execute("x")).Returns("x");478			foo.Execute("x");479			Mock.Assert(() => foo.Execute("x"), Occurs.Exactly(1));480		}481		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]482		public void ShouldAssertOutputGenericArgument()483		{484			var fooGen = Mock.Create<FooGeneric>();485			int result = 0;486			fooGen.Execute<int, int>(out result);487			Assert.Equal(result, 0);488		}489		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]490		public void ShouldAssertArrangeForGenricOutArgument()491		{492			var fooGen = Mock.Create<FooGeneric>();493			int expected = 10;494			Mock.Arrange(() => fooGen.Execute<int, int>(out expected)).Returns(0);495			int actual = 0;496			fooGen.Execute<int, int>(out actual);497			Assert.Equal(expected, actual);498		}499		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]500		public void ShouldAssertParamArrayMatchArugments()501		{502			string expected = "bar";503			string argument = "foo";504			var target = Mock.Create<IParams>();505			Mock.Arrange(() => target.ExecuteParams(argument, "baz")).Returns(expected);506			string ret = target.ExecuteParams(argument, "baz");507			Assert.Equal(expected, ret);508		}509		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]510		public void ShouldDistinguiseMethodWithDifferentGenericArgument()511		{512			var foo = Mock.Create<FooGeneric>();513			Mock.Arrange(() => foo.Get<int>()).Returns(10);514			Mock.Arrange(() => foo.Get<string>()).Returns(12);515			Assert.Equal(foo.Get<string>(), 12);516			Assert.Equal(foo.Get<int>(), 10);517		}518		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]519		public void ShouldAssertParamArrayWithMatcherAndConcreteValue()520		{521			string expected = "bar";522			string argument = "foo";523			var target = Mock.Create<IParams>();524			Mock.Arrange(() => target.ExecuteByName(Arg.IsAny<int>(), argument)).Returns(expected);525			string ret = target.ExecuteByName(0, argument);526			Assert.Equal(expected, ret);527		}528		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]529		public void ShouldAssertCallWithMultipleMathers()530		{531			var foo = Mock.Create<IFoo>();532			Mock.Arrange(() => foo.Echo(Arg.Matches<int>(x => x == 10), Arg.Matches<int>(x => x == 10))).Returns(20);533			int ret = foo.Echo(10, 10);534			Assert.Equal(20, ret);535		}536		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]537		public void ShouldAssertArgumentMatherArgumentSetup()538		{539			var foo = Mock.Create<IFoo>();540			Mock.Arrange(() => foo.Echo(10, Arg.Matches<int>(x => x > 10 && x < 20), 21)).Returns(20);541			int ret = foo.Echo(10, 11, 21);542			Assert.Equal(20, ret);543		}544		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]545		public void ShouldAssertCallWithDefaultValues()546		{547			var foo = Mock.Create<IFoo>();548			Mock.Arrange(() => foo.Echo(0, 0)).Returns(2);549			int ret = foo.Echo(0, 0);550			Assert.Equal(2, ret);551		}552		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]553		public void ShouldCreateMockFromRealObject()554		{555			var realItem = Mock.Create(() => new RealItem());556			Assert.NotNull(realItem);557		}558		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]559		public void ShouldCreateMockFromRealObjectForNonDefaultConstructor()560		{561			var realItem = Mock.Create(() => new RealItem(10));562			Assert.NotNull(realItem);563		}564		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]565		public void ShouldCreateMockFromRealObjectThatHasOnlyNonDefaultCtor()566		{567			var realItem = Mock.Create(() => new RealItem2(10, string.Empty));568			Assert.NotNull(realItem);569		}570		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]571		public void ShouldCreateMockFromRealCtorWithParams()572		{573			// the following line should not throw any argument exception.574			var realItem = Mock.Create(() => new RealItem("hello", 10, 20),575				Behavior.CallOriginal);576			Assert.Equal("hello", realItem.Text);577			Assert.Equal(2, realItem.Args.Length);578		}579		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]580		public void ShouldAssertMixins()581		{582			var realItem = Mock.Create<RealItem>(x =>583			{584				x.Implements<IDisposable>();585				x.CallConstructor(() => new RealItem(0));586			});587			var iDispose = realItem as IDisposable;588			iDispose.Dispose();589		}590		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]591		public void ShouldAssertMixinsWithClosure()592		{593			int a = 5;594			var realItem = Mock.Create<RealItem>(x =>595			{596				x.Implements<IDisposable>();597				x.CallConstructor(() => new RealItem(a));598			});599			var iDispose = realItem as IDisposable;600			iDispose.Dispose();601		}602		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]603		public void ShouldImplementDependentInterfacesWhenTopIsSpecified()604		{605			var realItem = Mock.Create<RealItem>(x =>606			{607				x.Implements<IFooImplemted>();608				x.CallConstructor(() => new RealItem(0));609			});610			Assert.NotNull(realItem as IFoo);611		}612		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]613		public void ShouldCloneWhenItemImplementsICloneableAndOneOtherInterface()614		{615			var myMock = Mock.Create<IDisposable>(x => x.Implements<ICloneable>());616			var myMockAsClonable = myMock as ICloneable;617			bool isCloned = false;618			Mock.Arrange(() => myMockAsClonable.Clone()).DoInstead(() => isCloned = true);619			myMockAsClonable.Clone();620			Assert.True(isCloned);621		}622		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]623		public void ShouldCallOriginalMethodForCallsOriginal()624		{625			var foo = Mock.Create<FooBase>(Behavior.CallOriginal);626			//// should call the original.627			Assert.Throws<InvalidOperationException>(() => foo.ThrowException());628		}629		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]630		public void ShouldNotCallOriginalMethodIfThereisASetupForCallsOriginal()631		{632			var foo = Mock.Create<FooBase>(Behavior.CallOriginal);633			Guid expected = Guid.NewGuid();634			Mock.Arrange(() => foo.GetGuid()).Returns(expected);635			Assert.Equal(expected, foo.GetGuid());636		}637		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]638		public void ShouldCallOriginalIfThereIsNoSetupForSimilarTypeForCallsOiginal()639		{640			var foo = Mock.Create<FooBase>(Behavior.CallOriginal);641			Mock.Arrange(() => foo.Echo(1)).Returns(2);642			Assert.Equal(2, foo.Echo(1));643			Assert.Equal(2, foo.Echo(2));644		}645		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]646		public void ShouldBeAbleToIgnoreArgumentsIfSpecified()647		{648			var foo = Mock.Create<IFoo>();649			Mock.Arrange(() => foo.Echo(10, 9)).IgnoreArguments().Returns(11);650			Assert.Equal(11, foo.Echo(1, 1));651		}652		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]653		public void ShouldInterceptVirtualsFromBaseClass()654		{655			var foo = Mock.Create<FooChild>();656			Mock.Arrange(() => foo.ThrowException()).Throws<ArgumentException>();657			Assert.Throws<ArgumentException>(() => foo.ThrowException());658		}659		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]660		public void ShouldAssertSetupWithArgAnyMatcherForArray()661		{662			var foo = Mock.Create<IFoo>();663			Mock.Arrange(() => foo.Submit(Arg.IsAny<byte[]>())).MustBeCalled();664			foo.Submit(new byte[10]);665			Mock.Assert(foo);666		}667		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]668		public void ShouldAssertDictionaryArgumentForIsAny()669		{670			var param = Mock.Create<IParams>();671			Mock.Arrange(() =>672				param.ExecuteArrayWithString(Arg.AnyString, Arg.IsAny<Dictionary<string, object>>()))673				.MustBeCalled();674			param.ExecuteArrayWithString("xxx", new Dictionary<string, object>());675			Mock.Assert(param);676		}677		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]678		public void ShouldAssertSetupWithCallHavingParamsAndPassedWithMatcher()679		{680			var foo = Mock.Create<IFoo>();681			Mock.Arrange(() => foo.FindOne(Arg.IsAny<ICriteria>())).Returns(true);682			var criteria = Mock.Create<ICriteria>();683			Assert.True(foo.FindOne(criteria));684		}685		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]686		public void ShouldThrowNotImplementedExceptionForBaseInovocationOnAbstract()687		{688			var node = Mock.Create<ExpressionNode>(Behavior.CallOriginal);689			Assert.Throws<NotImplementedException>(() => { var expected = node.NodeType; });690		}691		[TestMethod, TestCategory("Lite"), TestCategory("Behavior"), TestCategory("CallOriginal")]692		public void CallOriginalClause_AbstractMethod_ThrowsNotImplemented()693		{694			var mock = Mock.Create<IFoo>();695			Mock.Arrange(() => mock.JustCall()).CallOriginal();696			Assert.Throws<NotImplementedException>(() => mock.JustCall());697		}698		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]699		public void ShouldSetupMockWithParamsWhenNoParamIsPassed()700		{701			var fooParam = Mock.Create<FooParam>();702			var expected = "hello";703			Mock.Arrange(() => fooParam.FormatWith(expected)).Returns(expected);704			Assert.Equal(expected, fooParam.FormatWith(expected));705		}706		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]707		public void ShouldBeAbleToPassSingleArgIsAnyForParamsTypeArgument()708		{709			var fooParam = Mock.Create<FooParam>();710			Mock.Arrange(() => fooParam.GetDevicesInLocations(0, false, Arg.IsAny<MesssageBox>())).Returns(10);711			int result = fooParam.GetDevicesInLocations(0, false, new MesssageBox());712			Assert.Equal(10, result);713		}714		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]715		public void ShouldBeAbleToPassMultipleArgIsAnyForParamsTypeArgument()716		{717			var fooParam = Mock.Create<FooParam>();718			Mock.Arrange(() => fooParam719				.GetDevicesInLocations(0, false, Arg.IsAny<MesssageBox>(), Arg.IsAny<MesssageBox>()))720				.Returns(10);721			var box = new MesssageBox();722			int result = fooParam.GetDevicesInLocations(0, false, box, box);723			Assert.Equal(10, result);724		}725		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]726		public void ShouldCreateMockFromInterfaceWithSimilarGenericOverloads()727		{728			var session = Mock.Create<ISession>();729			Assert.NotNull(session);730		}731		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]732		public void ShouldDisposeArrangementEffects()733		{734			var mock = Mock.Create<IBar>();735			using (Mock.Arrange(() => mock.Value).Returns(123))736			{737				Assert.Equal(123, mock.Value);738			}739			Assert.Equal(0, mock.Value);740		}741		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]742		public void ShouldDisposeArrangementExpectations()743		{744			var mock = Mock.Create<IBar>();745			using (Mock.Arrange(() => mock.Value).MustBeCalled())746			{747				Assert.Throws<AssertionException>(() => Mock.Assert(mock));748			}749			Mock.Assert(mock);750		}751		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]752		public void ShouldAssertExpectedWithDynamicQuery()753		{754			var bookRepo = Mock.Create<IBookRepository>();755			var expected = new Book();756			Mock.Arrange(() => bookRepo.GetWhere(book => book.Id > 1))757					.Returns(expected)758					.MustBeCalled();759			var actual = bookRepo.GetWhere(book => book.Id > 1);760			Assert.Equal(expected, actual);761			Mock.Assert(bookRepo);762		}763		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]764		public void ShouldAssertMockExpressionDeleteArgumentForCompoundQuery()765		{766			var bookRepo = Mock.Create<IBookRepository>();767			var expected = new Book();768			string expectedTitle = "Telerik";769			Mock.Arrange(() => bookRepo.GetWhere(book => book.Id > 1 && book.Title == expectedTitle))770					.Returns(expected)771					.MustBeCalled();772			var actual = bookRepo.GetWhere(book => book.Id > 1 && book.Title == expectedTitle);773			Assert.Equal(expected, actual);774			Mock.Assert(bookRepo);775		}776		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]777		public void ShouldAssertMockForDynamicQueryWhenComparedUsingAVariable()778		{779			var repository = Mock.Create<IBookRepository>();780			var expected = new Book { Title = "Adventures" };781			var service = new BookService(repository);782			Mock.Arrange(() => repository.GetWhere(book => book.Id == 1))783				.Returns(expected)784				.MustBeCalled();785			var actual = service.GetSingleBook(1);786			Assert.Equal(actual.Title, expected.Title);787		}788		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]789		public void ShouldAssertWithIntValueUsedForLongValuedArgument()790		{791			int number = 5;792			int expectedResult = 42;793			var myClass = Mock.Create<ClassWithLongMethod>();794			Mock.Arrange(() => myClass.AddOne(number)).Returns(expectedResult);795			// Act796			var result = myClass.AddOne(number);797			// Assert798			Assert.Equal(expectedResult, result);799		}800		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]801		public void ShouldAutoArrangePropertySetInConstructor()802		{803			var expected = "name";804			var item = Mock.Create<Item>(() => new Item(expected));805			Assert.Equal(expected, item.Name);806		}807		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]808		public void ShouldTakeOutValueFromDoInteadWhenDefinedWithCustomDelegate()809		{810			int outArg = 1;811			var mock = Mock.Create<DoInsteadWithCustomDelegate>();812			Mock.Arrange(() => mock.Do(0, ref outArg)).DoInstead(new RefAction<int, int>((int i, ref int arg2) => { arg2 = 2; }));813			mock.Do(0, ref outArg);814			Assert.Equal(2, outArg);815		}816		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]817		public void ShouldCheckMethodOverloadsWhenResolvingInterfaceInheritance()818		{819			var project = Mock.Create<IProject>();820			Assert.NotNull(project);821		}822		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]823		public void PropertySetShouldThrowExceptionWhenNameHasSet_Literal()824		{825			var b_object = Mock.Create<B>();826			Mock.ArrangeSet<B>(() => b_object.b_string_set_get = string.Empty).DoNothing().MustBeCalled();827			b_object.b_string_set_get = string.Empty;828			Mock.Assert(b_object);829		}830		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]831		public void ShouldNotAffectAssertionForInvalidAsserts()832		{833			var foo = Mock.Create<IFoo>();834			Guid goodGuid = Guid.NewGuid();835			Guid badGuid = Guid.NewGuid();836			Mock.Arrange(() => foo.CallMeOnce(true, goodGuid)).OccursOnce();837			foo.CallMeOnce(true, goodGuid);838			Mock.Assert(() => foo.CallMeOnce(true, badGuid), Occurs.Never());839			Mock.Assert(() => foo.CallMeOnce(true, Guid.Empty), Occurs.Never());840			Mock.Assert(() => foo.CallMeOnce(true, goodGuid), Occurs.Once());841			Mock.Assert(() => foo.CallMeOnce(false, badGuid), Args.Ignore(), Occurs.Once());842			Mock.Assert(() => foo.CallMeOnce(Arg.AnyBool, badGuid), Occurs.Never());843			Mock.Assert(() => foo.CallMeOnce(Arg.IsAny<bool>(), badGuid), Occurs.Never());844		}845		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]846		public void ShouldEqualityCheckForMockFromAnInterfaceThatHasEquals()847		{848			IRule mockRule1 = Mock.Create<IRule>();849			List<IRule> ruleList = new List<IRule>();850			Assert.False(ruleList.Contains(mockRule1));851			ruleList.Add(mockRule1);852			Assert.True(ruleList.Contains(mockRule1));853		}854		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]855		public void ShouldAssertMethodWithKeyValuePairTypeArgument()856		{857			var presenter = Mock.Create<InteractiveKioskPresenter>(Behavior.CallOriginal);858			var key = Mock.Create<IKioskPart>();859			var val = Mock.Create<IKioskWellInfo>();860			presenter.ShowControl(new KeyValuePair<IKioskPart, IKioskWellInfo>(key, val));861		}862		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]863		public void ShouldAssertMethodWithStructTypeArgument()864		{865			var presenter = Mock.Create<InteractiveKioskPresenter>(Behavior.CallOriginal);866			Size size = new Size();867			presenter.DrawRect(size);868		}869		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]870		public void ShouldParsePrimitiveParamsArrayCorrectly()871		{872			var foo = Mock.Create<IFoo>();873			Mock.Arrange(() => foo.SubmitWithParams(Arg.AnyInt)).MustBeCalled();874			foo.SubmitWithParams(10);875			Mock.Assert(foo);876		}877		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]878		public void ShouldAssertCorrectMethodWhenDifferentArgumentsPassedForParamSetup()879		{880			var foo = Mock.Create<IFoo>();881			Mock.Arrange(() => foo.SubmitWithParams(10)).OccursOnce();882			foo.SubmitWithParams(10);883			foo.SubmitWithParams(10, 11);884			Mock.Assert(foo);885		}886		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]887		public void ShouldAssertOccursForIndexedPropertyWithDifferentArguments()888		{889			var foo = Mock.Create<Foo>();890			string expected = "string";891			Mock.Arrange(() => foo.Baz["Test"]).Returns(expected);892			Mock.Arrange(() => foo.Baz["TestName"]).Returns(expected);893			Assert.Equal(expected, foo.Baz["Test"]);894			Assert.Equal(expected, foo.Baz["TestName"]);895			Mock.Assert(() => foo.Baz["Test"], Occurs.Once());896			Mock.Assert(() => foo.Baz["TestName"], Occurs.Once());897		}898		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]899		public void ShouldNotSkipBaseInterfaceWhenSomeMembersAreSame()900		{901			var loanString = Mock.Create<ILoanStringField>();902			Assert.NotNull(loanString);903		}904		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]905		public void ShouldAssertParamsArrayAsArrayBasedOnArgument()906		{907			string value1 = "Hello";908			string value2 = "World";909			var session = Mock.Create<IMockable>();910			Mock.Arrange(() => session.Get<string>(Arg.Matches<string[]>(v => v.Contains("Lol") &&911													 v.Contains("cakes"))))912				.Returns(new[]913				 {914					 value1,915					 value2,916				 });917			var testValues = new[]{918						 "Lol",919						 "cakes"920					 };921			var result = session.Get<string>(testValues);922			Assert.Equal(value1, result[0]);923			Assert.Equal(value2, result[1]);924		}925		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]926		public void ShouldNotInitRescursiveMockingWithProfilerForProperyThatReturnsMock()927		{928			WorkerHelper helper = new WorkerHelper();929			helper.Arrange();930			helper.Worker.Echo("hello");931		}932		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]933		public void ShouldAssertMockWithEnumArgumentWithUnderlyingTypeOtherThanInt()934		{935			var subdivisionTypeCode = SubdivisionTypeCode.City;936			var subdivisionTypeRepository = Mock.Create<ISubdivisionTypeRepository>();937			Mock.Arrange(() => subdivisionTypeRepository.Get(subdivisionTypeCode)).Returns((SubdivisionTypeCode subDivision) =>938			{939				return subDivision.ToString();940			});941			var result = subdivisionTypeRepository.Get(subdivisionTypeCode);942			Assert.Equal(result, subdivisionTypeCode.ToString());943			Mock.AssertAll(subdivisionTypeRepository);944		}945		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]946		public void ShouldAssertMockWithNullableValueTypeArg()947		{948			FooNullable foo = Mock.Create<FooNullable>();949			var now = DateTime.Now;950			Mock.Arrange(() => foo.ValideDate(now)).MustBeCalled();951			foo.ValideDate(now);952			Mock.Assert(foo);953		}954		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]955		public void ShouldAssertMockWithNullForNullableValueTypeArg()956		{957			FooNullable foo = Mock.Create<FooNullable>();958			Mock.Arrange(() => foo.ValideDate(null)).MustBeCalled();959			foo.ValideDate(null);960			Mock.Assert(foo);961		}962		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]963		public void ShouldAssertCallOriginalForAbstractClass()964		{965			Assert.NotNull(Mock.Create<TestTreeItem>(Behavior.CallOriginal));966		}967		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]968		public void ShouldCallBaseWhenCallOriginalSpecifiedForMock()969		{970			var item = Mock.Create<TestTreeItem>(Behavior.CallOriginal);971			var result = ((IComparable)item).CompareTo(10);972			Assert.Equal(1, result);973		}974		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]975		public void ShouldArrangeBothInterfaceMethodAndImplementation()976		{977			var mock = Mock.Create<FrameworkElement>() as ISupportInitialize;978			bool implCalled = false;979			Mock.Arrange(() => mock.Initialize()).DoInstead(() => implCalled = true).MustBeCalled();980			mock.Initialize();981			Assert.True(implCalled);982			Mock.Assert(() => mock.Initialize());983		}984		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]985		public void ShouldArrangeBothBaseAndOverriddenMethod()986		{987			var mock = Mock.Create<Control>() as FrameworkElement;988			bool implCalled = false;989			Mock.Arrange(() => mock.Initialize()).DoInstead(() => implCalled = true);990			mock.Initialize();991			Assert.True(implCalled);992			Mock.Assert(() => mock.Initialize());993			Mock.Assert(() => ((ISupportInitialize)mock).Initialize());994		}995		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]996		public void ShouldArrangeBaseMethodInManyImplementations()997		{998			var fe = Mock.Create<FrameworkElement>();999			var control = Mock.Create<Control>();1000			int calls = 0;1001			Mock.Arrange(() => (null as ISupportInitialize).Initialize()).DoInstead(() => calls++);1002			fe.Initialize();1003			Assert.Equal(1, calls);1004			control.Initialize();1005			Assert.Equal(2, calls);1006		}1007		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]1008		public void ShouldAssertMethodAtAllHierarchyLevels()1009		{1010			var control = Mock.Create<Control>();1011			control.Initialize();1012			Mock.Assert(() => control.Initialize(), Occurs.Once());1013			Mock.Assert(() => (control as FrameworkElement).Initialize(), Occurs.Once());1014			Mock.Assert(() => (control as ISupportInitialize).Initialize(), Occurs.Once());1015		}1016		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]1017		public void ShouldArrangeBaseMethodInManyImplementationsForProperty()1018		{1019			var fe = Mock.Create<FrameworkElement>();1020			var control = Mock.Create<Control>();1021			int calls = 0;1022			Mock.Arrange(() => (null as ISupportInitialize).Property).DoInstead(() => calls++);1023			var property = fe.Property;1024			Assert.Equal(1, calls);1025			property = control.Property;1026			Assert.Equal(2, calls);1027		}1028		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]1029		public void ShouldAssertMethodAtAllHierarchyLevelsForProperty()1030		{1031			var control = Mock.Create<Control>();1032			var property = control.Property;1033			Mock.Assert(() => control.Property, Occurs.Once());1034			Mock.Assert(() => (control as FrameworkElement).Property, Occurs.Once());1035			Mock.Assert(() => (control as ISupportInitialize).Property, Occurs.Once());1036		}1037		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]1038		public void ShouldArrangeInheritableMemberOfExplicitlySpecifiedType()1039		{1040			var ident = Mock.Create<IIdentifiable>();1041			Mock.Arrange<IIdentifiable, int>(new Func<int>(() => ident.Id)).Returns(15);1042			Assert.Equal(15, ident.Id);1043		}1044#if !SILVERLIGHT1045		[TestMethod, TestCategory("Elevated"), TestCategory("Lite"), TestCategory("Mock")]1046		public void ShouldNotCreateProxyIfNotNecessary()1047		{1048			var mock = Mock.Create<Poco>();1049			Mock.Arrange(() => mock.Data).Returns(10);1050			Assert.Equal(10, mock.Data);1051			if (Mock.IsProfilerEnabled)1052				Assert.Same(typeof(Poco), mock.GetType());1053		}1054#elif !LITE_EDITION1055		[TestMethod, TestCategory("Elevated"), TestCategory("Mock")]1056		public void ShouldNotCreateProxyIfNotNecessary()1057		{1058			var mock = Mock.Create<Poco>(Constructor.Mocked);1059			Mock.Arrange(() => mock.Data).Returns(10);1060			Assert.Equal(10, mock.Data);1061			Assert.Same(typeof(Poco), mock.GetType());1062		}1063#endif1064#if LITE_EDITION && !COREFX1065		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]1066		public void MockInternalMembersWithoutExplicitlyGivenVisibilitySentinel()1067		{1068			Assert.Throws<MockException>(() => Mock.Create<InvisibleInternal>());1069		}1070#endif1071		public class Poco // should be inheritable but shouldn't be abstract1072		{1073			public virtual int Data { get { return 0; } }1074		}1075		public interface IIdentifiable1076		{1077			int Id { get; }1078		}1079		public interface ISupportInitialize1080		{1081			void Initialize();1082			string Property { get; }1083		}1084		public abstract class FrameworkElement : ISupportInitialize1085		{1086			public abstract void Initialize();1087			public abstract string Property { get; set; }1088		}1089		public abstract class Control : FrameworkElement1090		{1091			public override void Initialize()1092			{1093				throw new NotImplementedException();1094			}1095			public override string Property1096			{1097				get1098				{1099					throw new NotImplementedException();1100				}1101				set1102				{1103					throw new NotImplementedException();1104				}1105			}1106		}1107		public abstract class TestTreeItem : IComparable1108		{1109			int IComparable.CompareTo(object obj)1110			{1111				return 1;1112			}1113		}1114		public class FooNullable1115		{1116			public virtual void ValideDate(DateTime? date)1117			{1118			}1119		}1120		public enum SubdivisionTypeCode : byte1121		{1122			None = 255,1123			State = 0,1124			County = 1,1125			City = 2,1126		}1127		public interface ISubdivisionTypeRepository1128		{1129			string Get(SubdivisionTypeCode subdivisionTypeCode);1130		}1131		public class WorkerHelper1132		{1133			public IWorker TheWorker { get; private set; }1134			public WorkerHelper()1135			{1136				this.TheWorker = Mock.Create<IWorker>(Behavior.Strict);1137			}1138			public IWorker Worker1139			{1140				get1141				{1142					return this.TheWorker;1143				}1144			}1145			public void Arrange()1146			{1147				Mock.Arrange(() => this.TheWorker.Echo(Arg.AnyString)).DoNothing();1148			}1149		}1150		public interface IWorker1151		{1152			void Echo(string value);1153		}1154		public interface IMockable1155		{1156			T[] Get<T>(params string[] values);1157		}1158		public interface ILoanStringField : ILoanField1159		{1160			string Value { get; set; }1161		}1162		public interface ILoanField1163		{1164			void ClearValue();1165			object Value { get; set; }1166		}1167		public interface IKioskPart1168		{1169		}1170		public interface IKioskWellInfo1171		{1172		}1173		public class InteractiveKioskPresenter1174		{1175			public virtual void ShowControl(KeyValuePair<IKioskPart, IKioskWellInfo> kPart)1176			{1177			}1178			public virtual void DrawRect(Size size)1179			{1180			}1181		}1182		public struct Size1183		{1184		}1185		public interface IRule1186		{1187			bool Equals(object obj);1188		}1189		public class B1190		{1191			public string b_string = null;1192			public virtual string b_string_set_get { get { return b_string; } set { b_string = value; } }1193		}1194		public interface IProject : IProjectItemContainer1195		{1196			IEnumerable<IProjectItem> Items { get; }1197			void AddChild();1198		}1199		public interface IProjectItem : IProjectItemContainer1200		{1201		}1202		public interface IProjectItemContainer : IDocumentItemContainer<IProjectItem>1203		{1204			bool CanAddChild { get; }1205		}1206		public interface IDocumentItemContainer : IDocumentItem1207		{1208			IEnumerable<IDocumentItem> Children { get; }1209		}1210		public interface IDocumentItemContainer<T> : IDocumentItemContainer1211		where T : IDocumentItem1212		{1213			IEnumerable<T> Children { get; }1214			void AddChild(T child);1215			void RemoveChild(T child);1216		}1217		public interface IDocumentItem1218		{1219		}1220		public delegate void RefAction<T1, T2>(T1 arg1, ref T2 arg2);1221		public class DoInsteadWithCustomDelegate1222		{1223			public virtual void Do(int k, ref int j)1224			{1225			}1226		}1227		public class ClassWithLongMethod1228		{1229			public virtual long AddOne(long number)1230			{1231				return number + 1;1232			}1233		}1234		public class BookService1235		{1236			private IBookRepository repository;1237			public BookService(IBookRepository repository)1238			{1239				this.repository = repository;1240			}1241			public Book GetSingleBook(int id)1242			{1243				return repository.GetWhere(book => book.Id == id);1244			}1245		}1246		public interface IBookRepository1247		{1248			Book GetWhere(Expression<Func<Book, bool>> expression);1249		}1250		public class Book1251		{1252			public int Id { get; private set; }1253			public string Title { get; set; }1254		}1255		#region Syntax Integrity1256		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]1257		public void ShouldBeAbleToInvokeMustBeCalledWithIgnoreArguments()1258		{1259			var foo = Mock.Create<Foo>();1260			Mock.Arrange(() => foo.Execute(0)).IgnoreArguments().MustBeCalled();1261			foo.Execute(10);1262			Mock.Assert(foo);1263		}1264		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]1265		public void ShouldBeAbleToUseMuseBeCalledAfterIgnoreFoFunc()1266		{1267			var foo = Mock.Create<Foo>();1268			Mock.Arrange(() => foo.Echo(0)).IgnoreArguments().MustBeCalled();1269			foo.Echo(10);1270			Mock.Assert(foo);1271		}1272		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]1273		public void ShouldBeAbleToDoDoNothingForNonVoidCalls()1274		{1275			var foo = Mock.Create<Foo>();1276			Mock.Arrange(() => foo.Echo(Arg.AnyInt)).DoNothing();1277			foo.Echo(10);1278		}1279		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]1280		public void ShouldBeAbleToSpecifyOccursAfterReturns()1281		{1282			var foo = Mock.Create<Foo>();1283			Mock.Arrange(() => foo.Echo(Arg.AnyInt))1284				.Returns(10)1285				.Occurs(1);1286			foo.Echo(10);1287			Mock.Assert(foo);1288		}1289		internal abstract class FooAbstract1290		{1291			protected internal abstract bool TryCreateToken(string literal);1292		}1293		internal abstract class FooAbstract2 : FooAbstract1294		{1295		}1296		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]1297		public void ShouldAsssertMockHavingInternalAbstractBaseMethod()1298		{1299			var foo = Mock.Create<FooAbstract2>();1300			foo.TryCreateToken(string.Empty);1301		}1302		#endregion1303		public interface ISession1304		{1305			ICriteria CreateCriteria<T>() where T : class;1306			ICriteria CreateCriteria(string entityName);1307			ICriteria CreateCriteria<T>(string alias) where T : class;1308			ICriteria CreateCriteria(System.Type persistentClass);1309			ICriteria CreateCriteria(string entityName, string alias);1310			ICriteria CreateCriteria(System.Type persistentClass, string alias);1311		}1312		[TestMethod, TestCategory("Lite"), TestCategory("Mock")]1313		public void ShouldNotTryToWeaveMethodInSilverlightRuntime()1314		{1315			var foo = Mock.Create<FooSilver>();1316			Assert.NotNull(foo);1317		}1318		public interface ICloneable1319		{1320			object Clone();1321		}1322		public abstract class FooSilver1323		{1324			public void Do()1325			{1326			}1327		}1328#if LITE_EDITION1329		[TestMethod]1330		public void ShouldThrowMockExceptionWhenTryingToMockFinalMethod()1331		{1332			var mock = Mock.Create<Bar>();1333			Assert.Throws<MockException>(() => Mock.Arrange(() => mock.Submit()).DoNothing());1334		}1335		public class Bar1336		{1337			public void Submit()1338			{1339			}1340		}1341#endif1342		#region Test Insfrastructure1343		public class Foo1344		{1345			public virtual void Execute(int arg1)1346			{1347			}1348			public virtual int Echo(int arg1)1349			{1350				return arg1;1351			}1352			public virtual Baz Baz { get; set; }1353		}1354		public class Baz1355		{1356			public virtual string this[string key]1357			{1358				get1359				{1360					return null;1361				}1362			}1363		}1364		public class FooParam1365		{1366			public virtual int GetDevicesInLocations(int arg1, bool bExclude, params MesssageBox[] box)1367			{1368				return default(int);1369			}1370			public virtual string FormatWith(string format, params object[] args)1371			{1372				return string.Empty;1373			}1374		}1375		public class MesssageBox1376		{1377		}1378		public enum ExpressionNodeType1379		{1380			Constant,1381			Binary1382		}1383		public abstract class ExpressionNode1384		{1385			public abstract ExpressionNodeType NodeType { get; }1386		}1387		public class RealItem1388		{1389			public RealItem()1390			{1391			}1392			public RealItem(int num)1393			{1394			}1395			public RealItem(string text, params int[] args)1396			{1397				if (args.Length == 0 || string.IsNullOrEmpty(text))1398				{1399					throw new ArgumentException();1400				}1401				this.text = text;1402				this.args = args;1403			}1404			public string Text1405			{1406				get1407				{1408					return text;1409				}1410			}1411			public int[] Args1412			{1413				get1414				{1415					return args;1416				}1417			}1418			public string text;1419			private int[] args;1420		}1421		public class RealItem21422		{1423			public RealItem2(int num, string str)1424			{1425			}1426		}1427		public class Item1428		{1429			public virtual string Name { get; set; }1430			public Item(string name)1431			{1432				Name = name;1433			}1434		}1435		public class FooGeneric<T>1436		{1437			public virtual T Get<T1, T2>(T1 p1, T2 p2)1438			{1439				return default(T);1440			}1441			public virtual void Execute<T1>(T1 arg)1442			{1443				throw new Exception();1444			}1445		}1446		public class FooGeneric1447		{1448			public virtual TRet Get<T, TRet>(T arg1)1449			{1450				return default(TRet);1451			}1452			public virtual TRet Execute<T1, TRet>(out T1 arg1)1453			{1454				arg1 = default(T1);1455				object[] args = new object[1];1456				args[0] = arg1;1457				return default(TRet);1458			}1459			public virtual int Get<T1>()1460			{1461				throw new NotImplementedException();1462			}1463		}1464		public class FooWithInternalConstruct1465		{1466			internal FooWithInternalConstruct()1467			{1468			}1469			public virtual void Execute()1470			{1471				throw new ArgumentException();1472			}1473		}1474		public class Nested1475		{1476			public int expected;1477			public int expeted1;1478		}1479		class FooService : IFooService { }1480		interface IFooService { }1481		public interface ICriteria1482		{1483		}1484		public interface IFoo1485		{1486			string Execute(string arg);1487			void JustCall();1488			void Execute(Guid guid);1489			void Execute(bool flag, Guid guid);1490			void Execute(out int expected);1491			void Execute(out DateTime date);1492			IFoo GetFoo();1493			int Echo(int arg1);1494			int Echo(int arg1, int arg2);1495			int Echo(int arg1, int arg2, int arg3);1496			int Echo(int arg1, int arg2, int arg3, int arg4);1497			void Submit(int arg1);1498			void Submit(int arg1, int arg2);1499			void Submit(int arg1, int arg2, int arg3);1500			void Submit(int arg1, int arg2, int arg3, int arg4);1501			void Submit(byte[] arg);1502			void SubmitWithParams(params int[] args);1503			void CallMeOnce(bool flag, Guid guid);1504			bool FindOne(params ICriteria[] criteria);1505		}1506		public interface IBar1507		{1508			int Echo(int value);1509			int Value { get; set; }1510		}1511		public interface IFooImplemted : IFoo1512		{1513		}1514		public class CustomExepction : Exception1515		{1516			public CustomExepction(string message, bool throwed)1517				: base(message)1518			{1519			}1520		}1521		public class Log1522		{1523			public virtual void Info(string message)1524			{1525				throw new Exception(message);1526			}1527		}1528		public abstract class FooBase1529		{1530			public virtual string GetString(string inString)1531			{1532				return inString;1533			}1534			public virtual Guid GetGuid()1535			{1536				return default(Guid);1537			}1538			public virtual int Echo(int arg1)1539			{1540				return arg1;1541			}1542			public virtual void ThrowException()1543			{1544				throw new InvalidOperationException("This should throw expection.");1545			}1546		}1547		public class FooChild : FooBase1548		{1549		}1550		public class FooOverridesEquals1551		{1552			public FooOverridesEquals(string name)1553			{1554				this.name = name;1555			}1556			public override bool Equals(object obj)1557			{1558				return (obj is FooOverridesEquals) &&1559					((FooOverridesEquals)obj).name == this.name;1560			}1561			public override int GetHashCode()1562			{1563				if (!string.IsNullOrEmpty(name))1564				{1565					return name.GetHashCode();1566				}1567				return base.GetHashCode();1568			}1569			private string name;1570		}1571		public interface IParams1572		{1573			string ExecuteByName(int index, params string[] args);1574			string ExecuteParams(params string[] args);1575			string ExecuteArray(string[] args);1576			string ExecuteArrayWithString(string arg1, Dictionary<string, object> dic);1577		}1578		public class ClassNonDefaultGuidConstructor1579		{1580			public ClassNonDefaultGuidConstructor(Guid guidValue)1581			{1582				this.guidValue = guidValue;1583			}1584			public Guid guidValue;1585		}1586		public class ClassWithNonDefaultConstructor1587		{1588			internal ClassWithNonDefaultConstructor()1589			{1590			}...NonPublicFixture.cs
Source:NonPublicFixture.cs  
...68		{69			var foo = Mock.Create<Foo>(Behavior.CallOriginal);70			bool called = false;71			Mock.NonPublic72				.Arrange(foo, "ExecuteProtected", Arg.Expr.IsAny<int>(), Arg.Expr.IsNull<Foo>())73				.DoInstead(() => called = true);74			foo.Execute(10, null);75			Assert.True(called);76		}77		[TestMethod, TestCategory("Lite"), TestCategory("NonPublic")]78		public void ShouldMockOverloadUsingConcreteValues()79		{80			var foo = Mock.Create<Foo>(Behavior.CallOriginal);81			bool called = false, called2 = false;82			Mock.NonPublic83				.Arrange(foo, "ExecuteProtected", 10, Arg.Expr.IsNull<FooDerived>())84				.DoInstead(() => called = true);85			Mock.NonPublic86				.Arrange(foo, "ExecuteProtected", Arg.Expr.IsNull<FooDerived>(), 10)87				.DoInstead(() => called2 = true);88			foo.Execute(10, null);89			foo.Execute(null, 10);90			Assert.True(called);91			Assert.True(called2);92		}93		[TestMethod, TestCategory("Lite"), TestCategory("NonPublic")]94		public void ShouldThrowArgumentExpectionForNullArguments()95		{96			var foo = Mock.Create<Foo>(Behavior.CallOriginal);97			Assert.Throws<ArgumentException>(() => Mock.NonPublic.Arrange(foo, "ExecuteProtected", 0, null));98		}99		[TestMethod, TestCategory("Lite"), TestCategory("NonPublic")]100		public void ShouldAssertNonPublicActions()101		{102			var foo = Mock.Create<Foo>(Behavior.CallOriginal);103			Mock.NonPublic.Arrange(foo, "ExecuteProtected", 10);104			foo.Execute(10);105			// assert if called as expected.106			Mock.NonPublic.Assert(foo, "ExecuteProtected", 10);107		}108		[TestMethod, TestCategory("Lite"), TestCategory("NonPublic")]109		public void ShouldAssertNonPublicFunctions()110		{111			var foo = Mock.Create<Foo>(Behavior.CallOriginal);112			Mock.NonPublic.Arrange<int>(foo, "IntValue").Returns(10);113			foo.GetMultipleOfIntValue();114			Mock.NonPublic.Assert<int>(foo, "IntValue");115		}116		[TestMethod, TestCategory("Lite"), TestCategory("NonPublic")]117		public void ShouldThrowForAssertingCallsThatWereNotInvoked()118		{119			var foo = Mock.Create<Foo>(Behavior.CallOriginal);120			Mock.NonPublic.Arrange(foo, "ExecuteProtected", 10);121			// assert if called as expected.122			Assert.Throws<AssertionException>(() => Mock.NonPublic.Assert(foo, "ExecuteProtected", 10));123		}124		[TestMethod, TestCategory("Lite"), TestCategory("NonPublic")]125		public void ShouldAssertOccrenceForNonPublicFunction()126		{127			var foo = Mock.Create<Foo>(Behavior.CallOriginal);128			Mock.NonPublic.Assert<int>(foo, "IntValue", Occurs.Never());129		}130		[TestMethod, TestCategory("Lite"), TestCategory("NonPublic")]131		public void ShouldAssertOccurenceForNonPublicAction()132		{133			var foo = Mock.Create<Foo>(Behavior.CallOriginal);134			Mock.NonPublic.Arrange(foo, "ExecuteProtected", 10);135			foo.Execute(10);136			Mock.NonPublic.Assert(foo, "ExecuteProtected", Occurs.Exactly(1), 10);137		}138		[TestMethod, TestCategory("Lite"), TestCategory("NonPublic")]139		public void ShouldThrowMissingMethodExceptionForMethodSpecification()140		{141			var foo = Mock.Create<Foo>(Behavior.CallOriginal);142			Assert.Throws<MissingMemberException>(() => Mock.NonPublic.Arrange(foo, "ExecuteProtected"));143		}144#if !SILVERLIGHT145		[TestMethod, TestCategory("Lite"), TestCategory("NonPublic")]146		public void ShouldCreateMockFromClassHavingAbstractInternalMethodInBase()147		{148			var foo = Mock.Create<FooAbstract2>();149			foo.TryCreateToken(string.Empty);150		}151		[TestMethod, TestCategory("Lite"), TestCategory("NonPublic")]152		public void ShouldMockTypeWithInternalCtorWhenInternalVisibleToIsApplied()153		{154			// Provided that InternalsVisibleTo attribute is included in assemblyinfo.cs.155			var foo = Mock.Create<FooInternal>(Behavior.CallOriginal);156			Assert.NotNull(foo.Builder);157		}158		[TestMethod, TestCategory("Lite"), TestCategory("NonPublic")]159		public void ShouldAssertNonPublicMethodFromBase()160		{161			var baz = Mock.Create<Baz>(Behavior.CallOriginal);162			const string targetMethod = "MethodToMock";163			Mock.NonPublic.Arrange(baz, targetMethod).DoNothing();164			baz.MethodToTest();165			Mock.NonPublic.Assert(baz, targetMethod);166		}167#if !PORTABLE168		[TestMethod, TestCategory("Lite"), TestCategory("NonPublic")]169		public void ShouldAssertNonPublicCallWhenOccurrenceIsApplied()170		{171			var baz = Mock.Create<Bar>(Behavior.CallOriginal);172			const string targetMethod = "MethodToMock";173			Mock.NonPublic.Arrange(baz, targetMethod).OccursOnce();174			baz.GetType().GetMethod(targetMethod, BindingFlags.NonPublic | BindingFlags.Instance).Invoke(baz, null);175			Mock.NonPublic.Assert(baz, targetMethod);176		}177		[TestMethod, TestCategory("Lite"), TestCategory("NonPublic"), TestCategory("Assertion")]178		public void ShouldGetTimesCalledOfNonPublicMethod()179		{180			var mock = Mock.Create<Bar>();181			Mock.NonPublic.MakePrivateAccessor(mock).CallMethod("MethodToMock");182			Assert.Equal(1, Mock.NonPublic.GetTimesCalled(mock, "MethodToMock"));183			Assert.Equal(1, Mock.NonPublic.GetTimesCalled(mock, typeof(Bar).GetMethod("MethodToMock", BindingFlags.NonPublic | BindingFlags.Instance)));184		}185#endif186		public class Bar187		{188			protected virtual void MethodToMock()189			{190				throw new ArgumentException("Base method Invoked");191			}192		}193		public class Baz : Bar194		{195			public virtual void MethodToTest()196			{197				MethodToMock();198			}199		}200		internal class FooInternal201		{202			internal FooInternal()203			{204				builder = new StringBuilder();205			}206			public StringBuilder Builder207			{208				get209				{210					return builder;211				}212			}213			private StringBuilder builder;214		}215#endif216		internal abstract class FooAbstract217		{218			protected internal abstract bool TryCreateToken(string literal);219		}220		internal abstract class FooAbstract2 : FooAbstract221		{222		}223		public class Foo224		{225			protected virtual void ExecuteProtected(Foo foo, int arg1)226			{227				throw new NotImplementedException();228			}229			protected virtual void ExecuteProtected(int arg1, Foo foo)230			{231				throw new NotImplementedException();232			}233			protected virtual void ExecuteProtected(int arg1)234			{235				throw new NotImplementedException();236			}237			public virtual void Execute(int arg1)238			{239				ExecuteProtected(arg1);240			}241			public virtual void Execute(int arg1, Foo foo)242			{243				ExecuteProtected(arg1, foo);244			}245			public virtual void Execute(Foo foo, int arg1)246			{247				ExecuteProtected(foo, arg1);248			}249			protected virtual void Load()250			{251				throw new NotImplementedException();252			}253			protected virtual int IntValue254			{255				get256				{257					throw new NotImplementedException();258				}259			}260			public virtual void Init()261			{262				Load();263			}264			public virtual int GetMultipleOfIntValue()265			{266				return IntValue * 2;267			}268		}269		public class FooDerived : Foo270		{271		}272		public class RefTest273		{274			protected virtual void Test(string arg1, ref string asd)275			{276			}277			public void ExecuteTest(ref string asd)278			{279				this.Test("test1", ref asd);280			}281		}282		[TestMethod, TestCategory("Lite"), TestCategory("NonPublic")]283		public void ShouldArrangeNonPublicUsingByRefArgumentWithMatcher()284		{285			var foo = Mock.Create<RefTest>(Behavior.CallOriginal);286			Mock.NonPublic.Arrange(foo, "Test", Arg.Expr.IsAny<string>(), Arg.Expr.Ref(Arg.Expr.IsAny<string>())).MustBeCalled();287			string asd = "asd";288			foo.ExecuteTest(ref asd);289			Mock.Assert(foo);290		}291		[TestMethod, TestCategory("Lite"), TestCategory("NonPublic")]292		public void ShouldArrangeNonPublicUsingByRefArgumentWithConstant()293		{294			int call = 1;295			int callA = 0, callB = 0;296			var foo = Mock.Create<RefTest>(Behavior.CallOriginal);297			Mock.NonPublic.Arrange(foo, "Test", Arg.Expr.IsAny<string>(), Arg.Expr.Ref(Arg.Expr.IsAny<string>())).DoInstead(() => callB = call++);298			Mock.NonPublic.Arrange(foo, "Test", Arg.Expr.IsAny<string>(), Arg.Expr.Ref("asd")).DoInstead(() => callA = call++);299			string input = "asd";300			foo.ExecuteTest(ref input);301			input = "foo";302			foo.ExecuteTest(ref input);303			Assert.Equal(1, callA);304			Assert.Equal(2, callB);305		}306		[TestMethod, TestCategory("Lite"), TestCategory("NonPublic")]307		public void ShouldArrangeNonPublicUsingByRefArgumentAsOutputParameter()308		{309			var foo = Mock.Create<RefTest>(Behavior.CallOriginal);310			Mock.NonPublic.Arrange(foo, "Test", Arg.Expr.IsAny<string>(), Arg.Expr.Out("asd"));311			string input = "";312			foo.ExecuteTest(ref input);313			Assert.Equal("asd", input);314		}315		[TestMethod, TestCategory("Lite"), TestCategory("NonPublic")]316		public void ShouldNotArrangeNonPublicUsingConstantArgumentWhereByRefIsExpected()317		{318			var foo = Mock.Create<RefTest>(Behavior.CallOriginal);319			Assert.Throws<MissingMemberException>(() => Mock.NonPublic.Arrange(foo, "Test", Arg.Expr.IsAny<string>(), "asd"));320		}321		public abstract class WeirdSignature322		{323			protected abstract int Do(int a, string b, ref object c, IEnumerable<int> d);324			protected abstract void Do(bool b);325			protected abstract DateTime Do(DateTime dateTime);326			protected static void Do(int d) { }...MatchersFixture.cs
Source:MatchersFixture.cs  
...246		{247			string expected = "bar";248			string argument = "foo";249			var target = Mock.Create<IParams>();250			Mock.Arrange(() => target.ExecuteArray(new string[] { argument, "baz" })).Returns(expected);251			string ret = target.ExecuteArray(new string[] { argument, "baz" });252			Assert.Equal(expected, ret);253			Mock.Arrange(() => target.ExecuteArray(new List<string> { argument, "baz" })).Returns(expected);254			ret = target.ExecuteArray(new List<string> { argument, "baz" });255			Assert.Equal(expected, ret);256		}257		[TestMethod, TestCategory("Lite"), TestCategory("Matchers")]258		public void ShouldMatchUserDefinedColletionArgumentsByReference()259		{260			var target = Mock.Create<IParams>();261			var s1 = new StringVector();262			var s2 = new StringVector();263			Mock.Arrange(() => target.ExecuteArray(s1)).Returns("1");264			Mock.Arrange(() => target.ExecuteArray(s2)).Returns("2");265			Assert.Equal("1", target.ExecuteArray(s1));266			Assert.Equal("2", target.ExecuteArray(s2));267		}268		[TestMethod, TestCategory("Lite"), TestCategory("Matchers")]269		public void ShouldNotMatchUserDefinedColletionArgumentsWithBuiltinCollectionElementwise()270		{271			var target = Mock.Create<IParams>();272			var s1 = new StringVector();273			Mock.Arrange(() => target.ExecuteArray(s1)).Returns("1");274			Assert.Equal("", target.ExecuteArray(new string[0]));275		}276		public class StringVector : ICollection<string>277		{278			#region ICollection<string>279			public void Add(string item)280			{281				throw new InvalidOperationException();282			}283			public void Clear()284			{285				throw new InvalidOperationException();286			}287			public bool Contains(string item)288			{289				throw new InvalidOperationException();290			}291			public void CopyTo(string[] array, int arrayIndex)292			{293				throw new InvalidOperationException();294			}295			public int Count296			{297				get { throw new InvalidOperationException(); }298			}299			public bool IsReadOnly300			{301				get { throw new InvalidOperationException(); }302			}303			public bool Remove(string item)304			{305				throw new InvalidOperationException();306			}307			public IEnumerator<string> GetEnumerator()308			{309				throw new InvalidOperationException();310			}311			System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()312			{313				throw new InvalidOperationException();314			}315			#endregion316		}317		public interface IParams318		{319			string ExecuteArray(IEnumerable<string> arg);320		}321		public class Entity322		{323			public string Prop1 { get; set; }324			public string Prop2 { get; set; }325		}326		public interface IEchoer327		{328			object Echo(object a);329		}330		public class Echoer : IEchoer331		{332			public object Echo(object a)333			{...Execute
Using AI Code Generation
1{2    {3        {4            return Telerik.JustMock.Tests.Baz.Instance;5        }6    }7}Execute
Using AI Code Generation
1using Telerik.JustMock.Tests;2{3    public Foo()4    {5        var baz = new Baz();6        baz.Execute();7    }8}9using Telerik.JustMock.Tests;10{11    public Foo()12    {13        var baz = new Baz();14        baz.Execute();15    }16}17using Telerik.JustMock.Tests;18{19    public Foo()20    {21        var baz = new Baz();22        baz.Execute();23    }24}25using Telerik.JustMock.Tests;26{27    public Foo()28    {29        var baz = new Baz();30        baz.Execute();31    }32}33using Telerik.JustMock.Tests;34{35    public Foo()36    {37        var baz = new Baz();38        baz.Execute();39    }40}41using Telerik.JustMock.Tests;42{43    public Foo()44    {45        var baz = new Baz();46        baz.Execute();47    }48}49using Telerik.JustMock.Tests;50{51    public Foo()52    {53        var baz = new Baz();54        baz.Execute();55    }56}57using Telerik.JustMock.Tests;58{59    public Foo()60    {61        var baz = new Baz();62        baz.Execute();63    }64}65using Telerik.JustMock.Tests;66{67    public Foo()68    {69        var baz = new Baz();70        baz.Execute();71    }72}Execute
Using AI Code Generation
1var baz = Mock.Create<Baz>();2Mock.Arrange(() => baz.Execute()).Returns(1);3var result = baz.Execute();4Assert.AreEqual(1, result);5var baz = Mock.Create<Baz>();6Mock.Arrange(() => baz.Execute()).Returns(2);7var result = baz.Execute();8Assert.AreEqual(2, result);9var baz = Mock.Create<Baz>();10Mock.Arrange(() => baz.Execute()).Returns(1);11var result = baz.Execute();12Assert.AreEqual(1, result);13Mock.Reset(baz);14var baz = Mock.Create<Baz>();15Mock.Arrange(() => baz.Execute()).Returns(2);16var result = baz.Execute();17Assert.AreEqual(2, result);Execute
Using AI Code Generation
1public void TestExecute()2{3    var mock = Mock.Create<Baz>(Behavior.CallOriginal);4    Mock.Arrange(() => mock.Execute()).Returns(1);5    Assert.AreEqual(1, mock.Execute());6}7public void TestExecute()8{9    var mock = Mock.Create<Baz>(Behavior.CallOriginal);10    Mock.Arrange(() => mock.Execute()).Returns(1);11    Assert.AreEqual(1, mock.Execute());12}13public void TestExecute()14{15    var mock = Mock.Create<Baz>(Behavior.CallOriginal);16    Mock.Arrange(() => mock.Execute()).Returns(1);17    Assert.AreEqual(1, mock.Execute());18}19public void TestExecute()20{21    var mock = Mock.Create<Baz>(Behavior.CallOriginal);22    Mock.Arrange(() => mock.Execute()).Returns(1);23    Assert.AreEqual(1, mock.Execute());24}25public void TestExecute()26{27    var mock = Mock.Create<Baz>(Behavior.CallOriginal);28    Mock.Arrange(() => mock.Execute()).Returns(1);29    Assert.AreEqual(1, mock.Execute());30}31public void TestExecute()32{33    var mock = Mock.Create<Baz>(Behavior.CallOriginal);34    Mock.Arrange(() => mock.Execute()).Returns(1);35    Assert.AreEqual(1, mock.Execute());36}37public void TestExecute()38{39    var mock = Mock.Create<Baz>(Behavior.CallOriginal);40    Mock.Arrange(() => mock.Execute()).Returns(1);41    Assert.AreEqual(1, mock.Execute());42}43public void TestExecute()44{Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
