public void CanCreateObjectWithInitData()
        {
            var mocker         = new AutoMocker();
            var service1       = mocker.Get <IService>();
            var provider       = mocker.GetMock <IServiceProvider>();
            var autoDIProvider = provider.As <IAutoDISerivceProvider>();

            autoDIProvider.Setup(x => x.GetService(typeof(IService), It.IsAny <object[]>())).Returns(service1).Verifiable();

            var initData = new InitData();

            try
            {
                DI.Init(typeof(IService).Assembly, builder => builder.WithProvider(provider.Object));

                var sut = new ClassWithInitData(initData);
                Assert.AreEqual(service1, sut.Service);
                Assert.AreEqual(initData, sut.Data);
                mocker.VerifyAll();
            }
            finally
            {
                DI.Dispose(typeof(IService).Assembly);
            }
        }
示例#2
0
        public void WhenDependencyResolverIsSpecifiedItInstance()
        {
            var mocker          = new AutoMocker();
            var service1        = mocker.Get <IService>();
            var service2        = mocker.Get <IService2>();
            var service3        = mocker.Get <IService3>();
            var serviceProvider = mocker.GetMock <IServiceProvider>();

            serviceProvider.Setup(x => x.GetService(typeof(IService))).Returns(service1).Verifiable();
            serviceProvider.Setup(x => x.GetService(typeof(IService2))).Returns(service2).Verifiable();
            serviceProvider.Setup(x => x.GetService(typeof(IService3))).Returns(service3).Verifiable();

            DI.Dispose(typeof(ClassWithDependencies).Assembly);
            DI.Init(typeof(IService).Assembly, builder =>
            {
                builder.WithProvider(serviceProvider.Object);
            });

            var sut = new ClassWithDependencies();

            Assert.AreEqual(service1, sut.Service);
            Assert.AreEqual(service2, sut.Service2);
            Assert.AreEqual(service3, sut.Service3);
            serviceProvider.Verify();
        }
示例#3
0
 public void TryInitReturnsFalseOnSecondInvocation()
 {
     Assert.IsTrue(DI.TryInit(_testAssembly));
     Assert.IsFalse(DI.TryInit(_testAssembly));
     DI.Dispose(_testAssembly);
     Assert.IsTrue(DI.TryInit(_testAssembly));
     Assert.IsFalse(DI.TryInit(_testAssembly));
 }
        protected virtual void Dispose(bool disposing)
        {
            if (!_disposed)
            {
                if (disposing)
                {
                    DI.Dispose();
                    if (!TestSettings.IsGithubAction)
                    {
                        dockerStarter.Dispose();
                    }
                }

                _disposed = true;
            }
        }
示例#5
0
        public void CanInjectDependenciesIntoNestedTypes()
        {
            var mocker         = new AutoMocker();
            var service1       = mocker.Get <IService>();
            var provider       = mocker.GetMock <IServiceProvider>();
            var autoDIProvider = provider.As <IAutoDISerivceProvider>();

            autoDIProvider.Setup(x => x.GetService(typeof(IService), It.IsAny <object[]>())).Returns(service1).Verifiable();

            try
            {
                DI.Init(typeof(IService).Assembly, builder => builder.WithProvider(provider.Object));

                var sut = new ClassWtihNestedType.NestedType();
                Assert.AreEqual(service1, sut.Service);
                mocker.VerifyAll();
            }
            finally
            {
                DI.Dispose(typeof(IService).Assembly);
            }
        }
示例#6
0
        public void CanFillDependenciesBeforeBaseConstructorInvocation()
        {
            var mocker         = new AutoMocker();
            var service1       = mocker.Get <IService>();
            var provider       = mocker.GetMock <IServiceProvider>();
            var autoDIProvider = provider.As <IAutoDISerivceProvider>();

            autoDIProvider.Setup(x => x.GetService(typeof(IService), It.IsAny <object[]>())).Returns(service1).Verifiable();

            try
            {
                DI.Init(typeof(IService).Assembly, builder => builder.WithProvider(provider.Object));

                var sut = new ClassWithExplicitBaseDependency();
                Assert.AreEqual(service1, sut.Service);
                mocker.VerifyAll();
            }
            finally
            {
                DI.Dispose(typeof(IService).Assembly);
            }
        }
        public void DependencyWithLongParameter()
        {
            var mocker  = new AutoMocker();
            var service = mocker.Get <IService>();

            var provider       = mocker.GetMock <IServiceProvider>();
            var autoDIProvider = provider.As <IAutoDISerivceProvider>();

            autoDIProvider.Setup(x => x.GetService(typeof(IService), It.Is <object[]>(p => p.Length == 1 && p[0].Equals(long.MaxValue)))).Returns(service).Verifiable();

            try
            {
                DI.Init(typeof(IService).Assembly, builder => builder.WithProvider(provider.Object));

                var sut = new ClassWithLongParam();

                Assert.AreEqual(service, sut.Service);
                mocker.VerifyAll();
            }
            finally
            {
                DI.Dispose(typeof(IService).Assembly);
            }
        }
 public static void Cleanup()
 {
     DI.Dispose(_testAssembly);
 }
示例#9
0
 public void Cleanup()
 {
     DI.Dispose(_mainAssembly);
 }
示例#10
0
 public void TestCleanup()
 {
     DI.Dispose(_testAssembly);
 }
示例#11
0
 public void TestCleanup()
 {
     DI.Dispose(typeof(ClassWithDependencies).Assembly);
 }