Example #1
0
        public void Dynamically_Test()
        {
            var generator = new ProxyGenerator(new AspectValidator(new AspectConfigure()));
            var proxyType = generator.CreateInterfaceProxyType(typeof(ITargetService), typeof(TargetService));

            Assert.True(proxyType.GetTypeInfo().IsDynamically());
        }
Example #2
0
        public void CreateProxyType_Test()
        {
            var generator = new ProxyGenerator(new AspectValidator(new AspectConfigure()));
            var proxyType = generator.CreateInterfaceProxyType(typeof(ITargetService), typeof(TargetService));
            var proxyInstance = Activator.CreateInstance(proxyType, new InstanceServiceProvider(null), new InstanceServiceProvider(new TargetService()));

            Assert.IsAssignableFrom<ITargetService>(proxyInstance);
        }
Example #3
0
        public void get_ServiceInstance_With_Generic_Test()
        {
            var generator       = new ProxyGenerator(new AspectValidator(new AspectConfigure()));
            var proxyType       = generator.CreateInterfaceProxyType(typeof(ITargetService), typeof(TargetService));
            var serviceInsatnce = new TargetService();
            var proxyInstance   = Activator.CreateInstance(proxyType, new InstanceServiceProvider(null), new InstanceServiceProvider(serviceInsatnce));

            var serviceInstanceAccessor = proxyInstance as IServiceInstanceAccessor <ITargetService>;

            Assert.NotNull(serviceInstanceAccessor);
            Assert.Equal <ITargetService>(serviceInstanceAccessor.ServiceInstance, serviceInsatnce);
        }
Example #4
0
        public void Create_Generic_ProxyType_Test()
        {
            var generator = new ProxyGenerator(new AspectValidator(new AspectConfigure()));
            var proxyType = generator.CreateInterfaceProxyType(typeof(ITargetService<>), typeof(TargetService<>));

            Assert.True(proxyType.GetTypeInfo().IsGenericTypeDefinition);
            Assert.Single(proxyType.GetTypeInfo().GenericTypeParameters);

            var proxyInstance = Activator.CreateInstance(proxyType.MakeGenericType(typeof(object)), new InstanceServiceProvider(null), new InstanceServiceProvider(null));

            Assert.IsAssignableFrom<ITargetService<object>>(proxyInstance);
        }
Example #5
0
        public void get_ServiceProvider_Test()
        {
            var generator       = new ProxyGenerator(AspectValidatorFactory.GetAspectValidator(new AspectConfigure()));
            var proxyType       = generator.CreateInterfaceProxyType(typeof(ITargetService), typeof(TargetService));
            var serviceProvider = new InstanceServiceProvider(null);
            var proxyInstance   = Activator.CreateInstance(proxyType, serviceProvider, new InstanceServiceProvider(new TargetService()));

            var serviceProviderAccessor = proxyInstance as IServiceProviderAccessor;

            Assert.NotNull(serviceProviderAccessor);
            Assert.Equal(serviceProviderAccessor.ServiceProvider, serviceProvider);
        }
Example #6
0
 public void CreateProxyType_Cache_Test()
 {
     var generator = new ProxyGenerator(new AspectValidator(new AspectConfigure()));
     var proxyType = generator.CreateInterfaceProxyType(typeof(ITargetService), typeof(TargetService));
     var proxyTypeCache = generator.CreateInterfaceProxyType(typeof(ITargetService), typeof(TargetService));
 }