public void ShouldThrowExceptionOnStringArgOfDispose() { Mocker mockReq = new Mocker(typeof(IHttpRequest)); mockReq.When("Dispose").Then <string>((arg) => { /* do nothing */ }); IHttpRequest calc = (IHttpRequest)mockReq.Create(); }
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); }
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" } ); }
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)); }
public void ShouldDisposeWithDelegate() { Mocker mockReq = new Mocker(typeof(IHttpRequest)); mockReq.When("Dispose").Then(() => { /* do nothing */ }).With(); IHttpRequest req = (IHttpRequest)mockReq.Create(); req.Dispose(); }
public TestMockerCreateOnly() { Mocker mockCalc = new Mocker(typeof(ICalculator)); calc = (ICalculator)mockCalc.Create(); Mocker mockReq = new Mocker(typeof(IHttpRequest)); req = (IHttpRequest)mockReq.Create(); }
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 }
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" } ); }
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); }
public void Create_ReturnsCorrectType() { // Arrange. var moqzilla = new Mocker(); // Act. var obj = moqzilla.Create <TestSubjectWithMultipleDependenciesExample>(); // Assert. obj.Should().NotBeNull() .And.BeOfType <TestSubjectWithMultipleDependenciesExample>(); }
public void Create_DoesNotThrow_WhenNoMocksRequired() { // Arrange. var moqzilla = new Mocker(); // Act. Action act = () => moqzilla.Create <TestSubjectWithNoDependencies>(); // Assert. act.Should().NotThrow(); }
public void Create_DoesNotThrow_WhenMockingMultipleDependencies() { // Arrange. var moqzilla = new Mocker(); // Act. Action act = () => moqzilla.Create <TestSubjectWithMultipleDependenciesExample>(); // Assert. act.Should().NotThrow(); }
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); }
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(); }
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()); }
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."); }
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)); }
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")); }
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(); }
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 }
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()); }