Best JustMockLite code snippet using Telerik.JustMock.Tests.B.ThrowException
MockFixture.cs
Source:MockFixture.cs  
...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)...ProcessEngineTest.cs
Source:ProcessEngineTest.cs  
1/**2 * Copyright 2015 d-fens GmbH3 *4 * Licensed under the Apache License, Version 2.0 (the "License");5 * you may not use this file except in compliance with the License.6 * You may obtain a copy of the License at7 *8 * http://www.apache.org/licenses/LICENSE-2.09 *10 * Unless required by applicable law or agreed to in writing, software11 * distributed under the License is distributed on an "AS IS" BASIS,12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.13 * See the License for the specific language governing permissions and14 * limitations under the License.15 */16using System;17using Microsoft.VisualStudio.TestTools.UnitTesting;18using System.Net.Sockets;19using System.Net;20using System.Diagnostics.Contracts;21using Telerik.JustMock;22using System.Collections;23using System.Net.Http;24using System.Linq;25using System.IO;26namespace biz.dfch.CS.Activiti.Client.Tests27{28    [TestClass]29    public class ProcessEngineTest30    {31        #region constants32        // This process definition is cerated in the unit tests if it does not exist and removed at the end.33        const string DEFINITIONKEY_CREATETIMERSPROCESS = "createTimersProcessUnitTests";34        const string DEFINITIONKEY_EXCEPTIONAFTERDURATIONSPROCESS = "exceptionAfterDurationProcessUnitTests";35        const int WAIT_TIMEOUT_MILLISECONDS = 30000;36        #endregion37        #region test initialisation and cleanup38        // DFTODO - move to app.config39        protected Uri serveruri = new Uri("http://172.19.115.38:9080/activiti-rest/service"); // "http://192.168.112.129:9000/activiti-rest/service/");40        protected string applicationName = "";41        protected string username = "kermit";42        protected string password = "kermit";43        protected ProcessEngine _ProcessEngine = null;44        [TestInitialize]45        public void TestInitialize()46        {47            _ProcessEngine = new ProcessEngine(serveruri, applicationName);48        }49        [TestCleanup]50        public void TestCleanup()51        {52            if (!this._ProcessEngine.IsLoggedIn())53            {54                this._ProcessEngine.Login(username, password);55            }56            foreach (string f in Directory.GetFiles("Resources"))57            {58                string fileName = Path.GetFileName(f);59                DeploymentResponse deployments = this._ProcessEngine.GetDeployments(fileName);60                // Deployments löschen61                foreach (DeploymentResponseData d in deployments.data.Where(d => d.name == fileName))62                {63                    if (d != null)64                    {65                        // If there are still running process instances, the deployment cannot be deleted.66                        bool deleted = this._ProcessEngine.DeleteDeployment(d.id);67                    }68                }69            }70        }71        #endregion72        #region test methods73        [TestMethod]74        [TestCategory("SkipOnTeamCity")]75        public void LoginWithInvalidUri()76        {77            ProcessEngine processEngine = new ProcessEngine(new Uri("http://www.example.com/invalid-uri"), "InvalidClient");78            try79            {80                processEngine.Login("wrongusername", "1234");81            }82            catch (Exception ex)83            {84                Assert.IsNotNull(processEngine);85                Assert.IsTrue(ex.Message == "Response status code does not indicate success: 404 (Not Found).");86            }87        }88        [TestMethod]89        [TestCategory("SkipOnTeamCity")]90        [ExpectedException(typeof(UnauthorizedAccessException), "A wrong username was inappropriately allowed.")]91        public void LoginWithWrongUsernameAndPassword()92        {93            this._ProcessEngine.Login("wrongusername", "1234");94        }95        [TestMethod]96        [TestCategory("SkipOnTeamCity")]97        public void Login()98        {99            this._ProcessEngine.Login(username, password);100            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());101        }102        [TestMethod]103        [TestCategory("SkipOnTeamCity")]104        public void LogoutFailed()105        {106            try107            {108                this._ProcessEngine.Logout();109                Assert.Fail();110            }111            catch (Exception)112            {113                // TEst must throw an exception114            }115        }116        [TestMethod]117        [TestCategory("SkipOnTeamCity")]118        public void Logout()119        {120            this._ProcessEngine.Login(username, password);121            this._ProcessEngine.Logout();122            Assert.IsFalse(this._ProcessEngine.IsLoggedIn());123        }124        [TestMethod]125        [TestCategory("SkipOnTeamCity")]126        public void GetDeployments()127        {128            // Arrange129            // Act130            this._ProcessEngine.Login(username, password);131            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());132            DeploymentResponse response = this._ProcessEngine.GetDeployments();133            // Assert134            Assert.IsNotNull(response);135        }136        [TestMethod]137        [TestCategory("SkipOnTeamCity")]138        public void CreateDeploymentWithByteArray()139        {140            // Arrange141            // Act142            this._ProcessEngine.Login(username, password);143            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());144            string filename = @"Resources\HelloWorldBProcess.bpmn20.xml";145            byte[] bytes = File.ReadAllBytes(filename);146            DeploymentResponseData response = this._ProcessEngine.CreateDeployment(filename, bytes);147            // Assert148            Assert.IsNotNull(response);149            int id = 0;150            Assert.IsTrue(int.TryParse(response.id, out id));151            Assert.IsTrue(id > 0);152            Assert.IsTrue(response.name == Path.GetFileName(filename));153            // Delete it154            bool deleted = this._ProcessEngine.DeleteDeployment(response.id);155            Assert.IsTrue(deleted);156        }157        [TestMethod]158        [TestCategory("SkipOnTeamCity")]159        public void CreateDeploymentWithFilename()160        {161            // Arrange162            // Act163            this._ProcessEngine.Login(username, password);164            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());165            try166            {167                string filename = @"Resources\HelloWorldAProcess.bpmn20.xml";168                DeploymentResponseData response = this._ProcessEngine.CreateDeployment(filename, Path.GetFileName(filename));169                // Assert170                Assert.IsNotNull(response);171                int id = 0;172                Assert.IsTrue(int.TryParse(response.id, out id));173                Assert.IsTrue(id > 0);174                Assert.IsTrue(response.name == Path.GetFileName(filename));175                // Delete it176                bool deleted = this._ProcessEngine.DeleteDeployment(response.id);177                Assert.IsTrue(deleted);178            }179            catch (Exception ex)180            {181                Assert.Fail("Unexpected error: " + ex.ToString());182            }183        }184        [TestMethod]185        [TestCategory("SkipOnTeamCity")]186        public void CreateDeploymentWithFilenameSleepAMinute()187        {188            // Arrange189            // Act190            this._ProcessEngine.Login(username, password);191            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());192            try193            {194                string filename = @"Resources\SleepAMinuteProcess.bpmn20.xml";195                DeploymentResponseData response = this._ProcessEngine.CreateDeployment(filename, Path.GetFileName(filename));196                // Assert197                Assert.IsNotNull(response);198                int id = 0;199                Assert.IsTrue(int.TryParse(response.id, out id));200                Assert.IsTrue(id > 0);201                Assert.IsTrue(response.name == Path.GetFileName(filename));202                // Delete it203                bool deleted = this._ProcessEngine.DeleteDeployment(response.id);204                Assert.IsTrue(deleted);205            }206            catch (Exception ex)207            {208                Assert.Fail("Unexpected error: " + ex.ToString());209            }210        }211        [TestMethod]212        [TestCategory("SkipOnTeamCity")]213        public void CreateDeploymentWithZIPFilename()214        {215            // Arrange216            // Act217            this._ProcessEngine.Login(username, password);218            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());219            try220            {221                string zipFileName = @"Resources\zipFile.zip";222                DeploymentResponseData response = this._ProcessEngine.CreateDeployment(zipFileName, Path.GetFileName(zipFileName));223                // Assert224                Assert.IsNotNull(response);225                int id = 0;226                Assert.IsTrue(int.TryParse(response.id, out id));227                Assert.IsTrue(id > 0);228                Assert.IsTrue(response.name == Path.GetFileName(zipFileName));229                // Delete it230                bool deleted = this._ProcessEngine.DeleteDeployment(response.id);231                Assert.IsTrue(deleted);232            }233            catch (Exception ex)234            {235                Assert.Fail("Unexpected error: " + ex.ToString());236            }237        }238        [TestMethod]239        [TestCategory("SkipOnTeamCity")]240        public void DeleteDeployment()241        {242            // Arrange243            // Act244            this._ProcessEngine.Login(username, password);245            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());246            string filename = @"Resources\HelloWorldAProcess.bpmn20.xml";247            byte[] bytes = File.ReadAllBytes(filename);248            DeploymentResponseData response = this._ProcessEngine.CreateDeployment(filename, bytes);249            // Assert250            Assert.IsNotNull(response);251            int id = 0;252            Assert.IsTrue(int.TryParse(response.id, out id));253            Assert.IsTrue(id > 0);254            Assert.IsTrue(response.name == Path.GetFileName(filename));255            bool deleted = this._ProcessEngine.DeleteDeployment(response.id);256            Assert.IsTrue(deleted);257        }258        [TestMethod]259        [TestCategory("SkipOnTeamCity")]260        public void GetWorkflowDefinitions()261        {262            // Arrange263            // Act264            this._ProcessEngine.Login(username, password);265            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());266            var wdefObj1 = this._ProcessEngine.GetWorkflowDefinitions<ProcessDefinitionsResponse>();267            var wdefObj2 = this._ProcessEngine.GetWorkflowDefinitions();268            // Assert269            Assert.IsNotNull(wdefObj1);270            Assert.IsTrue(wdefObj1.total > 0);271            Assert.IsNotNull(wdefObj2);272            Assert.IsTrue(wdefObj2.total > 0);273        }274        [TestMethod]275        [TestCategory("SkipOnTeamCity")]276        public void GetWorkflowDefinitionById()277        {278            // Arrange279            // Act280            this._ProcessEngine.Login(username, password);281            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());282            ProcessDefinitionsResponse definitions = this._ProcessEngine.GetWorkflowDefinitions();283            ProcessDefinitionResponseData def1 = definitions.data.FirstOrDefault();284            ProcessDefinitionResponseData def2 = this._ProcessEngine.GetWorkflowDefinition(def1.id);285            // Assert286            Assert.IsNotNull(def1);287            Assert.IsNotNull(def2);288            Assert.IsTrue(def1.id == def2.id);289        }290        [TestMethod]291        [TestCategory("SkipOnTeamCity")]292        public void GetWorkflowDefinitionByKey()293        {294            // Arrange295            // Act296            this._ProcessEngine.Login(username, password);297            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());298            string definitionId = GetDefinitionId(DEFINITIONKEY_CREATETIMERSPROCESS);299            ProcessDefinitionResponseData definition = this._ProcessEngine.GetWorkflowDefinitionByKey(DEFINITIONKEY_CREATETIMERSPROCESS, true).data.FirstOrDefault();300            // Assert301            Assert.IsNotNull(definition);302            Assert.IsNotNull(definition.key == DEFINITIONKEY_CREATETIMERSPROCESS);303        }304        [TestMethod]305        [TestCategory("SkipOnTeamCity")]306        public void GetWorkflowDefinitionsEmpty()307        {308            // Arrange309            // Act310            this._ProcessEngine.Login(username, password);311            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());312            Mock.Arrange(() => _ProcessEngine.GetWorkflowDefinitions<ProcessDefinitionsResponse>()).Returns(new ProcessDefinitionsResponse() { total = 0 });313            var wdefObj = this._ProcessEngine.GetWorkflowDefinitions();314            // Assert315            Assert.IsNotNull(wdefObj);316            Assert.IsTrue(wdefObj.total == 0);317        }318        [TestMethod]319        [TestCategory("SkipOnTeamCity")]320        public void InvokeWorkflow()321        {322            // Arrange323            var definitionid = "will-be-determined-at-runtime";324            var vars = new Hashtable();325            vars.Add("duration", "30000");326            // Act327            this._ProcessEngine.Login(username, password);328            definitionid = GetDefinitionId(DEFINITIONKEY_CREATETIMERSPROCESS);329            var instanceNew = this._ProcessEngine.InvokeWorkflowInstance(definitionid, vars);330            // Assert331            Assert.IsNotNull(instanceNew);332        }333        [TestMethod]334        [TestCategory("SkipOnTeamCity")]335        [ExpectedException(typeof(ArgumentException), "Unknown workflow process definition")]336        public void InvokeWorkflowFail()337        {338            // Arrange339            var definitionid = "invalid-definitionid:1:30";340            var vars = new Hashtable();341            vars.Add("duration", "long");342            vars.Add("throwException", "false");343            // Act344            this._ProcessEngine.Login(username, password);345            var instanceNew = this._ProcessEngine.InvokeWorkflowInstance(definitionid, vars);346            // Assert347            Assert.Fail("Test should have failed before.");348        }349        [TestMethod]350        [TestCategory("SkipOnTeamCity")]351        public void GetWorkflowStatus()352        {353            // Arrange354            var definitionid = "will-be-determined-at-runtime";355            var vars = new Hashtable();356            vars.Add("duration", "30000");357            // Act358            this._ProcessEngine.Login(username, password);359            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());360            definitionid = GetDefinitionId(DEFINITIONKEY_CREATETIMERSPROCESS);361            var instanceNew = this._ProcessEngine.InvokeWorkflowInstance(definitionid, vars);362            var instances = _ProcessEngine.GetWorkflowInstances();363            var id = instances.data[0].id;364            var instance = _ProcessEngine.GetWorkflowInstance(id);365            bool cancelled = _ProcessEngine.DeleteWorkflowInstance(instance.id);366            // Assert367            Assert.IsNotNull(instance);368            Assert.IsNotNull(instance.completed);369            Assert.IsNotNull(instance.suspended);370            Assert.IsNotNull(instance.ended);371        }372        [TestMethod]373        [TestCategory("SkipOnTeamCity")]374        public void GetWorkflowStatusFail()375        {376            // Arrange377            var id = "1234";378            // Act379            this._ProcessEngine.Login(username, password);380            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());381            try382            {383                var instance = _ProcessEngine.GetWorkflowInstance(id);384            }385            catch (HttpRequestException httpE)386            {387                Assert.IsTrue(httpE.Message.Contains("404 (Not Found)."));388            }389            catch (Exception e)390            {391                throw;392            }393            // Assert394        }395        #region Feature: Get Return of invoked (and completed) Workflow #7396        [TestMethod]397        [TestCategory("SkipOnTeamCity")]398        public void GetWorkflowResultFromCompletedWorkflow()399        {400            // Arrange401            var definitionid = "will-be-determined-at-runtime";402            var vars = new Hashtable();403            vars.Add("duration", "10000");404            // Act405            this._ProcessEngine.Login(username, password);406            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());407            definitionid = this.GetDefinitionId(DEFINITIONKEY_CREATETIMERSPROCESS);408            ProcessInstanceResponseData response = _ProcessEngine.InvokeWorkflowInstance(definitionid, vars);409            System.Threading.Thread.Sleep(WAIT_TIMEOUT_MILLISECONDS);410            ProcessInstanceResponseData instance = _ProcessEngine.GetWorkflowInstance(response.id);411            // Assert412            Assert.IsNotNull(instance);413            Assert.IsNotNull(instance.completed);414            Assert.IsTrue(instance.completed);415            Assert.IsNotNull(instance.suspended);416            Assert.IsNotNull(instance.ended);417        }418        [TestMethod]419        [TestCategory("SkipOnTeamCity")]420        public void GetWorkflowResultFromEndedWorkflow()421        {422            // Arrange423            var definitionid = "will-be-determined-at-runtime";424            var vars = new Hashtable();425            vars.Add("duration", "10000");426            // Act427            this._ProcessEngine.Login(username, password);428            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());429            definitionid = this.GetDefinitionId(DEFINITIONKEY_CREATETIMERSPROCESS);430            ProcessInstanceResponseData response = _ProcessEngine.InvokeWorkflowInstance(definitionid, vars);431            System.Threading.Thread.Sleep(WAIT_TIMEOUT_MILLISECONDS);432            ProcessInstanceResponseData instance = _ProcessEngine.GetWorkflowInstance(response.id);433            // Assert434            Assert.IsNotNull(instance);435            Assert.IsNotNull(instance.completed);436            Assert.IsNotNull(instance.suspended);437            Assert.IsNotNull(instance.ended);438            Assert.IsTrue(instance.ended);439        }440        [TestMethod]441        [TestCategory("SkipOnTeamCity")]442        public void GetWorkflowResultFromFailedWorkflow()443        {444            // Arrange445            var definitionid = "will-be-determined-at-runtime";446            var vars = new Hashtable();447            vars.Add("duration", "10");448            //string expectedReturnVariable = "returnVariableName from definitionid-workflow"; // TODO: Use a workflow which returns a result449            //string expectedReturnValue = "expected value"; // TODO: Expected value450            // Act451            this._ProcessEngine.Login(username, password);452            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());453            definitionid = this.GetDefinitionId(DEFINITIONKEY_EXCEPTIONAFTERDURATIONSPROCESS);454            ProcessInstanceResponseData response = _ProcessEngine.InvokeWorkflowInstance(definitionid, vars);455            System.Threading.Thread.Sleep(WAIT_TIMEOUT_MILLISECONDS);456            ProcessInstanceResponseData instance = _ProcessEngine.GetWorkflowInstance(response.id);457            //ProcessVariableData variable = instance.variables.Where(v => v.name == expectedReturnVariable).FirstOrDefault();458            bool cancelled = _ProcessEngine.DeleteWorkflowInstance(response.id);459            // Assert460            // Assert461            Assert.IsNotNull(instance);462            Assert.IsNotNull(instance.completed);463            Assert.IsNotNull(instance.suspended);464            Assert.IsNotNull(instance.ended);465            Assert.IsFalse(instance.ended); // A failed workflow is not ended466            Assert.IsTrue(cancelled);467        }468        [TestMethod]469        [TestCategory("SkipOnTeamCity")]470        public void GetWorkflowResultFromSuspendedWorkflow()471        {472            // Arrange473            var definitionid = "will-be-determined-at-runtime";474            var vars = new Hashtable();475            vars.Add("duration", "30000");476            //string expectedReturnVariable = "returnVariableName from definitionid-workflow"; // TODO: Use a workflow which returns a result477            //string expectedReturnValue = "expected value"; // TODO: Expected value478            // Act479            this._ProcessEngine.Login(username, password);480            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());481            definitionid = this.GetDefinitionId(DEFINITIONKEY_CREATETIMERSPROCESS);482            ProcessInstanceResponseData response = _ProcessEngine.InvokeWorkflowInstance(definitionid, vars);483            ProcessInstanceResponseData suspended = _ProcessEngine.UpdateWorkflowInstance(response.id, ProcessEngine.EnumStatus.Suspend);484            ProcessInstanceResponseData instance = _ProcessEngine.GetWorkflowInstance(response.id);485            //ProcessVariableData variable = instance.variables.Where(v => v.name == expectedReturnVariable).FirstOrDefault();486            // Assert487            Assert.IsNotNull(instance);488            Assert.IsNotNull(instance.completed);489            Assert.IsNotNull(instance.suspended);490            Assert.IsNotNull(instance.ended);491            Assert.IsTrue(instance.suspended);492        }493        [TestMethod]494        [TestCategory("SkipOnTeamCity")]495        public void GetWorkflowResultFromRunningWorkflowFail()496        {497            // Arrange498            var definitionid = "will-be-determined-at-runtime";499            var vars = new Hashtable();500            vars.Add("duration", "30000");501            //string expectedReturnVariable = "returnVariableName from definitionid-workflow"; // TODO: Use a workflow which returns a result502            //string expectedReturnValue = "expected value"; // TODO: Expected value503            // Act504            this._ProcessEngine.Login(username, password);505            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());506            definitionid = this.GetDefinitionId(DEFINITIONKEY_CREATETIMERSPROCESS);507            ProcessInstanceResponseData response = _ProcessEngine.InvokeWorkflowInstance(definitionid, vars);508            ProcessInstanceResponseData instance = _ProcessEngine.GetWorkflowInstance(response.id);509            // Assert510            Assert.IsNotNull(instance);511            Assert.IsNotNull(instance.completed);512            Assert.IsNotNull(instance.suspended);513            Assert.IsNotNull(instance.ended);514            Assert.IsFalse(instance.completed);515            Assert.IsFalse(instance.suspended);516            Assert.IsFalse(instance.ended);517        }518        [TestMethod]519        [TestCategory("SkipOnTeamCity")]520        public void GetWorkflowResultWithFalseWorkflowId()521        {522            // Arrange523            string unknownId = "0";524            // Act525            this._ProcessEngine.Login(username, password);526            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());527            ProcessInstanceResponseData instance = null;528            try529            {530                instance = _ProcessEngine.GetWorkflowInstance(unknownId);531                Assert.Fail("We should never reach this line...");532            }533            catch (Exception ex)534            {535                Assert.IsNull(instance);536                Assert.IsTrue(ex.Message == "Response status code does not indicate success: 404 (Not Found).");537            }538            // Assert539        }540        #endregion541        #region "Feature: Cancel Invoked Workflow #6"542        [TestMethod]543        [TestCategory("SkipOnTeamCity")]544        public void CancelRunningWorkflow()545        {546            // Arrange547            var definitionid = "will-be-determined-at-runtime";548            var vars = new Hashtable();549            vars.Add("duration", "60000");550            // Act551            this._ProcessEngine.Login(username, password);552            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());553            definitionid = this.GetDefinitionId(DEFINITIONKEY_CREATETIMERSPROCESS);554            ProcessInstanceResponseData response = _ProcessEngine.InvokeWorkflowInstance(definitionid, vars);555            bool endedBeforeCanceling = response.ended;556            bool cancelled = _ProcessEngine.DeleteWorkflowInstance(response.id);557            // Assert558            Assert.IsTrue(cancelled);559        }560        [TestMethod]561        [TestCategory("SkipOnTeamCity")]562        public void CancelSuspendedWorkflow()563        {564            // Arrange565            var definitionid = "will-be-determined-at-runtime";566            var vars = new Hashtable();567            vars.Add("duration", "10000");568            // Act569            this._ProcessEngine.Login(username, password);570            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());571            definitionid = this.GetDefinitionId(DEFINITIONKEY_CREATETIMERSPROCESS);572            ProcessInstanceResponseData response = _ProcessEngine.InvokeWorkflowInstance(definitionid, vars);573            ProcessInstanceResponseData suspended = _ProcessEngine.UpdateWorkflowInstance(response.id, ProcessEngine.EnumStatus.Suspend);574            bool suspendedBeforeCanceling = suspended.suspended;575            bool endedBeforeCanceling = suspended.ended;576            bool cancelled = _ProcessEngine.DeleteWorkflowInstance(response.id);577            // Assert578            Assert.IsTrue(suspendedBeforeCanceling);579            Assert.IsFalse(endedBeforeCanceling);580            Assert.IsTrue(cancelled);581        }582        [TestMethod]583        [TestCategory("SkipOnTeamCity")]584        public void CancelCompletedWorkflowFail()585        {586            // Arrange587            var definitionid = "will-be-determined-at-runtime";588            var vars = new Hashtable();589            vars.Add("duration", "10000");590            // Act591            this._ProcessEngine.Login(username, password);592            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());593            definitionid = this.GetDefinitionId(DEFINITIONKEY_CREATETIMERSPROCESS);594            ProcessInstanceResponseData response = _ProcessEngine.InvokeWorkflowInstance(definitionid, vars);595            System.Threading.Thread.Sleep(WAIT_TIMEOUT_MILLISECONDS); // Wait, till precess finished...596            ProcessInstanceResponseData instance = _ProcessEngine.GetWorkflowInstance(response.id);597            bool completedBeforeCanceling = instance.completed;598            bool cancelled = _ProcessEngine.DeleteWorkflowInstance(response.id);599            // Assert600            Assert.IsTrue(completedBeforeCanceling);601            Assert.IsFalse(cancelled);602        }603        [TestMethod]604        [TestCategory("SkipOnTeamCity")]605        public void CancelFailedWorkflowFail()606        {607            // Arrange608            var definitionid = "will-be-determined-at-runtime";609            var vars = new Hashtable();610            vars.Add("duration", "10");611            // Act612            this._ProcessEngine.Login(username, password);613            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());614            definitionid = this.GetDefinitionId(DEFINITIONKEY_EXCEPTIONAFTERDURATIONSPROCESS);615            ProcessInstanceResponseData response = _ProcessEngine.InvokeWorkflowInstance(definitionid, vars);616            System.Threading.Thread.Sleep(WAIT_TIMEOUT_MILLISECONDS); // Wait, till precess finished...617            ProcessInstanceResponseData instance = _ProcessEngine.GetWorkflowInstance(response.id);618            bool failedBeforeCanceling = !instance.completed && !instance.ended;619            Assert.IsTrue(failedBeforeCanceling);620            bool cancelled = _ProcessEngine.DeleteWorkflowInstance(response.id);621            // Assert622            Assert.IsTrue(cancelled);623        }624        [TestMethod]625        [TestCategory("SkipOnTeamCity")]626        public void CancelEndedWorkflowFail()627        {628            // Arrange629            var definitionid = "will-be-determined-at-runtime";630            var vars = new Hashtable();631            vars.Add("duration", "10000");632            // Act633            this._ProcessEngine.Login(username, password);634            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());635            definitionid = this.GetDefinitionId(DEFINITIONKEY_CREATETIMERSPROCESS);636            ProcessInstanceResponseData response = _ProcessEngine.InvokeWorkflowInstance(definitionid, vars);637            System.Threading.Thread.Sleep(WAIT_TIMEOUT_MILLISECONDS);638            ProcessInstanceResponseData instance = _ProcessEngine.GetWorkflowInstance(response.id);639            bool endedBeforeCanceling = instance.ended;640            Assert.IsTrue(endedBeforeCanceling);641            bool cancelled = _ProcessEngine.DeleteWorkflowInstance(response.id);642            // Assert643            Assert.IsFalse(cancelled);644        }645        [TestMethod]646        [TestCategory("SkipOnTeamCity")]647        public void CancelNonExistingWorkflowFail()648        {649            // Arranged650            string unknownId = "0";651            // Act652            this._ProcessEngine.Login(username, password);653            Assert.IsTrue(this._ProcessEngine.IsLoggedIn());654            bool deleted = _ProcessEngine.DeleteWorkflowInstance(unknownId);655            // Assert656            Assert.IsFalse(deleted);657        }658        #endregion659        #endregion660        #region Helpers661        /// <summary>662        /// Returns the definitionid of a given definitionkey.663        /// If definitionkey is DEFINITIONKEY_CREATETIMERSPROCESS or DEFINITIONKEY_EXCEPTIONAFTERDURATIONSPROCESS and definition does not exist, the definition is deployed automatically.664        /// </summary>665        /// <param name="definitionkey">Something like createTimersProcess (see const  DEFINITIONKEY_CREATETIMERSPROCESS)</param>666        /// <returns> Something like "createTimersProcess:1:31" (version can change)</returns>667        private string GetDefinitionId(string definitionkey)668        {669            ProcessDefinitionResponseData definition = this._ProcessEngine.GetWorkflowDefinitionByKey(definitionkey, true).data.FirstOrDefault();670            if (definition == null && definitionkey == DEFINITIONKEY_CREATETIMERSPROCESS)671            {672                // Deploy the unexisting process definition to make tests.673                string filename = @"Resources\createTimersProcessUnitTests.bpmn20.xml";674                byte[] bytes = File.ReadAllBytes(filename);675                DeploymentResponseData response = this._ProcessEngine.CreateDeployment(filename, bytes);676                definition = this._ProcessEngine.GetWorkflowDefinitionByKey(definitionkey, true).data.FirstOrDefault();677            }678            if (definition == null && definitionkey == DEFINITIONKEY_EXCEPTIONAFTERDURATIONSPROCESS)679            {680                // Deploy the unexisting process definition to make tests.681                string filename = @"Resources\exceptionAfterDurationProcessUnitTests.bpmn20.xml";682                byte[] bytes = File.ReadAllBytes(filename);683                DeploymentResponseData response = this._ProcessEngine.CreateDeployment(filename, bytes);684                definition = this._ProcessEngine.GetWorkflowDefinitionByKey(definitionkey, true).data.FirstOrDefault();685            }686            return definition.id;687        }688        #endregion689    }690}...ThrowException
Using AI Code Generation
1var mock = Mock.Create<B>();2Mock.Arrange(() => mock.ThrowException()).Throws(new Exception());3mock.ThrowException();4var mock = Mock.Create<B>();5Mock.Arrange(() => mock.ThrowException()).Throws(new Exception());6mock.ThrowException();7var mock = Mock.Create<B>();8Mock.Arrange(() => mock.ThrowException()).Throws(new Exception());9mock.ThrowException();10var mock = Mock.Create<B>();11Mock.Arrange(() => mock.ThrowException()).Throws(new Exception());12mock.ThrowException();13var mock = Mock.Create<B>();14Mock.Arrange(() => mock.ThrowException()).Throws(new Exception());15mock.ThrowException();16var mock = Mock.Create<B>();17Mock.Arrange(() => mock.ThrowException()).Throws(new Exception());18mock.ThrowException();19var mock = Mock.Create<B>();20Mock.Arrange(() => mock.ThrowException()).Throws(new Exception());21mock.ThrowException();22var mock = Mock.Create<B>();23Mock.Arrange(() => mock.ThrowException()).Throws(new Exception());24mock.ThrowException();25var mock = Mock.Create<B>();26Mock.Arrange(() => mock.ThrowException()).Throws(new Exception());27mock.ThrowException();28var mock = Mock.Create<B>();29Mock.Arrange(() => mock.ThrowException()).Throws(new Exception());30mock.ThrowException();31var mock = Mock.Create<B>();32Mock.Arrange(() => mock.ThrowException()).ThrowsThrowException
Using AI Code Generation
1{2    public void Method()3    {4        var b = new B();5        b.ThrowException();6    }7}8{9    public void Method()10    {11        var b = new B();12        b.ThrowException();13    }14}ThrowException
Using AI Code Generation
1var mock = Mock.Create<B>();2Mock.Arrange(() => mock.ThrowException()).Throws(new ArgumentException());3mock.ThrowException();4var mock = Mock.Create<A>();5Mock.Arrange(() => mock.ThrowException()).Throws(new ArgumentException());6mock.ThrowException();7var mock = Mock.Create<B>();8Mock.NonPublic.Arrange<B, ArgumentException>(mock, "ThrowException").Throws(new ArgumentException());9mock.ThrowException();10var mock = Mock.Create<A>();11Mock.NonPublic.Arrange<A, ArgumentException>(mock, "ThrowException").Throws(new ArgumentException());12mock.ThrowException();ThrowException
Using AI Code Generation
1var b = Mock.Create<B>();2Mock.Arrange(() => b.ThrowException()).Throws(new Exception("Test"));3b.ThrowException();4var b = Mock.Create<B>();5Mock.Arrange(() => b.ThrowException()).Throws(new Exception("Test"));6b.ThrowException();7var b = Mock.Create<B>();8Mock.Arrange(() => b.ThrowException()).Throws(new Exception("Test"));9b.ThrowException();10var b = Mock.Create<B>();11Mock.Arrange(() => b.ThrowException()).Throws(new Exception("Test"));12b.ThrowException();13var b = Mock.Create<B>();14Mock.Arrange(() => b.ThrowException()).Throws(new Exception("Test"));15b.ThrowException();16var b = Mock.Create<B>();17Mock.Arrange(() => b.ThrowException()).Throws(new Exception("Test"));18b.ThrowException();19var b = Mock.Create<B>();20Mock.Arrange(() => b.ThrowException()).Throws(new Exception("Test"));21b.ThrowException();22var b = Mock.Create<B>();23Mock.Arrange(() => b.ThrowException()).Throws(new Exception("Test"));24b.ThrowException();25var b = Mock.Create<B>();26Mock.Arrange(() => b.ThrowException()).Throws(new Exception("Test"));27b.ThrowException();28var b = Mock.Create<B>();29Mock.Arrange(() => b.ThrowException()).Throws(new Exception("Test"));30b.ThrowException();ThrowException
Using AI Code Generation
1using Telerik.JustMock;2using Telerik.JustMock.Tests;3using System;4using System.Collections.Generic;5using System.Linq;6using System.Text;7using System.Threading.Tasks;8using NUnit.Framework;9{10    {11        public void Test()12        {13            var mock = Mock.Create<B>();14            Mock.Arrange(() => mock.ThrowException()).Throws<Exception>();15            mock.ThrowException();16        }17    }18}19using Telerik.JustMock;20using Telerik.JustMock.Tests;21using System;22using System.Collections.Generic;23using System.Linq;24using System.Text;25using System.Threading.Tasks;26using NUnit.Framework;27{28    {29        public void Test()30        {31            var mock = Mock.Create<B>();32            Mock.Arrange(() => mock.ThrowException()).Throws<Exception>();33            mock.ThrowException();34        }35    }36}37using Telerik.JustMock;38using Telerik.JustMock.Tests;39using System;40using System.Collections.Generic;41using System.Linq;42using System.Text;43using System.Threading.Tasks;44using NUnit.Framework;45{46    {47        public void Test()48        {49            var mock = Mock.Create<B>();50            Mock.Arrange(() => mock.ThrowException()).Throws<Exception>();51            mock.ThrowException();52        }53    }54}55using Telerik.JustMock;56using Telerik.JustMock.Tests;57using System;58using System.Collections.Generic;59using System.Linq;60using System.Text;61using System.Threading.Tasks;62using NUnit.Framework;63{64    {65        public void Test()66        {67            var mock = Mock.Create<B>();68            Mock.Arrange(() => mock.ThrowException()).Throws<Exception>();69            mock.ThrowException();70        }71    }72}ThrowException
Using AI Code Generation
1using Telerik.JustMock.Tests;2{3    static void Main(string[] args)4    {5        B b = new B();6        b.ThrowException();7    }8}9using Telerik.JustMock.Tests;10{11    static void Main(string[] args)12    {13        B b = new B();14        b.ThrowException();15    }16}17[DeploymentItem("1.cs")]18public void TestMethod1()19{20    Mock.Arrange(() => B.ThrowException()).Throws<Exception>();21    B b = new B();22    b.ThrowException();23}ThrowException
Using AI Code Generation
1using Telerik.JustMock.Tests;2B b = new B();3b.ThrowException();4using Telerik.JustMock.Tests;5B b = new B();6b.ThrowException();7{8    public void ThrowException()9    {10        throw new Exception();11    }12}13public void Test()14{15    Mock.Arrange(() => new B().ThrowException());16    using Telerik.JustMock.Tests;17    B b = new B();18    b.ThrowException();19    using Telerik.JustMock.Tests;20    B b = new B();21    b.ThrowException();22}23public void Test()24{25    using Telerik.JustMock.Tests;26    B b = new B();27    b.ThrowException();28    using Telerik.JustMock.Tests;29    B b = new B();30    b.ThrowException();31    Mock.Arrange(() => new B().ThrowException());32}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!!
