public static void Resolve_ThrowsArgumentNullException_ForNullViewType() { // Arrange var resolver = new PresenterConstructorResolver(); var presenterType = typeof(IPresenter <IView>); // Act & Assert Assert.Throws <ArgumentNullException>(() => resolver.Resolve(presenterType, null)); }
public static void Resolve_ThrowsArgumentException_WhenPresenterTypeIsPrivate() { // Arrange var resolver = new PresenterConstructorResolver(); var presenterType = typeof(MyPrivatePresenter_); var viewType = typeof(IView); // Act & Assert Assert.Throws <ArgumentException>(() => resolver.Resolve(presenterType, viewType)); }
public static void Resolve_ThrowsArgumentException_WhenMissingRequiredConstructor() { // Arrange var resolver = new PresenterConstructorResolver(); var presenterType = typeof(MyBadPresenter <IMyView1>); var viewType = typeof(IMyView1); // Act & Assert Assert.Throws <ArgumentException>(() => resolver.Resolve(presenterType, viewType)); }
public static void Resolve_ThrowsArgumentException_ForViewTypeMismatch() { // Arrange var resolver = new PresenterConstructorResolver(); var presenterType = typeof(MyPresenter <IMyView1>); var viewType = typeof(IMyView2); // Act & Assert Assert.Throws <ArgumentException>(() => resolver.Resolve(presenterType, viewType)); }
public static void Resolve_ReturnsDifferentConstructors_ForDifferentViewTypes() { // Arrange var resolver = new PresenterConstructorResolver(); // Act var ctor1 = resolver.Resolve(typeof(MyPresenter <IView>), typeof(IMyView3)); var ctor2 = resolver.Resolve(typeof(MyPresenter <IView>), typeof(IMyView4)); // Assert Assert.NotEqual(ctor1, ctor2); }
public static void Resolve_ReturnsExpectedConstructor() { // Arrange var resolver = new PresenterConstructorResolver(); var presenterType = typeof(MyPresenter <IMyView1>); var viewType = typeof(IMyView1); var view = Substitute.For <IMyView1>(); // Act var ctor = resolver.Resolve(presenterType, viewType); var instance = ctor.Invoke(null, new[] { view }); var presenter = instance as MyPresenter <IMyView1>; // Assert Assert.True(presenter != null); if (presenter != null) { Assert.Equal(view, presenter.View); } }