void SetupMockProjectsService() { mockProjectService = new Mock <IProjectsService>(); // Setup successful GetProjects call which requires pre-authentication mockProjectService .When(() => MockAuthenticationService.Object.IsAuthenticated) .Setup(svc => svc.GetProjects()) .Callback(() => { mockProjects = GetMockProjects(6); }) .Returns(() => Task.FromResult(mockProjects)); // Setup failure scenario of calling GetProjects while not authenticated mockProjectService .When(() => !MockAuthenticationService.Object.IsAuthenticated) .Setup(svc => svc.GetProjects()) .Throws(new NotAuthenticatedException()); // Setup successful call of GetProjectLogo which required pre-authentication mockProjectService .When(() => MockAuthenticationService.Object.IsAuthenticated) .Setup(svc => svc.GetProjectLogo(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>())) .Returns(Task.FromResult(System.IO.Stream.Null)); // Setup failure scenario of calling GetProjectLogo while not authenticated mockProjectService .When(() => !MockAuthenticationService.Object.IsAuthenticated) .Setup(svc => svc.GetProjectLogo(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>())) .Throws(new NotAuthenticatedException()); // Setup IProjectsService as Singleton for dependency injection into the view model Ioc.RegisterSingleton <IProjectsService>(mockProjectService.Object); }
public void ChooseAffirmativeExpetationOnPropertySetter() { var mock = new Mock<IFoo>(); var when = true; var positive = false; var negative = false; mock.When(() => when).SetupSet(x => x.Value = "foo").Callback(() => positive = true); mock.When(() => !when).SetupSet(x => x.Value = "foo").Callback(() => negative = true); mock.Object.Value = "foo"; Assert.True(positive); Assert.False(negative); when = false; positive = false; mock.Object.Value = "foo"; Assert.False(positive); Assert.True(negative); when = true; negative = false; mock.Object.Value = "foo"; Assert.True(positive); Assert.False(negative); }
public void ChooseAffirmativeExpetationOnVoidMethod() { var mock = new Mock<IFoo>(); var when = true; var positive = false; var negative = false; mock.When(() => when).Setup(x => x.Bar()).Callback(() => positive = true); mock.When(() => !when).Setup(x => x.Bar()).Callback(() => negative = true); mock.Object.Bar(); Assert.True(positive); Assert.False(negative); when = false; positive = false; mock.Object.Bar(); Assert.False(positive); Assert.True(negative); when = true; negative = false; mock.Object.Bar(); Assert.True(positive); Assert.False(negative); }
public void ChooseAffirmativeExpectationOnPropertyIndexer() { var mock = new Mock<IFoo>(); var first = true; mock.When(() => first).Setup(x => x[0]).Returns("bar"); mock.When(() => !first).Setup(x => x[0]).Returns("no bar"); Assert.Equal("bar", mock.Object[0]); first = false; Assert.Equal("no bar", mock.Object[0]); first = true; Assert.Equal("bar", mock.Object[0]); }
void SetupMockProjectsService() { mockProjectService = new Mock <IProjectsService>(); // Setup use of GetProjectLogo when authenticated mockProjectService .When(() => MockAuthenticationService.Object.IsAuthenticated) .Setup(svc => svc.GetProjectLogo(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>())) .Returns(Task.FromResult(System.IO.Stream.Null)); // Setup use of GetProjectLogo when NOT authenticated mockProjectService .When(() => !MockAuthenticationService.Object.IsAuthenticated) .Setup(svc => svc.GetProjectLogo(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>())) .Throws(new NotAuthenticatedException()); Ioc.RegisterSingleton <IProjectsService>(mockProjectService.Object); }
public void ExternalConditionMock() { var targetMock = new Mock <ITarget>(); ITarget target = targetMock.Object; // 同一引数で異なる値を返却するモック // (引数以外の外部条件で返却する値を変更するモック) // モック対象: public string GetDate() string region = null; targetMock.When(() => region == "jp").Setup(o => o.GetDate()).Returns("1月1日"); targetMock.When(() => region != "jp").Setup(o => o.GetDate()).Returns("1-1"); // テスト region = "jp"; Assert.Equal("1月1日", target.GetDate()); region = "en"; Assert.Equal("1-1", target.GetDate()); }
public void AfterCallingFilterHandleProperRowsShouldBeLoaded() { var filterValue = "A"; _dataTableColumns.Add(new DataTableColumn { PropertyName = _columnPropertyName }); var annRowModel = new RowViewModel { Name = "Ann" }; IReadOnlyCollection <Json> expectedCollection = new List <RowViewModel> { annRowModel }; _dataProviderMock .When(() => _dataProviderMock.Object.FilterOrderConfiguration.Filters.Any(x => x.Value == filterValue)) .Setup(x => x.CurrentPageRows).Returns(expectedCollection); InitSut(); var firstNameColumn = _sut.Columns.First(x => x.PropertyName == _columnPropertyName); firstNameColumn.Handle(new UniDataTable.ColumnsViewModel.Input.Filter { Value = filterValue }); _sut.Pages.Should().ContainSingle().Which.Rows.Should().ContainSingle(x => x == annRowModel); }
public async Task WriteAllAsync_Writes() { int records = 5; Mock <IFormatReader> reader = new Mock <IFormatReader>(); reader.SetupGet <bool>(x => x.EndOfFile).Returns(true); reader.When(() => records-- > 0).SetupGet <bool>(x => x.EndOfFile).Returns(false); reader.Setup(x => x.ReadNext()).ReturnsAsync(new SNP() { Rsid = "123123", Chromosome = "1", Position = "123", Result = "GG" }); using (MemoryStream ms = new MemoryStream()) using (StreamWriter sr = new StreamWriter(ms)) { TwentyThreeAndMeV5Writer writer = new TwentyThreeAndMeV5Writer(sr, FileFormat.MyHeritageV2); await writer.Begin(); await writer.WriteAllAsync(reader.Object); await writer.End(); ms.Seek(0, SeekOrigin.Begin); string content = Encoding.UTF8.GetString(ms.ToArray()); Assert.Contains("123123\t1\t123\tGG", content); } }
public void MethodCallInvalid() { var mock = new Mock<IBlah>(); mock.When(o => o.DoThing(5)).CheckArguments(); var blah = mock.Object; blah.DoThing(4); }
public void TestWhenAndInlineData(int count, int expected) { var mock = new Mock <Calc>(); // countが偶数の時は、引数の値が何であろうと、Addメソッドは0を返す mock.When(() => (count % 2 == 0)).Setup( (m) => m.Add(It.IsAny <int>(), It.IsAny <int>())) .Returns(0); // countが奇数の時は、引数の値が何であろうと、Addメソッドは1を返す mock.When(() => (count % 2 != 0)).Setup( (m) => m.Add(It.IsAny <int>(), It.IsAny <int>())) .Returns(1); Assert.Equal(expected, mock.Object.Add(0, 0)); }
public void MethodCallReturnsValue() { var mock = new Mock<IBlah>(); mock.When(o => o.GetThing()).Return(10); var blah = mock.Object; Assert.AreEqual(10, blah.GetThing()); }
public void ChooseAffirmativeExpectationOnMethod() { var mock = new Mock<IFoo>(); var when = true; mock.When(() => when).Setup(x => x.Foo()).Returns("bar"); mock.When(() => !when).Setup(x => x.Foo()).Returns("no bar"); Assert.Equal("bar", mock.Object.Foo()); when = false; Assert.Equal("no bar", mock.Object.Foo()); when = true; Assert.Equal("bar", mock.Object.Foo()); }
public void IgnoreSpecificCalls() { var mock = new Mock<IBlah>(); mock.When(o => o.GetThing()).Ignore(); var blah = mock.Object; Assert.AreEqual(default(int), blah.GetThing()); int i = blah.Thing; }
public void ShouldProcessMessages() { // Given var processor = CreateInstance(); var message1 = new ServiceMessage("message") { { "flowId", "myFlowId1" } }; var message2 = new ServiceMessage("test") { { "flowId", "myFlowId2" } }; _serviceMessageParser .Setup(i => i.ParseServiceMessages("messages")) .Returns(new List <IServiceMessage> { message1, message2 }); var flow1 = new Mock <IBuildLogFlow>(); flow1.Setup(i => i.ProcessMessage(processor, _buildVisitor.Object, message1)).Returns(false); var flow2 = new Mock <IBuildLogFlow>(); flow2.Setup(i => i.ProcessMessage(processor, _buildVisitor.Object, message2)).Returns(true); var order = 0; _flowFactory.When(() => order++ == 1).Setup(i => i()).Returns(flow1.Object); _flowFactory.When(() => order++ == 2).Setup(i => i()).Returns(flow2.Object); // When var result = processor.ProcessServiceMessages("messages", _buildVisitor.Object); // Then result.ShouldBeTrue(); processor.Flows.Count.ShouldBe(2); processor.Flows["myFlowId1"].ShouldBe(flow1.Object); processor.Flows["myFlowId2"].ShouldBe(flow2.Object); }
public void ExpectedExceptionWhenToIsSpecificMail() { Mock<IServicioCorreo> mMockMailSvc = new Mock<IServicioCorreo>(); //Se prepara el mock mMockMailSvc.When(() => this.iMailDTO.CuentaDestino.Equals("*****@*****.**")).Setup(x => x.EnviarCorreo(this.iMailDTO, this.iAccountDTO)).Throws<Exception>(); IServicioCorreo mMailSvc = mMockMailSvc.Object; mMailSvc.EnviarCorreo(this.iMailDTO, this.iAccountDTO); }
public void WhenIMakeThePayment() { var request = ScenarioContext.Current["Request"] as MakePaymentRequest; var accountDebtor = ScenarioContext.Current["DebtorAccount"] as Account; var accountCreditor = ScenarioContext.Current["DebtorAccount"] as Account; accountCreditor.AccountNumber = request.CreditorAccountNumber; uow.When(() => request.DebtorAccountNumber != null).Setup(s => s.AccountDataStore.GetAccount(request.DebtorAccountNumber)) .Returns(accountDebtor); uow.When(() => request.CreditorAccountNumber != null).Setup(s => s.AccountDataStore.GetAccount(request.CreditorAccountNumber)) .Returns(accountCreditor); var paymentScheme = new PaymentFactory(); var paymentRequestValidator = new MakePaymentRequestValidator(uow.Object); var paymentService = new PaymentService(uow.Object, paymentScheme, paymentRequestValidator); var result = paymentService.MakePayment(request); ScenarioContext.Current["Result"] = result; }
public void TestWhen() { int count = 0; var mock = new Mock <Calc>(); // countが偶数の時は、引数の値が何であろうと、Addメソッドは0を返す mock.When(() => (count % 2 == 0)).Setup( (m) => m.Add(It.IsAny <int>(), It.IsAny <int>())) .Returns(0); // countが奇数の時は、引数の値が何であろうと、Addメソッドは1を返す mock.When(() => (count % 2 != 0)).Setup( (m) => m.Add(It.IsAny <int>(), It.IsAny <int>())) .Returns(1); count = 10; Assert.Equal(0, mock.Object.Add(0, 0)); // countが10(偶数)なので、0を返す count = 11; Assert.Equal(1, mock.Object.Add(0, 0)); // countが11(奇数)なので、1を返す }
private Mock <IWebClient> CreateWebClientMock(Uri wallpaperListPageUri = null, bool includeDetailPageData = false) { var wallpaperListPageData = _resourceFile[WallpaperListPage]; var wallpaperDetailPageData = _resourceFile[WallpaperDetailPage]; var webClientMock = new Mock <IWebClient>(); webClientMock.When(() => wallpaperListPageUri == null) .Setup(webClient => webClient.DownloadString(It.IsAny <Uri>())) .Returns(wallpaperListPageData); webClientMock.When(() => wallpaperListPageUri != null) .Setup(webClient => webClient.DownloadString(wallpaperListPageUri)) .Returns(wallpaperListPageData); webClientMock.When(() => includeDetailPageData) .Setup(webClient => webClient.DownloadString(It.Is <Uri>(uri => uri.AbsolutePath.Contains("/wallpaper")))) .Returns(wallpaperDetailPageData); return(webClientMock); }
public void WhenICallTheMakePaymentRequestValidation() { Mock <IUnitOfWork> uow = new Mock <IUnitOfWork>(); var request = ScenarioContext.Current["Request"] as MakePaymentRequest; uow.When(() => request.DebtorAccountNumber != "").Setup(s => s.AccountDataStore.GetAccount(request.DebtorAccountNumber)) .Returns(new Account() { AccountNumber = request.DebtorAccountNumber }); uow.When(() => request.CreditorAccountNumber != "").Setup(s => s.AccountDataStore.GetAccount(request.CreditorAccountNumber)) .Returns(new Account() { AccountNumber = request.CreditorAccountNumber }); uow.When(() => request.CreditorAccountNumber == "").Setup(s => s.AccountDataStore.GetAccount(request.CreditorAccountNumber)) .Returns(new Account()); var validator = new MakePaymentRequestValidator(uow.Object); ScenarioContext.Current["Result"] = validator.IsValid(request); }
public void MethodCallThrows() { var mock = new Mock<IBlah>(); mock.When(o => o.GetThing()).Throw(); var blah = mock.Object; int i = blah.GetThing(); }
public void ReadOnlyPropertyReturnsCorrectValue() { var mock = new Mock<IBlah>(); mock.When(o => o.ReadOnly).Return("thing"); var blah = mock.Object; Assert.AreEqual("thing", blah.ReadOnly); }
public void PropertyGetThrows() { var mock = new Mock<IBlah>(); mock.When(o => o.Thing).Throw(); var blah = mock.Object; int i = blah.Thing; }
public void MethodCallWithArgsThrows() { var mock = new Mock<IBlah>(); mock.When(o => o.DoThing(5)).WithExactArguments().Throw(); var blah = mock.Object; blah.DoThing(5); }
public void Test_ExceptionDoesNotStopNotifications_UsingWhenConstraint() { // // Create mocks: // var loggerMock = new Mock <ILogger>(); loggerMock.Setup(x => x.Error(It.IsAny <Exception>())); var bobMock = new Mock <IEmployee>(); bobMock.Setup(x => x.IsWorkingOnDate(It.IsAny <DateTime>())) .Returns(true); bobMock.Setup(x => x.GetNotificationPreference()) .Returns(LunchNotifier.NotificationType.Email); var marthaMock = new Mock <IEmployee>(); marthaMock.Setup(x => x.IsWorkingOnDate(It.IsAny <DateTime>())) .Returns(true); marthaMock.Setup(x => x.GetNotificationPreference()) .Returns(LunchNotifier.NotificationType.Email); DateTime?incomingDate; marthaMock.Setup(x => x.IsWorkingOnDate(It.IsAny <DateTime>())) .Returns((Func <DateTime, bool>)(input => { incomingDate = input; return(input.DayOfWeek != DayOfWeek.Sunday); })); var employeeServiceMock = new Mock <IEmployeeService>(); employeeServiceMock.Setup(x => x.GetEmployeesInNewYorkOffice()) .Returns(new[] { bobMock.Object, marthaMock.Object }); var isFirstCall = true; var notificationServiceMock = new Mock <INotificationService>(MockBehavior.Strict); notificationServiceMock .When(() => isFirstCall) .Setup(x => x.SendEmail(It.IsAny <IEmployee>(), It.IsAny <string>())) .Callback(() => isFirstCall = false) .Throws <Exception>(); ; notificationServiceMock .When(() => !isFirstCall) .Setup(x => x.SendEmail(It.IsAny <IEmployee>(), It.IsAny <string>())); // // Create instance of class I'm testing: // var classUnderTest = new LunchNotifier(notificationServiceMock.Object, employeeServiceMock.Object, loggerMock.Object); // // Run some logic to test: // classUnderTest.SendLunchtimeNotifications(); // // Check the results: // notificationServiceMock.Verify(x => x.SendEmail(It.IsAny <IEmployee>(), It.IsAny <string>()), Times.Exactly(2)); loggerMock.Verify(x => x.Error(It.IsAny <Exception>()), Times.Once); }