Example #1
0
        public void TransientRegistrationsAreResolvedCorrectly()
        {
            // arrange
            var sut = new ContainerSetup();

            // act
            sut.RetrieveClassesRequiringRegistration(true);

            // assert
            var resolvedClass = sut.Resolve <AutoRegistrationDummy>();
            var secondResolve = sut.Resolve <AutoRegistrationDummy>();

            resolvedClass.Should().NotBe(secondResolve);
        }
Example #2
0
 static void Main(string[] args)
 {
     var container = new ContainerSetup().BuildContainer();
     using (var game = container.Resolve<IGameEngine>())
     {
         game.Bus.Messages.Subscribe(Console.WriteLine);
         game.Start();
         Console.ReadLine();
     }
     Console.ReadLine();
 }
Example #3
0
        public void TryingToResolveAServiceThrowsANotSupportedException()
        {
            // arrange
            var serviceCollectionDummy = new Mock <IServiceCollection>();

            var sut = new ContainerSetup(serviceCollectionDummy.Object);

            var act = new Action(() => sut.Resolve <DisposableDummy>());

            // act
            // assert
            act.Should().Throw <NotSupportedException>();
        }
Example #4
0
        public void SetupContainter()
        {
            // arrange
            var sut = new ContainerSetup();

            // act
            sut.RetrieveClassesRequiringRegistration(true);

            // assert
            var resolvedClass = sut.Resolve <AutoRegistrationDummy>();

            resolvedClass.GetType().Should().Be <AutoRegistrationDummy>();
        }
Example #5
0
        public void MultiTypeRegistrationSingletonsWorkCorrectly()
        {
            // arrange
            var sut = new ContainerSetup();

            // act
            sut.RetrieveConcretionClassesRequiringRegistration(true);

            // assert
            var resolvedClasses        = sut.ResolveMany <ITestInterfaceDummy>().ToList();
            var interfaceResolvedClass =
                resolvedClasses.FirstOrDefault(t => t.GetType() == typeof(ImplementationClassDummy));
            var directlyResolvedClass = sut.Resolve <ImplementationClassDummy>();

            interfaceResolvedClass.Should().Be(directlyResolvedClass);
        }