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);
                }
        }
Exemple #9
0
 public void MethodCallInvalid()
 {
     var mock = new Mock<IBlah>();
     mock.When(o => o.DoThing(5)).CheckArguments();
     var blah = mock.Object;
     blah.DoThing(4);
 }
Exemple #10
0
        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));
        }
Exemple #11
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());
        }
Exemple #13
0
 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;
 }
Exemple #14
0
        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);
        }
Exemple #16
0
        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;
        }
Exemple #17
0
        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を返す
        }
Exemple #18
0
        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);
        }
Exemple #20
0
 public void MethodCallThrows()
 {
     var mock = new Mock<IBlah>();
     mock.When(o => o.GetThing()).Throw();
     var blah = mock.Object;
     int i = blah.GetThing();
 }
Exemple #21
0
 public void ReadOnlyPropertyReturnsCorrectValue()
 {
     var mock = new Mock<IBlah>();
     mock.When(o => o.ReadOnly).Return("thing");
     var blah = mock.Object;
     Assert.AreEqual("thing", blah.ReadOnly);
 }
Exemple #22
0
 public void PropertyGetThrows()
 {
     var mock = new Mock<IBlah>();
     mock.When(o => o.Thing).Throw();
     var blah = mock.Object;
     int i = blah.Thing;
 }
Exemple #23
0
 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);
        }