SubstringConstraint
SubstringConstraint can test whether a string contains
the expected substring.
using System;
namespace NUnit.Framework.Constraints
{
public class SubstringConstraint : StringConstraint
{
private StringComparison? comparisonType;
public override StringConstraint IgnoreCase {
get {
Using(StringComparison.CurrentCultureIgnoreCase);
return base.IgnoreCase;
}
}
public SubstringConstraint(string expected)
: base(expected)
{
descriptionText = "String containing";
}
protected override bool Matches(string actual)
{
if (actual == null)
return false;
StringComparison stringComparison = comparisonType ?? StringComparison.CurrentCulture;
return actual.IndexOf(expected, stringComparison) >= 0;
}
public SubstringConstraint Using(StringComparison comparisonType)
{
if (!this.comparisonType.HasValue)
this.comparisonType = comparisonType;
else if (this.comparisonType != comparisonType) {
throw new InvalidOperationException("A different comparison type was already set.");
}
return this;
}
}
}