public void Verify_ValidScopeInstanceNames_Parsed() { TimedScopeInstanceName scopeName; if (VerifyTrueAndReturn(TimedScopeInstanceName.TryParse(OnlyScope, out scopeName))) { Assert.Equal(scopeName.Scope, TestScope); Assert.Equal(null, scopeName.SubType); Assert.Equal(null, scopeName.MetaData); Assert.Equal(TestClassification, scopeName.Classification); } if (VerifyTrueAndReturn(TimedScopeInstanceName.TryParse(ScopeWithSubtype, out scopeName))) { Assert.Equal(TestScope, scopeName.Scope); Assert.Equal(TestSubtype, scopeName.SubType); Assert.Equal(null, scopeName.MetaData); Assert.Equal(TestClassification, scopeName.Classification); } if (VerifyTrueAndReturn(TimedScopeInstanceName.TryParse(ScopeWithMetadata, out scopeName, preferMetaData: true))) { Assert.Equal(TestScope, scopeName.Scope); Assert.Equal(null, scopeName.SubType); Assert.Equal(TestMetadata, scopeName.MetaData); Assert.Equal(TestClassification, scopeName.Classification); } if (VerifyTrueAndReturn(TimedScopeInstanceName.TryParse(ScopeWithSubtypeAndMetadata, out scopeName))) { Assert.Equal(TestScope, scopeName.Scope); Assert.Equal(TestSubtype, scopeName.SubType); Assert.Equal(TestMetadata, scopeName.MetaData); Assert.Equal(TestClassification, scopeName.Classification); } if (VerifyTrueAndReturn(TimedScopeInstanceName.TryParse(ScopeNameWithDescription, out scopeName))) { Assert.Equal(TestScope, scopeName.Scope); Assert.Equal(TestSubtype, scopeName.SubType); Assert.Equal(TestMetadata, scopeName.MetaData); Assert.Equal(TestClassification, scopeName.Classification); } if (VerifyTrueAndReturn(TimedScopeInstanceName.TryParse(ScopeWithEmptySubtype, out scopeName))) { Assert.Equal(TestScope, scopeName.Scope); Assert.Equal(string.Empty, scopeName.SubType); Assert.Equal(null, scopeName.MetaData); Assert.Equal(TestClassification, scopeName.Classification); } if (VerifyTrueAndReturn(TimedScopeInstanceName.TryParse(ScopeWithEmptySubtypeAndMetadata, out scopeName))) { Assert.Equal(TestScope, scopeName.Scope); Assert.Equal(string.Empty, scopeName.SubType); Assert.Equal(TestMetadata, scopeName.MetaData); Assert.Equal(TestClassification, scopeName.Classification); } }
/// <summary> /// Check equality of two timed scope instance names by all possible ways /// </summary> /// <param name="x">First instance</param> /// <param name="y">Second instance</param> private void CheckHashCodesAndEquality(TimedScopeInstanceName x, TimedScopeInstanceName y) { Assert.Equal(x.GetHashCode(), y.GetHashCode()); Assert.True(x.Equals(y)); Assert.True(x.Equals((object)y)); Assert.True(x == y); Assert.False(x != y); }
/// <summary> /// Checks that parsing a string and then converting back to string gives the same string /// </summary> /// <param name="scopeName">String to be parsed and converted back</param> private void CheckRoundTrip(string scopeName) { TimedScopeInstanceName parsed; if (VerifyTrueAndReturn(TimedScopeInstanceName.TryParse(scopeName, out parsed))) { Assert.Equal(parsed.ToString(), scopeName); } }
/// <summary> /// Verifies that parsing the same string gives equal TimedScopeInstanceName instances /// </summary> /// <param name="scopeName">The string to be parsed</param> private void CheckSingleScope(string scopeName) { TimedScopeInstanceName parsed1; TimedScopeInstanceName parsed2; if (VerifyTrueAndReturn(TimedScopeInstanceName.TryParse(scopeName, out parsed1)) && VerifyTrueAndReturn(TimedScopeInstanceName.TryParse(scopeName, out parsed2))) { CheckHashCodesAndEquality(parsed1, parsed2); } }
public void Verify_MalformedScopeNames_NotParsed() { TimedScopeInstanceName scopeName; Assert.False(TimedScopeInstanceName.TryParse(".SystemError", out scopeName)); Assert.False(TimedScopeInstanceName.TryParse(null, out scopeName)); Assert.False(TimedScopeInstanceName.TryParse("", out scopeName)); Assert.False(TimedScopeInstanceName.TryParse("///", out scopeName)); Assert.False(TimedScopeInstanceName.TryParse("...///", out scopeName)); Assert.False(TimedScopeInstanceName.TryParse("Scope.MalformedClassification/x", out scopeName)); Assert.False(TimedScopeInstanceName.TryParse("/x/y", out scopeName)); Assert.False(TimedScopeInstanceName.TryParse("x/y/z/a", out scopeName)); }