Ejemplo n.º 1
0
        public void RegisterNamedInterfaceWithClassAsSingleton()
        {
            const string info =
                @"container
    .RegisterInstance<IFoo, Foo>()
    .RegisterInstance<IFoo, Foo>(""foo2"");
";

            IDiContainer container = CreateConntainer();

            container
            .RegisterInstance <IFoo, Foo>()
            .RegisterInstance <IFoo, Foo>("foo2");

            const string additionalInfo1 = "container.GetInstance<IFoo>();";
            IFoo         instance1       = container.GetInstance <IFoo>();

            instance1.Should().NotBeNull(info + additionalInfo1);

            IFoo instance2 = container.GetInstance <IFoo>();

            instance2.Should().BeSameAs(instance1, info + additionalInfo1);

            const string additionalInfo2 = "container.GetInstance<IFoo>(\"foo2\")";
            IFoo         instance3       = container.GetInstance <IFoo>("foo2");

            instance3.Should()
            .NotBeNull(info + container.GetInstance <IFoo>("foo2"))
            .And.NotBeSameAs(instance1, info + additionalInfo2);
            IFoo instance4 = container.GetInstance <IFoo>("foo2");

            instance4.Should().BeSameAs(instance3, info + additionalInfo2);
        }
Ejemplo n.º 2
0
        public void RegisterNamedSpecificInstanceAsSingleton()
        {
            const string info =
                @"container
    .RegisterInstance<IFoo>(specificInstance1)
    .RegisterInstance<IFoo>(""foo2"", specificInstance2);
";

            Foo          specificInstance1 = new Foo();
            Foo          specificInstance2 = new Foo();
            IDiContainer container         = CreateConntainer();

            container
            .RegisterInstance <IFoo>(specificInstance1)
            .RegisterInstance <IFoo>("foo2", specificInstance2);

            const string additionalInfo1 = "container.GetInstance<IFoo>();";
            IFoo         instance1       = container.GetInstance <IFoo>();

            instance1.Should().BeSameAs(specificInstance1, info + additionalInfo1);

            IFoo instance2 = container.GetInstance <IFoo>();

            instance2.Should().BeSameAs(specificInstance1, info + additionalInfo1);

            const string additionalInfo2 = "container.GetInstance<IFoo>(\"foo2\");";
            IFoo         instance3       = container.GetInstance <IFoo>("foo2");

            instance3.Should().BeSameAs(specificInstance2, info + additionalInfo2);

            IFoo instance4 = container.GetInstance <IFoo>("foo2");

            instance4.Should().BeSameAs(specificInstance2, info + additionalInfo2);
        }
Ejemplo n.º 3
0
        public void RegisterInterfaceWithClassAsSingleton()
        {
            const string info = "container.RegisterInstance<IFoo, Foo>();";

            IDiContainer container = CreateConntainer();

            container.RegisterInstance <IFoo, Foo>();

            IFoo instance1 = container.GetInstance <IFoo>();

            instance1.Should().NotBeNull(info);

            IFoo instance2 = container.GetInstance <IFoo>();

            instance2.Should().BeSameAs(instance1, info);
        }
Ejemplo n.º 4
0
        public void RegisterSpecificInstanceAsSingleton()
        {
            const string info = "container.RegisterInstance<IFoo>(specificInstance);";

            Foo          specificInstance = new Foo();
            IDiContainer container        = CreateConntainer();

            container.RegisterInstance <IFoo>(specificInstance);

            IFoo instance1 = container.GetInstance <IFoo>();

            instance1.Should().BeSameAs(specificInstance, info);

            IFoo instance2 = container.GetInstance <IFoo>();

            instance2.Should().BeSameAs(specificInstance, info);
        }
Ejemplo n.º 5
0
        public void RegisterInterfaceWithClassUsingLambdaAsSingleton()
        {
            const string info = "container.RegisterInstance<IFoo>(c => new Foo());";

            IDiContainer container = CreateConntainer();

            container.RegisterInstance <IFoo>(c => new Foo());

            IFoo instance1 = container.GetInstance <IFoo>();

            instance1.Should()
            .NotBeNull(info)
            .And.BeOfType <Foo>(info);

            IFoo instance2 = container.GetInstance <IFoo>();

            instance2.Should().BeSameAs(instance1, info);
        }