public void HandleViolation_ProblemMetadataGivenButNoViolation_NoProblemAdded()
        {
            var expectedFragment = Fragment.CreateNamed(c_expectedType);
            var givenFragment    = Fragment.CreateNamed(c_expectedType);

            IPreCondition preCondition = new CustomInferencePreCondition(c_symbol, expectedFragment, _problemMetadata);
            var           context      = new SymbolTable(_blacklistManager);

            context.MakeSafe(c_symbol, givenFragment);
            IProblemPipe problemPipe = MockRepository.GenerateMock <IProblemPipe>();

            preCondition.HandleViolation(context, problemPipe);

            problemPipe.AssertWasNotCalled(pipe => pipe.AddProblem(Arg <ProblemMetadata> .Is.Anything));
        }
        public void HandleViolation_ViolationNotProvoked_KeepsSymbolFragment()
        {
            var expectedFragment = Fragment.CreateNamed(c_expectedType);
            var givenFragment    = expectedFragment;

            IPreCondition preCondition = new CustomInferencePreCondition(c_symbol, expectedFragment, _problemMetadata);
            var           context      = new SymbolTable(_blacklistManager);

            context.MakeSafe(c_symbol, givenFragment);
            IProblemPipe problemPipe = MockRepository.GenerateMock <IProblemPipe>();

            preCondition.HandleViolation(context, problemPipe);

            bool symbolFragmentKept = context.GetFragmentType(c_symbol) == expectedFragment;

            Assert.That(symbolFragmentKept, Is.True);
        }