Best JustMockLite code snippet using Telerik.JustMock.Tests.FooExrepssion.GetBar
AssertionFixture.cs
Source:AssertionFixture.cs
...146 {147 var bar = Mock.Create<Bar>();148 Mock.Arrange(() => bar.Echo(1)).Returns(2).MustBeCalled();149 var foo = Mock.Create<Foo>();150 Mock.Arrange(() => foo.GetBar()).Returns(bar);151 Assert.Equal(foo.GetBar().Echo(1), 2);152 //asserts bar.153 Mock.Assert(foo.GetBar());154 }155 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]156 public void ShouldAssertAssertablesRecursively()157 {158 var bar = Mock.Create<Bar>();159 Mock.Arrange(() => bar.Echo(1)).Returns(2).MustBeCalled();160 Mock.Arrange(() => bar.Echo(2)).Returns(3).MustBeCalled();161 var foo = Mock.Create<Foo>();162 Mock.Arrange(() => foo.GetBar()).Returns(bar);163 Assert.Equal(foo.GetBar().Echo(1), 2);164 Assert.Throws<AssertionException>(() => Mock.Assert(foo));165 Assert.Equal(foo.GetBar().Echo(2), 3);166 Mock.Assert(foo);167 }168 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]169 public void ShouldAssertMethodWihtMultipleParameters()170 {171 var foo = Mock.Create<Foo>();172 // first call wont be asserted.173 Mock.Arrange(() => foo.Sum(1, 3)).Returns(1);174 // second call will be asserted.175 Mock.Arrange(() => foo.Sum(1, 2)).Returns(1);176 Assert.Equal(foo.Sum(1, 2), 1);177 Mock.Assert(() => foo.Sum(1, 2));178 }179 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]180 public void ShouldAssertMethodWithOutputParam()181 {182 var foo = Mock.Create<IFoo>();183 bool expected = true;184 Mock.Arrange(() => foo.EchoOut(out expected)).DoNothing();185 Assert.Throws<AssertionException>(() => Mock.Assert(() => foo.EchoOut(out expected)));186 foo.EchoOut(out expected);187 Mock.Assert(() => foo.EchoOut(out expected));188 Assert.True(expected);189 }190 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]191 public void ShouldThrowForUnUsedSetup()192 {193 var foo = Mock.Create<IFoo>();194 Mock.Arrange(() => foo.Echo(1)).Returns(10);195 Assert.Throws<AssertionException>(() => Mock.Assert(() => foo.Echo(1)));196 }197 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]198 public void ShouldAssertPropertyGetCall()199 {200 var foo = Mock.Create<IFoo>();201 Mock.Arrange(() => foo.Value).Returns(10);202 Assert.Throws<AssertionException>(() => Mock.Assert(() => foo.Value));203 }204 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]205 public void ShouldAssertCallWithMatchers()206 {207 var foo = Mock.Create<IFoo>();208 Mock.Arrange(() => foo.Echo(Arg.IsAny<int>())).Returns((int i) => i);209 Assert.Equal(foo.Echo(10), 10);210 Mock.Assert(() => foo.Echo(Arg.Matches<int>(x => x == 10)));211 Assert.Throws<AssertionException>(() => Mock.Assert(() => foo.Echo(Arg.Matches<int>(x => x == 11))));212 }213 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]214 public void ShouldAssertMatherWithAnyInAssertion()215 {216 var foo = Mock.Create<IFoo>();217 Mock.Arrange(() => foo.Echo(Arg.Matches<int>(x => x == 10))).Returns((int i) => i);218 Assert.Equal(foo.Echo(10), 10);219 Mock.Assert(() => foo.Echo(Arg.IsAny<int>()));220 }221 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]222 public void ShouldAssertCallHavingMultipleArgsWithMatchers()223 {224 var foo = Mock.Create<IFoo>();225 Mock.Arrange(() => foo.Execute(Arg.IsAny<int>(), Arg.IsAny<int>())).Returns((int id, int i) => i);226 Assert.Equal(foo.Execute(100, 10), 10);227 Mock.Assert(() => foo.Execute(Arg.IsAny<int>(), Arg.Matches<int>(x => x == 10)));228 }229 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]230 public void ShouldAssertMatcherWithRealValueArguments()231 {232 var foo = Mock.Create<IFoo>();233 Mock.Arrange(() => foo.Execute(Arg.IsAny<int>(), Arg.IsAny<int>())).Returns((int id, int i) => i);234 Assert.Equal(foo.Execute(100, 10), 10);235 Mock.Assert(() => foo.Execute(100, Arg.Matches<int>(x => x == 10)));236 }237 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]238 public void ShouldThrowForInvalidAssertionWithMatcher()239 {240 var foo = Mock.Create<IFoo>();241 Mock.Arrange(() => foo.Execute(Arg.IsAny<int>(), Arg.IsAny<int>())).Returns((int id, int i) => i);242 Assert.Equal(foo.Execute(100, 10), 10);243 Assert.Throws<AssertionException>(() =>244 {245 Mock.Assert(() => foo.Execute(Arg.Matches<int>(x => x == 4), Arg.Matches<int>(x => x == 10)));246 });247 }248 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]249 public void ShouldThrowForNonSpecificLambdaCallsOnAssert()250 {251 var foo = Mock.Create<IFoo>();252 Mock.Arrange(() => foo.Echo(1)).Returns(2);253 foo.Echo(1);254 Assert.Throws<MockException>(() => Mock.Assert(() => foo));255 Mock.Assert(foo);256 }257 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]258 public void ShouldAssertPropertySetUsingAssertable()259 {260 var foo = Mock.Create<IFoo>();261 Mock.ArrangeSet<IFoo>(() => { foo.Value = 1; }).DoNothing().MustBeCalled();262 Assert.Throws<AssertionException>(() => Mock.Assert(foo));263 foo.Value = 1;264 Mock.Assert(foo);265 }266 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]267 public void ShouldAssertSpecificPropertySet()268 {269 var foo = Mock.Create<IFoo>();270 Mock.ArrangeSet<IFoo>(() => { foo.Value = 1; });271 Assert.Throws<AssertionException>(() => Mock.AssertSet(() => foo.Value = 1));272 foo.Value = 1;273 Mock.AssertSet(() => foo.Value = 1);274 }275 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]276 public void ShouldBeAbleToSpecifyOccurenceForAssertSet()277 {278 var foo = Mock.Create<IFoo>();279 foo.Value = 1;280 foo.Value = 2;281 Mock.AssertSet(() => foo.Value = Arg.AnyInt, Occurs.Exactly(2));282 }283 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]284 public void ShouldAssertSetWithMatcherWhenItInvokesAnotherMethodDuringSet()285 {286 var foo = Mock.Create<Foo>(Behavior.CallOriginal);287 // invokes OnFooValueChanged.288 foo.FooValue = Mock.Create<IFoo>(Behavior.CallOriginal);289 Mock.AssertSet(() => foo.FooValue = Arg.IsAny<IFoo>(), Occurs.Once());290 }291 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]292 public void ShouldNotThrowDuringAssertForCallOriginalWhenNoArrangeSpecified()293 {294 var foo = Mock.Create<FooWithSetThatThows>(Behavior.CallOriginal);295 Mock.AssertSet(() => foo.Value = Arg.AnyInt, Occurs.Never());296 }297 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]298 public void ShouldAssertMethodCallWithOutputParam()299 {300 var foo = Mock.Create<IFoo>();301 bool expected = true;302 Mock.Arrange(() => foo.EchoOut(out expected)).DoNothing();303 Assert.Throws<AssertionException>(() => Mock.Assert(() => foo.EchoOut(out expected)));304 bool actual = false;305 foo.EchoOut(out actual);306 Mock.Assert(() => foo.EchoOut(out expected));307 }308 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]309 public void ShoudThrowForUninitializedIndexedSet()310 {311 var foo = Mock.Create<IFooIndexed>();312 Mock.ArrangeSet<IFooIndexed>(() => foo[0] = "ping");313 Assert.Throws<AssertionException>(() => Mock.AssertSet(() => foo[0] = "ping"));314 }315 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]316 public void ShouldAssertIndexerSet()317 {318 var foo = Mock.Create<IFooIndexed>();319 Mock.ArrangeSet<IFooIndexed>(() => foo[0] = "ping");320 foo[0] = "ping";321 Mock.AssertSet(() => foo[0] = "ping");322 }323 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]324 public void ShouldAssertSetWithIndexerWithMatcher()325 {326 var foo = Mock.Create<IFooIndexed>();327 Mock.ArrangeSet<IFooIndexed>(() => foo[0] = "ping");328 foo[0] = "ping";329 Mock.AssertSet(() => foo[0] = Arg.Matches<string>(x => x.StartsWith("p")));330 }331 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]332 public void ShouldThrowSetIndexerWithMatcherThatIsNotCalled()333 {334 var foo = Mock.Create<IFooIndexed>();335 Mock.ArrangeSet<IFooIndexed>(() => foo[0] = "ping");336 Assert.Throws<AssertionException>(() =>337 {338 Mock.AssertSet(() => foo[0] = Arg.Matches<string>(x => x.StartsWith("p")));339 });340 }341 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]342 public void ShouldAssertMatcherSetupWithMatcherForIndexer()343 {344 var foo = Mock.Create<IFooIndexed>();345 Mock.ArrangeSet<IFooIndexed>(() => foo[0] = Arg.IsAny<string>());346 foo[0] = "ping";347 Mock.AssertSet(() => foo[0] = Arg.Matches<string>(x => string.Compare("ping", x) == 0));348 }349 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]350 public void ShouldEnsureMockAssertionAfterThrows()351 {352 var foo = Mock.Create<IFoo>();353 Mock.Arrange(() => foo.Execute(Arg.IsAny<string>())).Throws(new InvalidOperationException()).MustBeCalled();354 Assert.Throws<InvalidOperationException>(() => foo.Execute(string.Empty));355 // should not throw any exception.356 Mock.Assert(foo);357 }358 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]359 public void ShouldAssertCallsHavingListAsReturn()360 {361 var repository = Mock.Create<IFooRepository>();362 Mock.Arrange(() => repository.GetFoos()).Returns(new List<Foo>363 {364 new Foo(),365 new Foo(),366 new Foo(),367 new Foo(),368 new Foo()369 })370 .MustBeCalled();371 IList<Foo> foos = repository.GetFoos();372 var expected = 5;373 var actual = foos.Count;374 Assert.Equal(expected, actual);375 Mock.Assert(repository);376 }377 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]378 public void ShouldAssertSetupWithIgnoreArguments()379 {380 var foo = Mock.Create<IFoo>();381 Mock.Arrange(() => foo.Execute(0, 0)).IgnoreArguments().Returns(10);382 foo.Execute(1, 1);383 Mock.Assert(() => foo.Execute(Arg.AnyInt, Arg.AnyInt));384 }385 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]386 public void ShouldAssertCallWithMockAsArgument()387 {388 FooResult result = Mock.Create<FooResult>();389 var data = Mock.Create<IDataAccess>();390 data.ProcessFilterResult(result, "a", "b");391 Mock.Assert(() => data.ProcessFilterResult(result, "a", "b"), Occurs.Once());392 }393 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]394 public void ShoudIgnoreExecptionForReturnDuringAssert()395 {396 var foo = Mock.Create<IFoo>();397 Mock.Arrange(() => foo.Echo(Arg.AnyInt))398 .Returns((int value) =>399 {400 if (value == default(int))401 {402 throw new InvalidOperationException();403 }404 return value;405 });406 foo.Echo(10);407 Mock.Assert(() => foo.Echo(Arg.AnyInt), Occurs.Once());408 }409 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]410 public void ShouldNotResursivelyAssertForSetupThatReturnItSelf()411 {412 var foo = Mock.Create<IFoo>();413 Mock.Arrange(() => foo.GetFoo()).Returns(foo).MustBeCalled();414 foo.GetFoo();415 Mock.Assert(foo);416 }417 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]418 public void ShouldAssertCallWithArrayArguments()419 {420 var expression = Mock.Create<FooExrepssion>();421 var expected = new[] { "x", "y" };422 expression.Update(expected);423 Mock.Assert(() => expression.Update(expected));424 }425 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]426 public void ShouldFailCallWithArrayArgumentsHavingDifferentValues()427 {428 var expression = Mock.Create<FooExrepssion>();429 var expected = new[] { "x", "y" };430 var assert = new[] { "x", "z" };431 expression.Update(expected);432 Assert.Throws<AssertionException>(() =>433 {434 Mock.Assert(() => expression.Update(assert));435 });436 }437 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]438 public void ShouldAssertCallWithArrayOfValueTypeArguments()439 {440 var expression = Mock.Create<FooExrepssion>();441 expression.Update(new[] { 1, 2 });442 Mock.Assert(() => expression.Update(new[] { 1, 2 }));443 }444 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]445 public void ShouldAssertCallWithNullValuedArgument()446 {447 var expression = Mock.Create<FooExrepssion>();448 expression.UpdateIt(null);449 Mock.Assert(() => expression.UpdateIt(null));450 }451 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]452 public void ShouldBeAbleToAssertOccursUsingMatcherForSimilarCallAtOnce()453 {454 var foo = Mock.Create<Foo>();455 Mock.Arrange(() => foo.Echo(1)).Returns((int arg) => arg);456 Mock.Arrange(() => foo.Echo(2)).Returns((int arg) => arg);457 Mock.Arrange(() => foo.Echo(3)).Returns((int arg) => arg);458 foo.Echo(1);459 foo.Echo(2);460 foo.Echo(3);461 Mock.Assert(() => foo.Echo(Arg.AnyInt), Occurs.Exactly(3));462 }463 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]464 public void ShouldFailForOccursUsingMatcherForSimilarCallWhenNotExpected()465 {466 var foo = Mock.Create<Foo>();467 Mock.Arrange(() => foo.Echo(1)).Returns((int arg) => arg);468 Mock.Arrange(() => foo.Echo(2)).Returns((int arg) => arg);469 Mock.Arrange(() => foo.Echo(3)).Returns((int arg) => arg);470 foo.Echo(1);471 foo.Echo(2);472 Assert.Throws<AssertionException>(() =>473 {474 Mock.Assert(() => foo.Echo(Arg.AnyInt), Occurs.Exactly(3));475 });476 }477 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]478 public void ShouldAssertWithAnyAssertForExpectedInvocationOfSetupWithOccursFollowedBySimilarSetup()479 {480 var foo = Mock.Create<Foo>();481 Mock.Arrange(() => foo.Echo(1)).Returns((int arg) => arg).Occurs(2);482 Mock.Arrange(() => foo.Echo(2)).Returns((int arg) => arg);483 foo.Echo(1);484 foo.Echo(2);485 foo.Echo(1);486 Mock.Assert(() => foo.Echo(Arg.AnyInt));487 }488 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]489 public void ShouldFailAnyAssertWhenNumberOfTimesExecutedIsNotSameAsExpected()490 {491 var foo = Mock.Create<Foo>();492 Mock.Arrange(() => foo.Echo(1)).Returns((int arg) => arg).Occurs(2);493 foo.Echo(1);494 Assert.Throws<AssertionException>(() => Mock.Assert(() => foo.Echo(Arg.AnyInt)));495 }496 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]497 public void ShouldFailPreOccursForAnyAssertIfNotExpectedAsReqThatIsFollowedBySimilarSetup()498 {499 var foo = Mock.Create<Foo>();500 Mock.Arrange(() => foo.Echo(1)).Returns((int arg) => arg).Occurs(2);501 Mock.Arrange(() => foo.Echo(2)).Returns((int arg) => arg);502 foo.Echo(1);503 foo.Echo(2);504 Assert.Throws<AssertionException>(() =>505 {506 Mock.Assert(() => foo.Echo(Arg.AnyInt));507 });508 }509 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]510 public void ShouldAssertCallWhenCombinedWithEnumFollowedByAnyTypeArgs()511 {512 var region = Mock.Create<IRegionManager>();513 region.RequestNavigate(RegionNames.OperationsEditRegion, new FooExrepssion());514 Mock.Assert(() => region.RequestNavigate(RegionNames.OperationsEditRegion, Arg.IsAny<FooExrepssion>()), Occurs.Once());515 }516 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]517 public void ShouldAssertForAnyArgumentsWhenIgnoreSwitchIsSpecified()518 {519 var region = Mock.Create<IRegionManager>();520 region.RequestNavigate(RegionNames.OperationsEditRegion, new FooExrepssion());521 Mock.Assert(() => region.RequestNavigate(RegionNames.OperationsEditRegion, null), Args.Ignore());522 }523 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]524 public void ShouldAssertForAnyArgumentsWhenIgnoreSwitchAndOccursSpecified()525 {526 var region = Mock.Create<IRegionManager>();527 Mock.Assert(() => region.RequestNavigate(RegionNames.OperationsEditRegion, null), Args.Ignore(), Occurs.Never());528 }529 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]530 public void ShouldAssertForArgMatchesWhenArgumentCalulatedBasedOnMockValues()531 {532 var viewServiceMock = Mock.Create<IViewService>();533 var view1 = Mock.Create<IView>();534 var view2 = Mock.Create<IView>();535 var view3 = Mock.Create<IView>();536 Mock.Arrange(() => viewServiceMock.Views).Returns(new[] { view1, view2, view3 });537 Mock.Arrange(() => viewServiceMock.ActiveView).Returns(view2);538 Mock.Arrange(() => viewServiceMock.TryCloseViews(Arg.IsAny<IEnumerable<IView>>()));539 viewServiceMock.TryCloseViews(viewServiceMock.Views.Except(new[] { viewServiceMock.ActiveView }));540 Mock.Assert(() => viewServiceMock.TryCloseViews(Arg.Matches<IEnumerable<IView>>((views) => views.All((view) => view == view1 || view == view3))), Occurs.Once());541 }542 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]543 public void ShouldVerifyThatMockArgumentIsNotAssertedInsteadOfExpected()544 {545 var viewServiceMock = Mock.Create<IViewService>();546 var view1 = Mock.Create<IView>();547 var view2 = Mock.Create<IView>();548 var view3 = Mock.Create<IView>();549 Mock.Arrange(() => viewServiceMock.Views).Returns(new[] { view1, view2, view3 });550 Mock.Arrange(() => viewServiceMock.ActiveView).Returns(view2);551 Mock.Arrange(() => viewServiceMock.TryCloseViews(Arg.IsAny<IEnumerable<IView>>()));552 viewServiceMock.TryCloseViews(viewServiceMock.Views.Except(new[] { viewServiceMock.ActiveView }));553 // this will increase the execution number of GetHashCode()554 Assert.True(new[] { view1, view3 }.All((view) => view == view1 || view == view3));555 Mock.Assert(() => viewServiceMock.TryCloseViews(Arg.Matches<IEnumerable<IView>>((views) => views.All((view) => view == view1 || view == view3))), Occurs.Once());556 }557 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]558 public void ShouldThrowAssertFailedWithCompositeFailureMessage()559 {560 var foo = Mock.Create<IFoo>();561 Mock.Arrange(() => foo.Echo(Arg.AnyInt)).Occurs(3);562 Mock.Arrange(() => foo.Echo(15)).InOrder().OccursOnce();563 Mock.Arrange(() => foo.Echo(20)).InOrder().OccursOnce();564 var ex = Assert.Throws<AssertionException>(() => Mock.Assert(foo));565 Assert.True(ex.Message.Contains("1. "));566 Assert.True(ex.Message.Contains("2. "));567 Assert.True(ex.Message.Contains("3. "));568 Assert.True(ex.Message.Contains("4. "));569 Assert.True(ex.Message.Contains("--no calls--"));570 }571 public abstract class AbstractCUT572 {573 public void A() { this.DoA(); }574 public abstract void DoA();575 public void B() { this.DoB(); }576 protected abstract void DoB();577 }578 [TestMethod, TestCategory("Lite"), TestCategory("Assertion")]579 public void ShouldAssertAbstractMethodExercisedOnAbstractCUT()580 {581 var target = Mock.Create<AbstractCUT>(Behavior.CallOriginal);582 Mock.Arrange(() => target.DoA()).DoNothing();583 target.A();584 Mock.Assert(() => target.DoA(), Occurs.Once());585 Mock.NonPublic.Arrange(target, "DoB").DoNothing();586 target.B();587 Mock.NonPublic.Assert(target, "DoB", Occurs.Once());588 }589 [TestMethod]590 public void ShouldIncludeMessageInPosthocAssertion()591 {592 var x = Mock.Create<IDisposable>();593 var ex = Assert.Throws<AssertionException>(() => Mock.Assert(() => x.Dispose(), "The message!"));594 Assert.True(ex.Message.Contains("The message!"));595 }596 [TestMethod]597 public void ShouldIncludeMessageInBlanketAssertionWithMultipleFailures()598 {599 var x = Mock.Create<IDisposable>();600 Mock.Arrange(() => x.Dispose()).MustBeCalled("Because of reasons!");601 Mock.Arrange(() => x.Dispose()).InOrder("More reasons!");602 var ex = Assert.Throws<AssertionException>(() => Mock.Assert(x, "The blanket!"));603 Assert.True(ex.Message.Contains("Because of reasons!"));604 Assert.True(ex.Message.Contains("More reasons!"));605 Assert.True(ex.Message.Contains("The blanket!"));606 }607 [TestMethod]608 public void ShouldIncludeMessageInBlanketAssertionWithSingleFailure()609 {610 var x = Mock.Create<IDisposable>();611 Mock.Arrange(() => x.Dispose()).MustBeCalled("Because of reasons!");612 var ex = Assert.Throws<AssertionException>(() => Mock.Assert(x, "The blanket!"));613 Assert.True(ex.Message.Contains("Because of reasons!"));614 Assert.True(ex.Message.Contains("The blanket!"));615 }616 public class FooWithSetThatThows617 {618 public virtual int Value619 {620 get { return value; }621 set { throw new NotImplementedException(); }622 }623 private readonly int value;624 }625 public interface IView626 {627 }628 public interface IViewService629 {630 void TryCloseViews(IEnumerable<IView> param1);631 IView ActiveView { get; set; }632 IView[] Views { get; set; }633 }634 public enum RegionNames635 {636 OperationsEditRegion637 }638 public interface IRegionManager639 {640 void RequestNavigate(RegionNames names, FooExrepssion exp);641 }642 public class FooExrepssion643 {644 public virtual void Update(IEnumerable<string> arguments)645 {646 }647 public virtual void Update(IEnumerable<int> arguments)648 {649 }650 public virtual void UpdateIt(FooResult value)651 {652 }653 }654 public class FooResult655 {656 }657 public interface IDataAccess658 {659 void ProcessFilterResult(FooResult result, string email, string body);660 }661 public interface IFooRepository662 {663 IList<Foo> GetFoos();664 }665 public interface IFoo666 {667 void EchoOut(out bool expected);668 void VoidCall();669 int Value { get; set; }670 void Execute(string arg);671 int Echo(int intValue);672 int Execute(int arg1, int arg2);673 IFoo GetFoo();674 }675 public interface IFooIndexed676 {677 string this[int key] { get; set; }678 }679 public class Foo680 {681 public virtual int Echo(int input)682 {683 return input;684 }685 public virtual int Sum(int x, int y)686 {687 return x + y;688 }689 public virtual Bar GetBar()690 {691 return new Bar();692 }693 public virtual bool Value { get; set; }694 protected virtual void OnFooValueChanged()695 {696 }697 public virtual IFoo FooValue698 {699 get700 {701 return fooValue;702 }703 set...
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!!