Example #1
0
        public void GetServicesFrom_ExportInterfacesNoInterfaces_NothingRegistered()
        {
            ServiceBuilder builder = new ServiceBuilder(t => t == typeof(MyOtherService));

            builder.ExportInterfaces();

            ServiceInfo[] service = builder.GetServicesFrom(typeof(MyOtherService)).ToArray();

            Assert.Equal(0, service.Length);
        }
Example #2
0
        public void GetServicesFrom_NoExportConfiguration_RegisterService()
        {
            ServiceBuilder builder = new ServiceBuilder(t => t == typeof(MyService));

            builder.Export();

            List <ServiceInfo> services = builder.GetServicesFrom(typeof(MyService)).ToList();

            Assert.Equal(1, services.Count);
        }
Example #3
0
        public void GetServicesFrom_NoTypeMatch_DoesNotExport()
        {
            ServiceBuilder builder = new ServiceBuilder(t => t == typeof(MyService));

            builder.Export();

            ServiceInfo actual = builder.GetServicesFrom(typeof(IMyService1)).FirstOrDefault();

            Assert.Null(actual);
        }
Example #4
0
        public void GetServicesFrom_ConfigureLifetime_RegisterLifetime()
        {
            ServiceBuilder builder = new ServiceBuilder(t => t == typeof(MyService));

            builder.Export(c => c.WithLifetime(Lifetime.Application));

            ServiceInfo service = builder.GetServicesFrom(typeof(MyService)).First();

            ServiceInfo expected = new ServiceInfo(typeof(MyService), typeof(MyService), Lifetime.Application);

            Assert.Equal(expected, service, this.comparer);
        }
Example #5
0
        public void GetServicesFrom_UseFromTypeAsContractName_RegisterContractName()
        {
            ServiceBuilder builder = new ServiceBuilder(t => t == typeof(MyService));

            builder.Export(c => c.AsContractName(c.FromType.Name));

            ServiceInfo service = builder.GetServicesFrom(typeof(MyService)).First();

            ServiceInfo expected = new ServiceInfo(typeof(MyService), typeof(MyService), "MyService", Lifetime.Instance);

            Assert.Equal(expected, service, this.comparer);
        }
Example #6
0
        public void GetServicesFrom_ConfigureContractType_RegisterContractType()
        {
            ServiceBuilder builder = new ServiceBuilder(t => t == typeof(MyService));

            builder.Export(c => c.AsContractType <IMyService1>());

            ServiceInfo service = builder.GetServicesFrom(typeof(MyService)).First();

            ServiceInfo expected = new ServiceInfo(typeof(IMyService1), typeof(MyService), Lifetime.Instance);

            Assert.Equal(expected, service, this.comparer);
        }
Example #7
0
        public void GetServicesFrom_NoExportConfiguration_RegisterSameTypeAsContract()
        {
            ServiceBuilder builder = new ServiceBuilder(t => t == typeof(MyService));

            builder.Export();

            ServiceInfo service = builder.GetServicesFrom(typeof(MyService)).First();

            ServiceInfo expected = new ServiceInfo(typeof(MyService), typeof(MyService), Lifetime.Instance);

            Assert.Equal(expected, service, this.comparer);
        }
Example #8
0
        public void GetServicesFrom_ExportBuilderWithMultipleConfigs_AllConfigurationsExported()
        {
            ServiceBuilder builder = new ServiceBuilder(t => t == typeof(MyService));

            builder.Export(c => c.AsContractType <IMyService1>().AsContractName("IMyService1").WithLifetime(Lifetime.Application));

            var services = builder.GetServicesFrom(typeof(MyService));


            ServiceInfo[] expected = { new ServiceInfo(typeof(IMyService1), typeof(MyService), "IMyService1", Lifetime.Application) };
            AssertEx.AreEquivalent(services, this.comparer.Equals, expected);
        }
Example #9
0
        public void GetServicesFrom_ExportInterfacesWithFilter_RegisterContractType()
        {
            ServiceBuilder builder = new ServiceBuilder(t => t == typeof(MyService));

            builder.ExportInterfaces(x => x == typeof(IMyService2));

            List <ServiceInfo> services = builder.GetServicesFrom(typeof(MyService)).ToList();

            ServiceInfo expected = new ServiceInfo(typeof(IMyService2), typeof(MyService), Lifetime.Instance);

            AssertEx.AreEquivalent(services, this.comparer.Equals, expected);
        }
Example #10
0
        public void GetServicesFrom_ExportInterfacesMultipleInterfacesWithExportConfig_RegisterConfig()
        {
            ServiceBuilder builder = new ServiceBuilder(t => t == typeof(MyService));

            builder.ExportInterfaces(c => true, b => b.WithLifetime(Lifetime.Application));

            List <ServiceInfo> services = builder.GetServicesFrom(typeof(MyService)).ToList();

            ServiceInfo[] expected =
            {
                new ServiceInfo(typeof(IMyService1), typeof(MyService), Lifetime.Application),
                new ServiceInfo(typeof(IMyService2), typeof(MyService), Lifetime.Application),
            };

            AssertEx.AreEquivalent(services, this.comparer.Equals, expected);
        }
Example #11
0
        public void GetServicesFrom_ExportInterfacesMultipleInterfaces_RegisterMultipleContractTypes()
        {
            ServiceBuilder builder = new ServiceBuilder(t => t == typeof(MyService));

            builder.ExportInterfaces();

            List <ServiceInfo> services = builder.GetServicesFrom(typeof(MyService)).ToList();

            ServiceInfo[] expected =
            {
                new ServiceInfo(typeof(IMyService1), typeof(MyService), Lifetime.Instance),
                new ServiceInfo(typeof(IMyService2), typeof(MyService), Lifetime.Instance),
            };

            AssertEx.AreEquivalent(services, this.comparer.Equals, expected);
        }
Example #12
0
        public void GetServicesFrom_MultipleConfigurations_AllConfigurationsExported()
        {
            ServiceBuilder builder = new ServiceBuilder(t => t == typeof(MyService));

            builder.Export(c => c.AsContractType <IMyService1>());
            builder.Export(c => c.AsContractType <IMyService2>());

            var services = builder.GetServicesFrom(typeof(MyService));


            ServiceInfo[] expected = new[]
            {
                new ServiceInfo(typeof(IMyService1), typeof(MyService), Lifetime.Instance),
                new ServiceInfo(typeof(IMyService2), typeof(MyService), Lifetime.Instance),
            };
            AssertEx.AreEquivalent(services, this.comparer.Equals, expected);
        }