Exemple #1
0
        public void ShouldThrowExceptionOnStringArgOfDispose()
        {
            Mocker mockReq = new Mocker(typeof(IHttpRequest));

            mockReq.When("Dispose").Then <string>((arg) => { /* do nothing */ });
            IHttpRequest calc = (IHttpRequest)mockReq.Create();
        }
Exemple #2
0
        public void TestLoadSearchOportoMock()
        {
            Mocker mocker = new Mocker(typeof(IWeatherWebApi));

            mocker
            .When("Search")
            .With("oporto")
            .Return(new LocationInfo[] {
                null,
                null,
                null,
                null,
                null,
                new LocationInfo("Cuba", "", 0, 0)
            });

            IWeatherWebApi api = (IWeatherWebApi)mocker.Create();

            LocationInfo[] locals = api.Search("oporto");

            Assert.AreEqual("Cuba", locals[5].Country);
            Assert.AreEqual("", locals[5].Region);
            Assert.AreEqual(0, locals[5].Latitude);
            Assert.AreEqual(0, locals[5].Longitude);
        }
Exemple #3
0
        public void ShouldThrowExceptionOnDoubleResultOfAdd()
        {
            Mocker mockCalc = new Mocker(typeof(ICalculator));

            mockCalc.When("Add").Then <int, int, double>((a, b) => a + b);
            ICalculator calc = (ICalculator)mockCalc.Create();
        }
        public void Test_Random_If()
        {
            // Arrange.
            var commands = new[]
            {
                new BmsCommand {
                    Name = "RANDOM", Value = "3"
                },
                new BmsCommand {
                    Name = "IF", Value = "3"
                },
                new BmsCommand {
                    Name = "PASS"
                },
                new BmsCommand {
                    Name = "ENDIF"
                },
            };

            var randomizer = new Mock <IRandomizer>();

            randomizer.Setup(x => x.GetInt(It.IsAny <int>())).Returns(3 - 1);
            Mocker.Inject(randomizer);

            // Act.
            var subject = Mocker.Create <BmsRandomResolver>();
            var output  = subject.Resolve(commands);

            // Assert.
            output.Should().BeEquivalentTo(
                new BmsCommand {
                Name = "PASS"
            }
                );
        }
        public void SelectedSearchResult_NavigatesToChoseDestinationOnMapViewModel_WhenResultViewModelEqualToSetLocationOnMapResultModel(Fixture fixture)
        {
            // Arrange
            var viewModel = ClassUnderTest;
            var choseDetinationViewModel    = Mocker.Create <ChooseDestinationOnMapViewModel>();
            var setLocationOnMapResultModel = fixture.Create <SetLocationOnMapResultModel>();
            var homeResultModel             = fixture.Create <HomeResultModel>();
            var workResultModel             = fixture.Create <WorkResultModel>();

            viewModel.SearchResults = new ObservableCollection <IAutoCompleteResultModel>
            {
                setLocationOnMapResultModel,
                homeResultModel,
                workResultModel
            };

            GetMock <IChooseOnMapViewModelFactory>().Setup(x => x.GetChooseDestinationOnMapViewModel())
            .Returns(choseDetinationViewModel);

            // Act
            Scheduler.Schedule(() => viewModel.SelectedSearchResult = viewModel.SearchResults[0]);
            Scheduler.Start();

            // Assert
            GetMock <INavigationService>().Verify(x => x.NavigateTo(choseDetinationViewModel), Times.Once);
        }
        public TestIHttpRequestForPartialRequest()
        {
            Mocker mock = new Mocker(typeof(IHttpRequest));

            mock.When("GetBody").With(pastWeatherForLisbonUrl).Return(pastWeatherForLisbon);
            req = (IHttpRequest)mock.Create();
        }
        public void Test_SetRandom()
        {
            // Arrange.
            var commands = new[]
            {
                new BmsCommand {
                    Name = "SETRANDOM", Value = "3"
                },
                new BmsCommand {
                    Name = "IF", Value = "3"
                },
                new BmsCommand {
                    Name = "PASS"
                },
                new BmsCommand {
                    Name = "ENDIF"
                },
            };

            // Act.
            var subject = Mocker.Create <BmsRandomResolver>();
            var output  = subject.Resolve(commands);

            // Assert.
            output.Should().BeEquivalentTo(
                new BmsCommand {
                Name = "PASS"
            }
                );
        }
Exemple #8
0
        public void When_calling_TestCleanup()
        {
            var classUnderTest = Mocker.Create <SpecBecauseBase>();

            Engine.Because(() => classUnderTest.TestCleanup());

            var verifyFailed = false;

            Engine.It($"forwards the call to {nameof(Engine)}", () =>
            {
                try
                {
                    Mocker.GetMock <IEngine>().Verify(x => x.Dispose(), Times.Once);
                }
                catch
                {
                    verifyFailed = true;
                    throw;
                }
            });

            // IMPORTANT: Do not place this if statement in an It call
            if (verifyFailed)
            {
                throw new Exception($"{nameof(SpecBecauseBase)}.{nameof(SpecBecauseBase.Dispose)} never called {nameof(Engine)}.{nameof(Engine.Dispose)}.");
            }
        }
        public TestMockerForPartialCalculator()
        {
            Mocker mock = new Mocker(typeof(ICalculator));

            mock.When("Add").With(5, 7).Return(12).With(3, 4).Return(7);
            mock.When("Mul").With(3, 3).Return(9);
            calc = (ICalculator)mock.Create();
        }
        public TestMockerForPartialHttpRequest()
        {
            Mocker mock = new Mocker(typeof(IHttpRequest));

            mock.When("GetBody").With("www.somerequest.com").Return("response");
            mock.When("GetBody").With("www.anotherrequest.com").Return("anotherresponse");
            req = (IHttpRequest)mock.Create();
        }
        public void TestPhase1()
        {
            Mocker      mock = new Mocker(typeof(ICalculator));
            ICalculator calc = (ICalculator)mock.Create();

            Console.WriteLine(calc.ToString()); // > OK ToString() de Object
            calc.Add(11, 8);                    // > throws NotImplementedException
        }
        public void Title_should_be_selected_food_name(FoodDto foodDto)
        {
            // Given
            var viewModel = Mocker.Create <FoodDetailViewModel>(new NamedParameter("selectedFood", foodDto));

            // then
            Assert.That(viewModel.Title, Is.EqualTo(foodDto.Name));
        }
        public void SelectedFood_should_be_equal_food_which_is_passed_from_parameter(FoodDto foodDto)
        {
            // given
            var viewModel = Mocker.Create <FoodDetailViewModel>(new NamedParameter("selectedFood", foodDto));

            // then
            Assert.That(viewModel.SelectedFood, Is.EqualTo(foodDto));
        }
Exemple #14
0
        public void ShouldDisposeWithDelegate()
        {
            Mocker mockReq = new Mocker(typeof(IHttpRequest));

            mockReq.When("Dispose").Then(() => { /* do nothing */ }).With();
            IHttpRequest req = (IHttpRequest)mockReq.Create();

            req.Dispose();
        }
Exemple #15
0
        public TestMockerCreateOnly()
        {
            Mocker mockCalc = new Mocker(typeof(ICalculator));

            calc = (ICalculator)mockCalc.Create();
            Mocker mockReq = new Mocker(typeof(IHttpRequest));

            req = (IHttpRequest)mockReq.Create();
        }
Exemple #16
0
        public void When_calling_void_Because()
        {
            Action expectedAct    = () => { };
            var    classUnderTest = Mocker.Create <SpecBecauseBase>();

            Engine.Because(() => classUnderTest.Because(expectedAct));

            Engine.It($"forwards the call to {nameof(Engine)}", () =>
                      Mocker.GetMock <IEngine>().Verify(x => x.Because(expectedAct), Times.Once));
        }
        public void Add_to_basket_should_add_order_to_Orders(FoodDto foodDto)
        {
            // Given
            var viewModel = Mocker.Create <FoodDetailViewModel>(new NamedParameter("selectedFood", foodDto));

            // when
            viewModel.AddToBasket.Execute(null);

            // then
        }
Exemple #18
0
        public void When_calling_It()
        {
            var    expectedAssertionMessage = Guid.NewGuid().ToString();
            Action expectedAssertion        = () => { };
            var    classUnderTest           = Mocker.Create <SpecBecauseBase>();

            Engine.Because(() => classUnderTest.It(expectedAssertionMessage, expectedAssertion));

            Engine.It($"forwards the call to {nameof(Engine)}", () =>
                      Mocker.GetMock <IEngine>().Verify(x => x.It(expectedAssertionMessage, expectedAssertion), Times.Once));
        }
        public void GoToBasket_should_navigate_to_Basket_page(FoodDto foodDto)
        {
            // Given
            var viewModel = Mocker.Create <FoodDetailViewModel>(new NamedParameter("selectedFood", foodDto));

            // when
            viewModel.GoToBasket.Execute(null);

            // then
            GetMock <INavigationService>().Verify(x => x.NavigateAsync(typeof(IBasketViewModel)));
        }
        public void Test_Switch_Case_Fallthrough()
        {
            // Arrange.
            var commands = new[]
            {
                new BmsCommand {
                    Name = "SWITCH", Value = "3"
                },
                new BmsCommand {
                    Name = "CASE", Value = "1"
                },
                new BmsCommand {
                    Name = "FAIL"
                },
                new BmsCommand {
                    Name = "SKIP"
                },
                new BmsCommand {
                    Name = "CASE", Value = "3"
                },
                new BmsCommand {
                    Name = "PASS 1"
                },
                new BmsCommand {
                    Name = "DEF"
                },
                new BmsCommand {
                    Name = "PASS 2"
                },
                new BmsCommand {
                    Name = "ENDSW"
                },
            };

            var randomizer = new Mock <IRandomizer>();

            randomizer.Setup(x => x.GetInt(It.IsAny <int>())).Returns(3 - 1);
            Mocker.Inject(randomizer);

            // Act.
            var subject = Mocker.Create <BmsRandomResolver>();
            var output  = subject.Resolve(commands);

            // Assert.
            output.Should().BeEquivalentTo(
                new BmsCommand {
                Name = "PASS 1"
            },
                new BmsCommand {
                Name = "PASS 2"
            }
                );
        }
Exemple #21
0
        public void ShouldAddTwoNumbersWithDelegate()
        {
            Mocker mockCalc = new Mocker(typeof(ICalculator));

            mockCalc.When("Add").Then <int, int, int>((a, b) => a + b).With(3, 5);
            ICalculator calc = (ICalculator)mockCalc.Create();

            int actual   = calc.Add(3, 5);
            int expected = 8;

            Assert.AreEqual(expected, actual);
        }
Exemple #22
0
        public void Create_ReturnsCorrectType()
        {
            // Arrange.
            var moqzilla = new Mocker();

            // Act.
            var obj = moqzilla.Create <TestSubjectWithMultipleDependenciesExample>();

            // Assert.
            obj.Should().NotBeNull()
            .And.BeOfType <TestSubjectWithMultipleDependenciesExample>();
        }
Exemple #23
0
        public void Create_DoesNotThrow_WhenNoMocksRequired()
        {
            // Arrange.
            var moqzilla = new Mocker();

            // Act.
            Action act = () =>
                         moqzilla.Create <TestSubjectWithNoDependencies>();

            // Assert.
            act.Should().NotThrow();
        }
Exemple #24
0
        public void Create_DoesNotThrow_WhenMockingMultipleDependencies()
        {
            // Arrange.
            var moqzilla = new Mocker();

            // Act.
            Action act = () =>
                         moqzilla.Create <TestSubjectWithMultipleDependenciesExample>();

            // Assert.
            act.Should().NotThrow();
        }
Exemple #25
0
        public void Implement_Should_CauseImplementedClassToBeUsed()
        {
            // Arrange.
            var moqzilla = new Mocker();
            var myObj    = new SomeImplementation();

            // Act.
            moqzilla.Implement <ISomeImplementation>(myObj);
            var output = moqzilla.Create <SomeClassWithSomeImplementationDependency>();

            // Assert.
            output.SomeImplementation.Should().Be(myObj);
        }
Exemple #26
0
        public void RegisterActivation_Should_CauseActivationsToBeRunOnCreate()
        {
            // Arrange.
            var moqzilla  = new Mocker();
            var activated = false;

            // Act.
            moqzilla.Activate <IDisposable>(m => activated = true);
            moqzilla.Create <TestSubjectWithSingleDependencyExample>();

            // Assert.
            activated.Should().BeTrue();
        }
Exemple #27
0
        public void Create_UsesCorrectConstructor()
        {
            // Arrange.
            var moqzilla = new Mocker();
            var obj      = moqzilla.Create <TestSubjectWithSingleDependencyExample>();
            var mock     = moqzilla.Mock <IDisposable>();

            // Act.
            obj.Dispose();

            // Assert.
            mock.Verify(x => x.Dispose());
        }
Exemple #28
0
        public void Create_Throws_WhenAttemptingToCreateClassWithoutMockableDependencies()
        {
            // Arrange.
            var moqzilla = new Mocker();

            // Act.
            Action act = () =>
                         moqzilla.Create <TestSubjectWithoutValidConstructorExample>();

            // Assert.
            act.Should().Throw <MockerException>()
            .WithMessage("Mocker could not find constructors that consist entirely of interfaces.");
        }
Exemple #29
0
        public void Returns_Int32Arg()
        {
            Mock <IThing> thingMock = Mocker.Create <IThing>();

            thingMock.When(thing => thing.Method2(1)).Return("ABC");
            thingMock.When(thing => thing.Method2(2)).Return("DEF");
            thingMock.When(thing => thing.Method2(1)).Return("XYZ");

            Assert.AreEqual("ABC", thingMock.Object.Method2(1));
            Assert.AreEqual("DEF", thingMock.Object.Method2(2));
            Assert.AreEqual("XYZ", thingMock.Object.Method2(1));
            Assert.AreEqual(null, thingMock.Object.Method2(1));
        }
Exemple #30
0
        public void Returns_StringArg()
        {
            Mock <IThing> thingMock = Mocker.Create <IThing>();

            thingMock.When(thing => thing.Method1("abc")).Return("ABC");
            thingMock.When(thing => thing.Method1("def")).Return("DEF");
            thingMock.When(thing => thing.Method1("abc")).Return("XYZ");

            Assert.AreEqual("ABC", thingMock.Object.Method1("abc"));
            Assert.AreEqual("DEF", thingMock.Object.Method1("def"));
            Assert.AreEqual("XYZ", thingMock.Object.Method1("abc"));
            Assert.AreEqual(null, thingMock.Object.Method1("abc"));
        }
Exemple #31
0
        public void WhenAllSolutionDataExists_ShouldPublishPackagesForEachNuspec()
        {
            //Arrange
            var mocker = new Mocker<Publisher>();

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.GetDirectory(It.Is<string>(s => s == _defaultSolutionFile)))
                .Returns(_defaultSolutionDir);

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.GetDirectory(It.Is<string>(s => s == _defaultNuspec1Path)))
                .Returns(_defaultProject1Dir);

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.GetDirectory(It.Is<string>(s => s == _defaultNuspec2Path)))
                .Returns(_defaultProject2Dir);

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.FindFiles(
                    It.Is<string>(s => s == _defaultSolutionDir),
                    It.Is<string>(s => s == _defaultNuspecPattern),
                    It.Is<bool>(b => b == true))
                ).Returns(new string[] { _defaultNuspec1Path, _defaultNuspec2Path });

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.FindFiles(
                    It.Is<string>(s => s == _defaultProject1Dir),
                    It.Is<string>(s => s == "*.csproj"),
                    It.Is<bool>(b => b == false))
                ).Returns(new string[] { _defaultProject1Path });

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.FindFiles(
                    It.Is<string>(s => s == _defaultProject2Dir),
                    It.Is<string>(s => s == "*.csproj"),
                    It.Is<bool>(b => b == false))
                ).Returns(new string[] { _defaultProject2Path });

            var project1Package = new Mock<IPackage>();
            mocker.GetMock<IPackageFactory>()
                .Setup(f => f.CreateFromProject(
                    It.Is<string>(s => s == _defaultNuspec1Path),
                    It.Is<string>(s => s == _defaultProject1Path),
                    It.IsAny<string>(),
                    It.IsAny<bool>())
                ).Returns(project1Package.Object);

            var project2Package = new Mock<IPackage>();
            mocker.GetMock<IPackageFactory>()
                .Setup(f => f.CreateFromProject(
                    It.Is<string>(s => s == _defaultNuspec2Path),
                    It.Is<string>(s => s == _defaultProject2Path),
                    It.IsAny<string>(),
                    It.IsAny<bool>())
                ).Returns(project2Package.Object);

            mocker.GetMock<INuGetServer>()
                .Setup(s => s.PushPackage(It.Is<IPackage>(p => p == project1Package.Object || p == project2Package.Object)));

            mocker.SetBehavior<ILog>(MockBehavior.Loose);

            var publisher = mocker.Create() as IPublisher;

            //Act
            publisher.PublishPackages(_defaultSolutionFile, _defaultNuspecPattern, "Release", false);

            //Assert
            mocker.VerifyAll();
        }
Exemple #32
0
        public void When_Should()
        {
            //Arrange
            var projectFile = "Project.csproj";
            var nuspecFile = "Project.nuspec";
            var nuGetFile = "Project.nupkg";
            var mocker = new Mocker<PackageFactory>();

            mocker.GetMock<IFileSystem>()
                .Setup(f => f.OpenRead(It.Is<string>(s => s == projectFile)))
                .Returns(File.OpenRead(Path.Combine(Directory.GetCurrentDirectory(), @"SampleProjectFile.xml")));

            mocker.GetMock<IFileSystem>()
                .Setup(f => f.ChangeFileExtension(It.Is<string>(s => s == projectFile), It.Is<string>(s => s == "nupkg")))
                .Returns(nuGetFile);

            mocker.GetMock<IFileSystem>()
                .Setup(f => f.GetDirectory(It.Is<string>(s => s == projectFile)))
                .Returns(string.Empty);

            mocker.GetMock<IFileSystem>()
                .Setup(f => f.CombinePaths(It.IsAny<string>(),  It.Is<string>(s => s == "packages.config")))
                .Returns("packages.config");

            mocker.GetMock<IFileSystem>()
                .Setup(f => f.CombinePaths(It.Is<string>(s => s == @"bin\Release"), It.Is<string>(s => s == "Project.dll")))
                .Returns(@"bin\Release\Project.dll");

            mocker.GetMock<IFileSystem>()
                .Setup(f => f.FindFiles(It.Is<string>(s => s == @"bin\Release"), It.Is<string>(s => s == "*.dll"), It.IsAny<bool>()))
                .Returns(Directory.GetFiles(Directory.GetCurrentDirectory(), "*.dll").Select(s => Path.GetFileName(s)));

            mocker.GetMock<IFileSystem>()
                .Setup(f => f.OpenWrite(It.Is<string>(s => s == nuGetFile)))
                .Returns(new FileStream(nuGetFile, FileMode.Create, FileAccess.ReadWrite));

            var projectReaderMoq = new Mock<IVsProjectReader>(MockBehavior.Strict);
            projectReaderMoq
                .Setup(r => r.GetBinPath(It.Is<string>(s => s == "Release")))
                .Returns(@"bin\Release");
            projectReaderMoq
                .Setup(r => r.GetAssemblyName())
                .Returns("Project.dll");

            mocker.GetMock<IVsProjectReaderFactory>()
                .Setup(r => r.Create(It.Is<string>(s => s == projectFile)))
                .Returns(projectReaderMoq.Object);

            var assemblyReaderMoq = new Mock<IAssemblyReader>(MockBehavior.Strict);
            assemblyReaderMoq.Setup(r => r.GetCompany()).Returns("Run00");
            assemblyReaderMoq.Setup(r => r.GetCopyright()).Returns("2013");
            assemblyReaderMoq.Setup(r => r.GetDescription()).Returns("Blah Blah");
            assemblyReaderMoq.Setup(r => r.GetFileVersion()).Returns("1.0.0.0");
            assemblyReaderMoq.Setup(r => r.GetPackageId()).Returns("Run00.Product.Title");
            assemblyReaderMoq.Setup(r => r.GetPackageTitle()).Returns("Title for Run00.Product");
            assemblyReaderMoq.Setup(r => r.GetProduct()).Returns("Product");
            assemblyReaderMoq.Setup(r => r.GetTitle()).Returns("Title");

            mocker.GetMock<IAssemblyReaderFactory>()
                .Setup(f => f.Create(It.Is<string>(s => s == @"bin\Release\Project.dll")))
                .Returns(assemblyReaderMoq.Object);

            var packageFactory = mocker.Create() as IPackageFactory;

            //Act
            var result = packageFactory.CreateFromProject(nuspecFile, projectFile, "Release", true);

            //Assert
        }
Exemple #33
0
        public void WhenNuspecDoesNotHaveMatchingProject_ShouldThrowInvalidOperation()
        {
            //Arrange
            var mocker = new Mocker<Publisher>();

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.GetDirectory(It.Is<string>(s => s == _defaultSolutionFile)))
                .Returns(_defaultSolutionDir);

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.GetDirectory(It.Is<string>(s => s == _defaultProject1Path)))
                .Returns(_defaultProject1Dir);

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.FindFiles(
                    It.Is<string>(s => s == _defaultSolutionDir),
                    It.Is<string>(s => s == _defaultNuspecPattern),
                    It.Is<bool>(b => b == true))
                ).Returns(new string[] { _defaultProject1Path });

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.FindFiles(
                    It.Is<string>(s => s == _defaultProject1Dir),
                    It.Is<string>(s => s == "*.csproj"),
                    It.Is<bool>(b => b == false))
                ).Returns(new string[] { });

            mocker.SetBehavior<ILog>(MockBehavior.Loose);

            var publisher = mocker.Create() as IPublisher;

            //Act
            var exception = ExceptionTest.Catch(() => publisher.PublishPackages(_defaultSolutionFile, _defaultNuspecPattern, "Release", false));

            //Assert
            mocker.VerifyAll();
            Assert.AreEqual(typeof(InvalidOperationException), exception.GetType());
        }