protected virtual void PresentTestFixture(CSUnitTestFixtureElement value, IPresentableItem item, TreeModelNode modelNode, PresentationState state) { item.Clear(); if (IsNodeParentNatural(modelNode, value)) { item.RichText = new CLRTypeName(value.GetTypeClrName()).ShortName; } else { var name = new CLRTypeName(value.GetTypeClrName()); if (string.IsNullOrEmpty(name.NamespaceName)) { item.RichText = string.Format("{0}", name.ShortName); } else { item.RichText = string.Format("{0}.{1}", name.NamespaceName, name.ShortName); } } Image typeImage = UnitTestManager.GetStandardImage(UnitTestElementImage.TestContainer); Image stateImage = UnitTestManager.GetStateImage(state); if (stateImage != null) { item.Images.Add(stateImage); } else if (typeImage != null) { item.Images.Add(typeImage); } AppendOccurencesCount(item, modelNode, "test"); }
public CSUnitTestElement(IUnitTestProvider provider, CSUnitTestFixtureElement fixture, IProject project, string declaringTypeName, string methodName, int order) : base(provider, fixture, project, declaringTypeName) { myFixture = fixture; myOrder = order; myMethodName = methodName; }
public void ExploreAssembly(IMetadataAssembly assembly, IProject project, UnitTestElementConsumer consumer) { foreach (IMetadataTypeInfo type in assembly.GetTypes()) { if (!IsTestFixture(type)) { continue; } var fixture = new CSUnitTestFixtureElement(this, project, type.FullyQualifiedName, assembly.Location); fixture.SetExplicit(GetExplicitString(type)); consumer(fixture); int order = 0; foreach (IMetadataMethod method in GetAllTestMethods(type)) { if (!IsTestMethod(method)) { continue; } var testElement = new CSUnitTestElement(this, fixture, project, method.DeclaringType.FullyQualifiedName, method.Name, order++); testElement.SetExplicit(GetExplicitString(method)); consumer(testElement); } } }
public void ProcessBeforeInterior(IElement element) { var declaration = element as IDeclaration; if (declaration == null) { return; } CSUnitElementBase testElement = null; var declaredElement = declaration.DeclaredElement; var typeElement = declaredElement as ITypeElement; if (typeElement != null && IsTestFixture(typeElement)) { CSUnitTestFixtureElement fixtureElement; if (!myFixtures.ContainsKey(typeElement)) { fixtureElement = new CSUnitTestFixtureElement(myProvider, myProject, typeElement.CLRName, myAssemblyPath); myFixtures.Add(typeElement, fixtureElement); myOrders.Add(typeElement, 0); } else { fixtureElement = myFixtures[typeElement]; } testElement = fixtureElement; int order = 0; AppendTests(fixtureElement, typeElement.GetSuperTypes(), ref order); } var typeMember = declaredElement as ITypeMember; if (typeMember != null && IsTestMethod(typeMember)) { ITypeElement type = typeMember.GetContainingType(); if (type != null) { CSUnitTestFixtureElement fixtureElement = myFixtures.TryGetValue(type); if (fixtureElement != null) { int order = myOrders.TryGetValue(type) + 1; myOrders[type] = order; testElement = new CSUnitTestElement(myProvider, fixtureElement, myProject, type.CLRName, typeMember.ShortName, order); } } } if (testElement == null) { return; } var disposition = new UnitTestElementDisposition(testElement, myFile.ProjectFile, declaration.GetNameDocumentRange().TextRange, declaration.GetDocumentRange().TextRange); myConsumer(disposition); }
private void AppendTests(CSUnitTestFixtureElement fixtureElement, IEnumerable <IDeclaredType> types, ref int order) { foreach (IDeclaredType type in types) { ITypeElement typeElement = type.GetTypeElement(); if (typeElement == null) { continue; } foreach (ITypeMember member in typeElement.GetMembers()) { if (IsTestMethod(member)) { new CSUnitTestElement(myProvider, fixtureElement, myProject, typeElement.CLRName, member.ShortName, order++); } } AppendTests(fixtureElement, type.GetSuperTypes(), ref order); } }
public IList <UnitTestTask> GetTaskSequence(UnitTestElement element, IList <UnitTestElement> explicitElements) { var testElement = element as CSUnitTestElement; if (testElement != null) { CSUnitTestFixtureElement parentFixture = testElement.Fixture; return(new[] { new UnitTestTask(null, new AssemblyLoadTask(parentFixture.AssemblyLocation)), new UnitTestTask(parentFixture, new CSUnitTestFixtureTask(parentFixture.AssemblyLocation, parentFixture.GetTypeClrName(), explicitElements.Contains(parentFixture))), new UnitTestTask(testElement, new CSUnitTestTask(parentFixture.GetTypeClrName(), testElement.MethodName, explicitElements.Contains(testElement))), }); } var fixture = element as CSUnitTestFixtureElement; if (fixture != null) { return(EmptyArray <UnitTestTask> .Instance); } throw new ArgumentException(string.Format("element is not CSUnit: '{0}'", element)); }