public void Options_Always_ReturnsSameInstanceAsThatOfContainer()
        {
            // Arrange
            var container = new Container();

            // Act
            var debugView = new ContainerDebugView(container);

            // Assert
            Assert.IsTrue(object.ReferenceEquals(container.Options, debugView.Options));
        }
        public void Ctor_WithLockedContainer_ReturnsAnItemWithTheRegistrations()
        {
            var container = new Container();

            // This locks the container
            container.Verify();

            var debugView = new ContainerDebugView(container);

            // Act
            var registrationsItem = debugView.Items.Single(item => item.Name == "Registrations");

            // Assert
            Assert.IsInstanceOfType(registrationsItem.Value, typeof(InstanceProducer[]));
        }
        public void Ctor_UnverifiedContainer_ReturnsOneItemWithInfoAboutHowToGetAnalysisInformation()
        {
            // Arrange
            var container = new Container();

            // Act
            var debugView = new ContainerDebugView(container);

            // Assert
            Assert.AreEqual(1, debugView.Items.Length);
            Assert.AreEqual("How To View Diagnostic Info", debugView.Items.Single().Name);
            Assert.AreEqual(
                "Analysis info is available in this debug view after Verify() is " +
                "called on this container instance.",
                debugView.Items.Single().Description);
        }
        public void Ctor_VerifiedContainerWithoutConfigurationErrors_ContainsAPotentialLifestyleMismatchesSection()
        {
            // Arrange
            var container = new Container();

            // Forces a lifestyle mismatch
            container.RegisterSingle <ILogger, FakeLogger>();

            container.Verify();

            // Act
            var debugView = new ContainerDebugView(container);

            var warningsItem = debugView.Items.Single(item => item.Name == "Configuration Warnings");

            var items = warningsItem.Value as DebuggerViewItem[];

            // Assert
            Assert.IsTrue(items.Any(item => item.Name == "Potential Lifestyle Mismatches"));
        }
Ejemplo n.º 5
0
        public void Ctor_VerifiedContainerWithoutConfigurationErrors_ContainsALifestyleMismatchesSection()
        {
            // Arrange
            var container = new Container();

            container.Options.SuppressLifestyleMismatchVerification = true;

            // Forces a lifestyle mismatch
            container.Register <ILogger, LoggerWithConcreteDependencies>(Lifestyle.Singleton);

            container.Verify(VerificationOption.VerifyOnly);

            // Act
            var debugView = new ContainerDebugView(container);

            var warningsItem = debugView.Items.Single(item => item.Name == "Configuration Warnings");

            var items = warningsItem.Value as DebuggerViewItem[];

            // Assert
            Assert.IsTrue(items.Any(item => item.Name == "Lifestyle Mismatches"));
        }
        public void Ctor_UnsuccesfullyVerifiedContainer_ReturnsOneItemWithInfoAboutHowToGetAnalysisInformation()
        {
            // Arrange
            var container = new Container();

            // Invalid registration
            container.Register <ILogger>(() => null);

            try
            {
                container.Verify();
            }
            catch (InvalidOperationException)
            {
            }

            // Act
            var debugView = new ContainerDebugView(container);

            // Assert
            Assert.AreEqual(1, debugView.Items.Length);
            Assert.AreEqual("How To View Diagnostic Info", debugView.Items.Single().Name);
        }