public void ReturnFragmentType_ExplicitlyImplementedInterfaceMethod_ReturnsFragment()
        {
            Method sample         = TestHelper.GetSample <ClassWithExplicitlyDeclaredMethodReturningFragment> ("InjectionCop.IntegrationTests.Utilities.InterfaceWithReturnFragment.MethodWithReturnFragment");
            var    returnFragment = FragmentUtility.ReturnFragmentType(sample);

            Assert.That(returnFragment, Is.EqualTo(Fragment.CreateNamed("ReturnFragmentType")));
        }
        public void ReturnFragmentType_ImplementedInterfaceMethod_ReturnsFragment()
        {
            Method sample         = TestHelper.GetSample <ClassWithMethodReturningFragment> ("MethodWithReturnFragment");
            var    returnFragment = FragmentUtility.ReturnFragmentType(sample);

            Assert.That(returnFragment, Is.EqualTo(Fragment.CreateNamed("ReturnFragmentType")));
        }
        public void ReturnFragmentType_MethodWithAnnotatedReturn_ReturnsNull()
        {
            Method sample         = TestHelper.GetSample <FragmentUtilitySample> ("ReturnFragment");
            var    returnFragment = FragmentUtility.ReturnFragmentType(sample);

            Assert.That(returnFragment, Is.EqualTo(Fragment.CreateNamed("ReturnFragmentType")));
        }
        public void ReturnFragmentType_NonAnnotatedMethod_ReturnsEmptyFragment()
        {
            Method sample         = TestHelper.GetSample <FragmentUtilitySample> ("NoReturnFragment");
            var    returnFragment = FragmentUtility.ReturnFragmentType(sample);

            Assert.That(returnFragment, Is.EqualTo(Fragment.CreateEmpty()));
        }
        private Fragment GetDelegateTypesReturnFragment(DelegateNode sourceDelegateType)
        {
            var returnFragment = Fragment.CreateEmpty();

            foreach (Member member in sourceDelegateType.Members)
            {
                if (member.Name.Name == "Invoke")
                {
                    Method invoke = (Method)member;
                    returnFragment = FragmentUtility.ReturnFragmentType(invoke);
                }
            }
            return(returnFragment);
        }
예제 #6
0
        public MethodGraphBuilder(Method method, IBlacklistManager blacklistManager, IProblemPipe problemPipe)
        {
            ArgumentUtility.CheckNotNull("method", method);
            _blacklistManager = ArgumentUtility.CheckNotNull("blacklistManager", blacklistManager);
            _problemPipe      = ArgumentUtility.CheckNotNull("problemPipe", problemPipe);
            bool isInterfaceMethod = method.Body.Statements == null;

            if (!isInterfaceMethod)
            {
                _methodBody = method.Body;
                _referenceAndOutConditions = ReferenceAndOutConditions(method);
                _result = null;
            }
            else
            {
                _result = new MethodGraph(-1, new Dictionary <int, BasicBlock>());
            }
            _returnFragment = FragmentUtility.ReturnFragmentType(method);
        }