Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
            }
        }