public void CanIdentify_AutoImplementedProperties() { // arrange var sourceAssembly = AssemblyDefinition.ReadAssembly(typeof(Samples.Concrete).Assembly.Location); var type = sourceAssembly.MainModule.Types.First(x => x.FullName == typeof(Samples.DeclaredMethodClass).FullName); // act/assert var filter = new Filter(); var wasTested = false; foreach (var methodDefinition in type.Methods .Where(x => x.IsGetter || x.IsSetter).Where(x => x.Name.EndsWith("AutoProperty"))) { wasTested = true; Assert.IsTrue(filter.IsAutoImplementedProperty(methodDefinition)); } Assert.IsTrue(wasTested); wasTested = false; foreach (var methodDefinition in type.Methods .Where(x => x.IsGetter || x.IsSetter).Where(x => x.Name.EndsWith("PropertyWithBackingField"))) { wasTested = true; Assert.IsFalse(filter.IsAutoImplementedProperty(methodDefinition)); } Assert.IsTrue(wasTested); }
public void Can_Exclude_AutoImplmentedProperties() { // arrange var filter = new Filter(); _mockFilter .Setup(x => x.InstrumentClass(It.IsAny<string>(), It.IsAny<string>())) .Returns(true); _mockFilter .Setup(x => x.IsAutoImplementedProperty(It.IsAny<MethodDefinition>())) .Returns<MethodDefinition>(x => filter.IsAutoImplementedProperty(x)); _mockCommandLine.Setup(x => x.SkipAutoImplementedProperties).Returns(true); var types = _reader.GetInstrumentableTypes(); var target = types.First(x => x.FullName == typeof(DeclaredMethodClass).FullName); // act var methods = _reader.GetMethodsForType(target, new File[0]); // assert Assert.True(methods.Any()); Assert.AreEqual(SkippedMethod.AutoImplementedProperty, methods.First(y => y.Name.EndsWith("AutoProperty()")).SkippedDueTo); Assert.AreEqual((SkippedMethod)0, methods.First(y => y.Name.EndsWith("PropertyWithBackingField()")).SkippedDueTo); }