public void resolving_with_targets_where_only_class_uses_ResolveTarget()
        {
            var r = TestHelperResolver.Create();
            var c = r.Resolve <IRCCore>();

            c.Should().BeAssignableTo <IRC>();
            c.ResolvedForIRCCore.Should().BeSameAs(c);
        }
        public void isMissingFromPreloaded_constructor_parameter_does_the_job()
        {
            var r = TestHelperResolver.Create();

            r.Invoking(sut => sut.Resolve(typeof(ShouldBePreloaded))).Should()
            .Throw <TargetInvocationException>()
            .WithInnerException <Exception>()
            .WithMessage("*appear in 'TestHelper/PreLoadedAssemblies'*");
        }
        public void resolving_with_targets_with_inner_mixin()
        {
            var r = TestHelperResolver.Create();
            var c = r.Resolve <RBCore>();

            c.ResolvedForIRBCore.Should().BeAssignableTo <IRB>();

            var ira = r.Resolve <IRA>();

            ira.ResolvedForIRACore.Should().BeSameAs(c.ResolvedForIRBCore);
        }
        public void resolving_with_targets_does_not_change_behavior_for_concrete_classes()
        {
            var r = TestHelperResolver.Create();
            var c = r.Resolve <RACore>();

            c.Should().BeOfType <RACore>("Obvious since we used the generic cast accessor.");
            c.ResolvedForIRACore.Should().BeAssignableTo <IRA>("The IRA mixin has been injected.");

            var mixinRequest = r.Resolve <IRA>();

            mixinRequest.Should().BeSameAs(c.ResolvedForIRACore);
        }