public void ActivatorScope_should_release_scoped_service_dependencies_when_disposed()
        {
            using (var container = new WindsorContainer())
            {
                ExampleDependency releasedDependency = null;
                container.Register(
                    Component.For <JobWithScopedDependency>().LifestyleTransient(),
                    Component.For <ExampleDependency>()
                    .OnDestroy(x => { releasedDependency = x; })
                    .LifestyleScoped()
                    );

                var activator = new WindsorJobActivator(container.Kernel);

                using (var scope = activator.BeginScope(null))
                {
                    // Resolve the new job
                    var job = scope.Resolve(typeof(JobWithScopedDependency)) as JobWithScopedDependency;
                    Assert.IsNotNull(job);

                    Assert.AreSame(job.Dependency, container.Resolve <ExampleDependency>(),
                                   "assumed ExampleDependency has scoped lifestyle");

                    // sanity check
                    Assert.IsNull(releasedDependency);
                }

                Assert.IsNotNull(releasedDependency, "service was not released by container");
                Assert.IsTrue(releasedDependency.IsDisposed, "service was not disposed");
            }
        }
Esempio n. 2
0
        public async Task Correctly_Resolves_TwoDeps()
        {
            // arrange
            var dep = new ExampleDependency
            {
                Resolved = false
            };

            var services = new ServiceCollection();

            services.AddSingleton(dep);

            var pipelineBuilder = services.ConfigurePipelineFor <TestCtx>();

            pipelineBuilder.Use <TestCtx, ExampleDependency, ExampleDependency>((_, dependency1, dependency2, next) =>
            {
                dependency1.Resolved = true;

                Assert.AreSame(dependency1, dependency2);

                return(next());
            });

            var sp = services.BuildServiceProvider();

            var pipeline = sp.GetRequiredService <IPipeline <TestCtx> >();

            // act
            await pipeline.ExecuteAsync(new TestCtx());

            // assert
            Assert.IsTrue(dep.Resolved, "Dependency flag resolved is not true");
        }
        public void Experiment_windsor_scoped_service_registration()
        {
            using (var container = new WindsorContainer())
            {
                ExampleDependency releasedDependency = null;
                container.Register(
                    Component.For <JobWithScopedDependency>().LifestyleTransient(),
                    Component.For <ExampleDependency>()
                    .OnDestroy(x => { releasedDependency = x; })
                    .LifestyleScoped()
                    );

                using (container.BeginScope())
                {
                    var job1 = container.Resolve <JobWithScopedDependency>();
                    var job2 = container.Resolve <JobWithScopedDependency>();
                    Assert.AreNotSame(job1, job2,
                                      "assumed JobWithScopedDependency has transient lifestyle");

                    Assert.AreSame(job1.Dependency, job2.Dependency,
                                   "assumed ExampleDependency has scoped lifestyle");

                    // sanity check
                    Assert.IsNull(releasedDependency);
                }

                Assert.IsNotNull(releasedDependency, "service was not released by container");
                Assert.IsTrue(releasedDependency.IsDisposed, "service was not disposed");
            }
        }
        public string UseJobsFromDependency(string sessionId)
        {
            // This uses a dependency on the other project (DependencyProject),
            // but because DependencyProject is merged, MergedProject.dll has
            // everything it needs to do this without the separate DependencyProject.dll.
            var dependency = new ExampleDependency();
            var jobs       = dependency.GetSomeJobs(sessionId);

            return($"Dependent dll function returned {jobs.JobCount.ToString()} jobs");
        }
        public void ExampleMethod()
        {
            try
            {
            }
            finally
            {
#pragma warning disable 219
                ExampleDependency foo = null;
#pragma warning restore 219
            }
        }
        public async Task Should_BeCorrect_PipelineExecutionOrder_WithDeps()
        {
            // arrange
            var services = new ServiceCollection();
            var dep      = new ExampleDependency();

            services.AddSingleton(dep);

            var sp = services.BuildServiceProvider();

            var pipelineBuilder = new PipelineBuilder <TestCtx>();

            pipelineBuilder.Use <Middleware1>();
            pipelineBuilder.Use <Middleware2>();
            pipelineBuilder.Use <TestCtx, ExampleDependency>(async(ctx, deps, next) =>
            {
                ctx.ExecutedMiddlewaresCount++;
                deps.Resolved = true;

                ctx.Msg += "Before_LambdaMiddleware";

                await next();
                ctx.Msg += "After_LambdaMiddleware";
            });

            var pipeline = pipelineBuilder.Build(sp);

            var testContext = new TestCtx();

            Assert.IsFalse(dep.Resolved);

            // act
            await pipeline.ExecuteAsync(testContext);

            // assert
            Assert.IsTrue(dep.Resolved, "Dependency is not resolved");
        }
        public Func <object> ExampleMethod()
        {
            ExampleDependency test = null;

            return(() => test);
        }
Esempio n. 8
0
 public async Task ExampleMethod()
 {
     var test = new ExampleDependency();
     await Task.CompletedTask;
 }
 private ConstructorPrivate()
 {
     var test = new ExampleDependency();
 }
Esempio n. 10
0
 public ExampleAdapterB(ExampleDependency dependency, ExamplePortB port)
 {
     _dependnecy = dependency;
     _value      = port.Value;
 }
Esempio n. 11
0
 public void Foo(out ExampleDependency example)
 {
     example = null;
 }
#pragma warning disable 8321
            static void LocalFunction()
            {
                var y = new ExampleDependency();
            }
Esempio n. 13
0
 private void ExampleMethod()
 {
     var test = new ExampleDependency();
 }
Esempio n. 14
0
 public void ExampleMethod()
 {
     var test = new ExampleDependency();
 }
Esempio n. 15
0
 public void ExampleMethod()
 {
     object dep = new ExampleDependency();
 }
Esempio n. 16
0
        public VariableGeneric()
        {
#pragma warning disable 219
            ExampleDependency <int> dependecy = null;
#pragma warning restore 219
        }
Esempio n. 17
0
 public void Example()
 {
     var reference = new ExampleDependency();
 }
Esempio n. 18
0
 private void ExampleMethod(ExampleDependency exampleDependency)
 {
 }
Esempio n. 19
0
        public Variable()
        {
#pragma warning disable 219
            ExampleDependency test = null;
#pragma warning restore 219
        }
Esempio n. 20
0
 private static extern int MessageBox(ExampleDependency hWnd);
Esempio n. 21
0
 public PublicConstructor()
 {
     var test = new ExampleDependency();
 }
 public void Foo(ref ExampleDependency example)
 {
 }