private static SkippableFactDiscoverer GetDiscoverer() { var diagnosticMessageSink = new NullMessageSink(); var retval = new SkippableFactDiscoverer(diagnosticMessageSink); return(retval); }
/// <summary> /// Get the traits from a method. /// </summary> /// <param name="member">The member (method, field, etc.) to get the traits for.</param> /// <returns>A list of traits that are defined on the method.</returns> public static IReadOnlyList<KeyValuePair<string, string>> GetTraits(MemberInfo member) { var messageSink = new NullMessageSink(); var result = new List<KeyValuePair<string, string>>(); foreach (var traitAttributeData in member.CustomAttributes) { var traitAttributeType = traitAttributeData.AttributeType; if (!typeof(ITraitAttribute).GetTypeInfo().IsAssignableFrom(traitAttributeType.GetTypeInfo())) continue; var discovererAttributeData = FindDiscovererAttributeType(traitAttributeType.GetTypeInfo()); if (discovererAttributeData == null) continue; var discoverer = ExtensibilityPointFactory.GetTraitDiscoverer(messageSink, Reflector.Wrap(discovererAttributeData)); if (discoverer == null) continue; var traits = discoverer.GetTraits(Reflector.Wrap(traitAttributeData)); if (traits != null) result.AddRange(traits); } return result; }
/// <summary> /// Get the traits from a method. /// </summary> /// <param name="member">The member (method, field, etc.) to get the traits for.</param> /// <returns>A list of traits that are defined on the method.</returns> public static IReadOnlyList <KeyValuePair <string, string> > GetTraits(MemberInfo member) { var messageSink = new NullMessageSink(); var result = new List <KeyValuePair <string, string> >(); foreach (var traitAttributeData in member.CustomAttributes) { var traitAttributeType = traitAttributeData.AttributeType; if (!typeof(ITraitAttribute).GetTypeInfo().IsAssignableFrom(traitAttributeType.GetTypeInfo())) { continue; } var discovererAttributeData = traitAttributeType.GetTypeInfo().CustomAttributes.FirstOrDefault(cad => cad.AttributeType == typeof(TraitDiscovererAttribute)); if (discovererAttributeData == null) { continue; } var discoverer = ExtensibilityPointFactory.GetTraitDiscoverer(messageSink, Reflector.Wrap(discovererAttributeData)); if (discoverer == null) { continue; } var traits = discoverer.GetTraits(Reflector.Wrap(traitAttributeData)); if (traits != null) { result.AddRange(traits); } } return(result); }
public ScenarioExpectationDiscovererTests() { DiagnosticsMessageSink = new NullMessageSink(); Discoverer = new TestableScenarioExpectationDiscoverer(DiagnosticsMessageSink); ExpectThatAttribute = XunitMocks.ExpectThatAttribute(); Options = new TestFrameworkOptions(); }
public MettleTestCase() { // No way for us to get access to the message sink on the execution deserialization path, but that should // be okay, because we assume all the issues were reported during discovery. DiagnosticMessageSink = new NullMessageSink(); }
public static bool CanPrintAsNumber(UString textValue, Symbol typeMarker) { int la0; // Check if the typeMarker is potentially acceptable for printing as a number // line 26 if (typeMarker.Name.TryGet(0, '\0') != '_' || !IsNormalIdentifier(typeMarker.Name)) { return(false); } // line 28 char firstTMChar = typeMarker.Name.TryGet(1, '\0'); // line 29 if (firstTMChar == 'e' || firstTMChar == 'E' || firstTMChar == 'p' || firstTMChar == 'P') { return(false); } // Prepare LexerSource needed by LLLPG, and our error counter // line 33 if (src == null) { src = new LexerSource <UString>(textValue, "", 0, false); src.ErrorSink = msgCounter = new NullMessageSink(); } else { src.Reset(textValue, "", 0, false); // re-use old object msgCounter.ResetCountersToZero(); } // Find out whether textValue is in numeric format // line 42 bool isHex = false; // Line 44: ([−])? do { la0 = src.LA0; if (la0 == '−') { src.Skip(); } else if (la0 == -1 || la0 == '.' || la0 >= '0' && la0 <= '9') { ; } else { src.Error(0, "In rule 'CanPrintAsNumber', expected one of: [\\$.0-9−]"); } } while (false); // Line 45: ( BinNumber / HexNumber / DecNumber ) la0 = src.LA0; if (la0 == '0') { switch (src.LA(1)) { case 'B': case 'b': BinNumber(); break; case 'X': case 'x': { HexNumber(); // line 46 isHex = true; } break; case -1: case '\'': case '.': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'E': case '_': case 'e': DecNumber(); break; default: src.Error(1, "In rule 'CanPrintAsNumber', expected one of: [\\$'.0-9BEX_bex]"); break; } } else if (la0 == '.' || la0 >= '1' && la0 <= '9') { DecNumber(); } else { src.Error(0, "In rule 'CanPrintAsNumber', expected one of: [.0-9]"); } src.Match(-1); // line 50 return(msgCounter.ErrorCount == 0 && !(isHex && (firstTMChar >= 'a' && firstTMChar <= 'f' || firstTMChar >= 'A' && firstTMChar <= 'F'))); }