private static ChangedMethod GetChangedMethod(MemberReference operand, ChangeReason changeStatus) { var changedMethod = new ChangedMethod(); changedMethod.ChangeReason = changeStatus; changedMethod.AssemblyName = operand.DeclaringType.Scope.Name; changedMethod.NamespaceName = operand.DeclaringType.Namespace; changedMethod.ClassName = operand.DeclaringType.Name; changedMethod.MethodName = operand.Name; return changedMethod; }
public void Given_a_list_of_method_usages_it_filters_down_based_on_changed_methods_list() { ChangedMethod method = new ChangedMethod { ClassName = "Class1", MethodName = "Method1" }; MethodUsage usage = new MethodUsage {ClassName = "Class1", MethodName = "Method1"}; var expectedTestToExecuted = new Test{ClassName = "Class1Tests", MethodName = "Method1Tests"}; usage.TestCoverage = new List<Test>(); usage.TestCoverage.Add(expectedTestToExecuted); ChangedMethodsFilter filter = new ChangedMethodsFilter(); IEnumerable<Test> testsToExecuted = filter.FindUnitTestsAffectedByChanges(new List<ChangedMethod> {method}, new List<MethodUsage> {usage}); Assert.That(testsToExecuted.Count(), Is.EqualTo(1)); Assert.IsTrue(testsToExecuted.Contains(expectedTestToExecuted)); }
public IEnumerable<Test> FindUnitTestsAffectedByChange(ChangedMethod changedMethod, IEnumerable<MethodUsage> methodUsages) { return methodUsages.Where(x => x.MethodName == changedMethod.MethodName && x.ClassName == changedMethod.ClassName).SelectMany(x=>x.TestCoverage); }