Ejemplo n.º 1
0
        public void CreateService_MultipleTimes_ConstructsOnce(int times)
        {
            // Arrange

            var serviceProvider = new Mock <IServiceProvider>();

            serviceProvider
            .Setup(m => m.GetService(typeof(ILoggerFactory)))
            .Returns(new NullLoggerFactory());

            var factory = new SingletonGenericServiceFactory(typeof(Logger <>));

            factory.Initialize(serviceProvider.Object);

            // Act

            var result = Enumerable.Range(1, times).Select(
                _ => factory.CreateService(typeof(ILogger <SingletonGenericServiceFactoryTests>)))
                         .ToList();

            // Assert

            var first = result[0];

            Assert.All(result, p => Assert.Equal(first, p));
        }
Ejemplo n.º 2
0
        public void CreateService_NotInitialized_InvalidOperationException()
        {
            // Arrange

            var serviceProvider = new Mock <IServiceProvider>();

            serviceProvider
            .Setup(m => m.GetService(typeof(ILoggerFactory)))
            .Returns(new NullLoggerFactory());

            var factory = new SingletonGenericServiceFactory(typeof(Logger <>));

            // Act/Assert

            Assert.Throws <InvalidOperationException>(() => factory.CreateService(typeof(ILogger <SingletonGenericServiceFactoryTests>)));
        }
Ejemplo n.º 3
0
        public void CreateService_Generic_Constructs()
        {
            // Arrange

            var serviceProvider = new Mock <IServiceProvider>();

            serviceProvider
            .Setup(m => m.GetService(typeof(ILoggerFactory)))
            .Returns(new NullLoggerFactory());

            var factory = new SingletonGenericServiceFactory(typeof(Logger <>));

            factory.Initialize(serviceProvider.Object);

            // Act

            var result = factory.CreateService(typeof(ILogger <SingletonGenericServiceFactoryTests>));

            // Assert

            Assert.NotNull(result);
            Assert.IsAssignableFrom <Logger <SingletonGenericServiceFactoryTests> >(result);
        }