public void IFMethods_UsedDifferentClassFields_ShouldNotBeConnected()
        {
            var method1 = GetMethodWithAccessingToClassFieldsInBlock("Method1", new[] { _classFieldsIdentifier[0] });
            var method2 = GetMethodWithAccessingToClassFieldsInBlock("Method2", new[] { _classFieldsIdentifier[1] });

            var lcomGraph = new Lcom4Graph(new[] { method1, method2 });
            var actualConnectedComponentsCount = lcomGraph.CountConnectedComponents();

            var expectedConnectedComponentCounts = 2;

            Assert.AreEqual(expectedConnectedComponentCounts, actualConnectedComponentsCount);
        }
        public void IFMethods_ModifiedSameClassFields_ShouldBeConnected()
        {
            var method1 = GetMethodWithModifiedClassFieldsInBlock("Method1", _classFieldsIdentifier);
            var method2 = GetMethodWithModifiedClassFieldsInBlock("Method2", new[] { _classFieldsIdentifier[0] });

            var lcomGraph = new Lcom4Graph(new[] { method1, method2 });
            var actualConnectedComponentsCount = lcomGraph.CountConnectedComponents();

            var expectedConnectedComponentCounts = 1;

            Assert.AreEqual(expectedConnectedComponentCounts, actualConnectedComponentsCount);
        }
        public void IFMethods_CallsOtherMethod_ShouldBeConnected()
        {
            var method1     = MockMethod.Method("Method1", MockBlock.GeneralMethodBody().Object);
            var method2Body = MockBlock.GetMethodBodyThatInvokedInternalMethods(new[] { method1.Name });
            var method2     = MockMethod.Method("Method2", method2Body);

            var lcomGraph = new Lcom4Graph(new[] { method1, method2 });
            var actualConnectedComponentsCount = lcomGraph.CountConnectedComponents();

            var expectedConnectedComponentCounts = 1;

            Assert.AreEqual(expectedConnectedComponentCounts, actualConnectedComponentsCount);
        }