예제 #1
0
        public void MethodsCanBeFetchedEvenWithDifferentlyNamedParameters()
        {
            // Arrange
            var interceptor = new ProxyGenerator();
            var toWrap      = new ImplicitImplementationOfSomeInterface();
            var wrapped     = toWrap.As <ISomeInterface>(interceptor);

            // Act
            var result = wrapped.GetSum(3, 5);

            // Assert
            Assert.Equal(8, wrapped.GetSum(3, 5));
        }
예제 #2
0
        public void PropertiesCanBeFetched()
        {
            // Arrange
            var interceptor = new ProxyGenerator();
            var toWrap      = new ImplicitImplementationOfSomeInterface();
            var wrapped     = toWrap.As <ISomeInterface>(interceptor);

            // Act
            var result = wrapped.SomeProperty;

            // Assert
            Assert.Equal(SECRET_OF_THE_UNIVERSE, result);
        }
예제 #3
0
        public void MethodDoesNotExistThrowsException()
        {
            // Arrange
            var interceptor = new ProxyGenerator();
            var toWrap      = new ImplicitImplementationOfSomeInterface();
            var wrapped     = toWrap.As <ISomeInterface>(interceptor);

            // Act
            var ex = Assert.Throws <NotImplementedException>(() => wrapped.ToValue());

            // Assert
            Assert.Equal(
                "System.String ToValue() is not implemented " +
                "by Implicitify.Tests.InstanceWrapper+ImplicitImplemen" +
                "tationOfSomeInterface!", ex.Message);
        }