public void ConventionBasedPresenterDiscoveryStrategy_GetBindings_DoesNotThrowExceptionWhenNoPresenterTypeFound() { TestHelper.Isolate(TestContext, () => { // Arrange var buildManager = MockRepository.GenerateStub<IBuildManager>(); buildManager.Stub(b => b.GetType(Arg<string>.Is.Anything, Arg<bool>.Is.Equal(false))) .Return(null); var hosts = new[] { new object() }; var views = new List<IView> { MockRepository.GenerateStub<IView>() }; var strategy = new ConventionBasedPresenterDiscoveryStrategy(buildManager); // Act strategy.GetBindings(hosts, views); }); }
public void ConventionBasedPresenterDiscoveryStrategy_GetBindings_ShouldGuardNullViewInstances() { // Arrange var buildManager = MockRepository.GenerateStub<IBuildManager>(); var strategy = new ConventionBasedPresenterDiscoveryStrategy(buildManager); try { // Act strategy.GetBindings(new object[0], null); // Assert Assert.Fail("Expected exception not thrown"); } catch (ArgumentNullException ex) { // Assert Assert.AreEqual("viewInstances", ex.ParamName); } }
public void ConventionBasedPresenterDiscoveryStrategy_GetBindings_FindsPresenterTypeFromBuildManager() { TestHelper.Isolate(TestContext, () => { // Arrange var presenter = MockRepository.GenerateStub<IPresenter<IView>>(); var buildManager = MockRepository.GenerateStub<IBuildManager>(); buildManager.Stub(b => b.GetType(Arg<string>.Is.Anything, Arg<bool>.Is.Equal(false))) .Return(presenter.GetType()); var hosts = new[] { new object() }; var views = new List<IView> { MockRepository.GenerateStub<IView>() }; var strategy = new ConventionBasedPresenterDiscoveryStrategy(buildManager); // Act var result = strategy.GetBindings(hosts, views); // Assert Assert.AreEqual(presenter.GetType(), result.First().Bindings.First().PresenterType); }); }
public void ConventionBasedPresenterDiscoveryStrategy_GetBindings_ReturnsAsSoonAsPresenterTypeIsFound() { TestHelper.Isolate(TestContext, () => { // Arrange var presenter = MockRepository.GenerateStub<IPresenter<IView>>(); var buildManager = MockRepository.GenerateStub<IBuildManager>(); var callCount = 0; buildManager.Stub(b => b.GetType(Arg<string>.Is.Anything, Arg<bool>.Is.Equal(false))) .WhenCalled(mi => { callCount++; mi.ReturnValue = presenter.GetType(); // Find on the first one }) .Return(presenter.GetType()); var hosts = new[] { new object() }; var views = new List<IView> { MockRepository.GenerateStub<IView>() }; var strategy = new ConventionBasedPresenterDiscoveryStrategy(buildManager); // Act strategy.GetBindings(hosts, views); // Assert Assert.IsTrue(strategy.CandidatePresenterTypeFullNameFormats.Count() > 1); Assert.AreEqual(1, callCount); }); }