public void Should_Take_In_Account_Calls_To_Abstract_Methods() { var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(typeof(AbstractTemplateClass).GetCecilType()); Assert.AreEqual(1, blocks.Count); }
public void Should_Not_Take_In_Account_ToString_Methods() { var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(typeof(SimpleClassWithToString).GetCecilType()); Assert.AreEqual(2, blocks.Count); }
public void Should_Take_In_Account_Calls_Ignore_Empty_Methods() { var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(typeof(ClassWithCallsToEmptyMethods).GetCecilType()); Assert.AreEqual(1, blocks.Count); }
public void Should_Not_Take_In_Account_Methods_From_Wrapped_Objects() { var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(typeof(SimpleClassWithDelegation).GetCecilType()); Assert.AreEqual(1, blocks.Count); Assert.AreEqual(3, blocks.ElementAt(0).Count); }
public void Should_Not_Take_In_Account_References_To_Static_Fields() { var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(typeof(SimpleClassWithStaticField).GetCecilType()); Assert.AreEqual(1, blocks.Count); Assert.AreEqual(1, blocks.First().Count); }
public void Should_Take_In_Account_Field_References() { var definition = AssemblyDefinition.ReadAssembly(@"testdata\external\Spring.Core.dll", new ReaderParameters { AssemblyResolver = AssemblyResolver.Resolver }); var clientType = definition.MainModule.GetType("Spring.Collections.Generic", "ReadOnlyDictionary`2"); var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(clientType); Assert.AreEqual(12, blocks.Count); }
public void Should_Find_One_Block_On_A_Simple_Class() { var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(typeof(SimpleClass).GetCecilType()); Assert.AreEqual(1, blocks.Count); }
public void Should_Not_Fail_On_Empty_Interface() { var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(typeof(IEmpty).GetCecilType()); Assert.AreEqual(0, blocks.Count); }
public void Should_Not_Take_In_Account_Dispose_Methods() { var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(typeof(SimpleDisposableClass).GetCecilType()); Assert.AreEqual(1, blocks.Count); }
public void Should_Ignore_Empty_Virtual_Methods() { var definition = AssemblyDefinition.ReadAssembly(@"testdata\external\Spring.Core.dll", new ReaderParameters { AssemblyResolver = AssemblyResolver.Resolver }); var clientType = definition.MainModule.GetType("Spring.Expressions.Parser.antlr.debug", "ParserListenerBase"); var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(clientType); Assert.AreEqual(0, blocks.Count); }
public void Should_Ignore_Simple_Accessors() { var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(typeof(ClassWithProperties).GetCecilType()); Assert.AreEqual(0, blocks.Count); }
public void Should_Ignore_Constructors() { var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(typeof(SimpleClassWithCtr).GetCecilType()); Assert.AreEqual(2, blocks.Count); }
public void Should_Ignore_Abstract_Methods() { var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(typeof(AbstractClass).GetCecilType()); Assert.AreEqual(1, blocks.Count); }
public void Should_Find_Two_Blocks_On_A_Simple_Stateless_Class() { var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(typeof(SimpleCalculator).GetCecilType()); Assert.AreEqual(2, blocks.Count); }
public void Should_Take_In_Account_Calls_To_Simple_Accessors() { var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(typeof(ClassWithCallsToAccessors).GetCecilType()); Assert.AreEqual(1, blocks.Count); }
public void Should_Not_Take_In_Account_Inherited_Methods() { var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(typeof(DerivedClass).GetCecilType()); Assert.AreEqual(1, blocks.Count); Assert.AreEqual(3, blocks.ElementAt(0).Count); }
public void Should_Take_In_Account_Complex_Accessors() { var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(typeof(ClassWithComplexProperties).GetCecilType()); Assert.AreEqual(2, blocks.Count); }
public void Should_Not_Take_In_Account_Linq_Fields_In_Accessors() { var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(typeof(PropertyWithLinq).GetCecilType()); Assert.AreEqual(1, blocks.Count); // get, set and backing field Assert.AreEqual(3, blocks.First().Count); }
public void Should_Take_In_Account_The_Ignorable_Field_Names() { var analyzer = new Lcom4Analyzer() { IgnorableFieldNames = new string[] {"Counter"} } ; var blocks = analyzer.FindLcomBlocks(typeof(SimpleClass).GetCecilType()); Assert.AreEqual(2, blocks.Count); }
public void Should_Find_One_Block_On_A_Class_With_Strong_Cohesion() { var analyzer = new Lcom4Analyzer(); var blocks = analyzer.FindLcomBlocks(typeof(ClassWithManyMethodsAndStrongCohesion).GetCecilType()); Assert.AreEqual(1, blocks.Count); Assert.AreEqual(5, blocks.ElementAt(0).Count); }