Exemple #1
0
        public async Task DependenciesOutOfOrder()
        {
            var container = new BaseResolver(TimeSpan.FromSeconds(5));
            await container.ResolveToAsync <ILog, MegaLog>();

            var loadingFileProvider = container.ResolveAsync <ILogFileProvider>();

            await container.ResolveToAsync <ILogFileProvider, TestLogFileProvider>();

            await container.ResolveToAsync <ILogSizeProvider, TestLogSizeProvider>();

            var testLogFileProvider = await loadingFileProvider;


            var fi = testLogFileProvider.GetLogFile();

            Assert.NotNull(fi);

            var testLogSizeProvider = await container.ResolveAsync(typeof(ILogSizeProvider)) as ILogSizeProvider;

            Assert.NotNull(testLogSizeProvider);

            var size = testLogSizeProvider !.GetLogSize();

            Assert.True(size >= 0);
        }
Exemple #2
0
        public async Task DependenciesCovariant()
        {
            Logger.TimeInstantiated  = 0;
            MegaLog.TimeInstantiated = 0;

            var container = new BaseResolver(TimeSpan.FromHours(5));
            await container.ResolveToAsync <IMegaLog, MegaLog>();

            await container.ResolveToAsync <INeedMegaLogger, NeedMegaLogger>();

            await container.ResolveToAsync <INeedLogger1, NeedLogger1>();

            var needLogger = await container.ResolveAsync <INeedLogger1>();

            var needMegaLogger = await container.ResolveAsync <INeedMegaLogger>();

            Assert.True(Logger.TimeInstantiated <= 1);
            Assert.True(MegaLog.TimeInstantiated <= 1);
        }
Exemple #3
0
        public async Task DuplicateInstantiation()
        {
            SlowLoader.Reset();

            var container = new BaseResolver(); //TimeSpan.FromSeconds(10));

            container.ResolveTo <IResolver>(container);

            container.ResolveTo <ILoadSlowly, SlowLoader>();
            container.ResolveTo <INeedLoadSlowly2, NeedSlowly2>();
            container.ResolveTo <INeedLoadSlowly1, NeedSlowly1>();


            var load1 = container.ResolveAsync <INeedLoadSlowly1>();
            var load2 = container.ResolveAsync <INeedLoadSlowly2>();

            await load1;
            await load2;
        }
Exemple #4
0
        public async Task DependenciesContravariant()
        {
            var container = new BaseResolver(TimeSpan.FromSeconds(5));
            await container.ResolveToAsync <IMegaLog, MegaLog>();

            await container.ResolveToAsync <ILogFileProvider, TestLogFileProvider>();

            var fileProvider = await container.ResolveAsync <ILogFileProvider>();

            var fi = fileProvider.GetLogFile();

            Assert.NotNull(fi);
        }
Exemple #5
0
        public async Task MissingDependencyTimeout()
        {
            var container = new BaseResolver(TimeSpan.FromSeconds(1));
            await container.ResolveToAsync <ILog, MegaLog>();

            var loadingFileProvider = container.ResolveAsync <ILogFileProvider>();

            ILogFileProvider?testLogFileProvider = null;

            try
            {
                testLogFileProvider = await loadingFileProvider;
                Assert.False(true);
            }
            catch
            {
                Assert.True(true);
            }
        }