void UpdateTraitsList() { MultiValueDictionary <string, string> traits = mate.EnumerateTraits(); listTraits.BeginUpdate(); listTraits.Items.Clear(); listTraits.Groups.Clear(); foreach (string name in traits.Keys) { ListViewGroup group = new ListViewGroup(name, HorizontalAlignment.Left); group.Name = name; listTraits.Groups.Add(group); foreach (string value in traits[name]) { listTraits.Items.Add(new ListViewItem(value, group)); } } listTraits.EndUpdate(); UpdateTraitsFilter(); }
public void MultiAssemblyGetTraitsAcceptanceTest() { string code1 = @" using System; using Xunit; public class MockTestClass { [Fact] [Trait(""Trait1"", ""Value1"")] public void Value1Test() { } [Fact] [Trait(""Trait1"", ""Value2"")] public void Value2Test() { } [Fact] [Trait(""Trait2"", ""Value1"")] public void Trait2Value1Test() { } } "; string code2 = @" using System; using Xunit; public class MockTestClass { [Fact] [Trait(""Trait1"", ""Value1"")] public void OtherTest1() { } [Fact] [Trait(""Trait3"", ""Value42"")] public void Crazy() { } } "; using (MockAssembly mockAssembly1 = new MockAssembly()) using (MockAssembly mockAssembly2 = new MockAssembly()) { mockAssembly1.Compile(code1); mockAssembly2.Compile(code2); MultiAssemblyTestEnvironment mate = new MultiAssemblyTestEnvironment(); mate.Load(mockAssembly1.FileName); mate.Load(mockAssembly2.FileName); MultiValueDictionary <string, string> result = mate.EnumerateTraits(); var trait1 = result["Trait1"]; Assert.Equal(2, trait1.Count()); Assert.Contains("Value1", trait1); Assert.Contains("Value2", trait1); var trait2 = result["Trait2"]; Assert.Single(trait2); Assert.Contains("Value1", trait2); var trait3 = result["Trait3"]; Assert.Single(trait3); Assert.Contains("Value42", trait3); } }