nunit-core team mailing list archive
-
nunit-core team
-
Mailing list archive
-
Message #01494
Re: [Bug 697919] Re: Exception in -Is.StringMatching(string)- method
Hi Roberto,
That surprises me as well. I guess .NET is able to handle the unescaped right
parenthesis in the passing case. NUnit's RegexConstraint does no processing
of the string but just passes it on to Regex.IsMatch.
Charlie
On Wed, Jan 5, 2011 at 5:59 PM, Roberto Carrillo
<697919@xxxxxxxxxxxxxxxxxx> wrote:
> I don't understand. I ran the "TestThatPasses()" method (below) and it passes.
> It is the exactly same regular expression. Am I doing something wrong?
>
> [Test]
> public void Test_NUnitBug()
> {
> const string ExpectedString = "NUnit is :) happy!";
> Encoding encoding = Encoding.Unicode;
> byte[] bytes = encoding.GetBytes(ExpectedString);
> string actualString = encoding.GetString(bytes);
>
> Console.WriteLine(actualString);
> Console.WriteLine(ExpectedString);
> Console.WriteLine(actualString.Length);
> Console.WriteLine(ExpectedString.Length);
> Assert.That(actualString, Is.StringMatching(ExpectedString));
> }
>
>
> [Test]
> public void TestThatPasses()
> {
> const string ExpectedString = "NUnit is :) happy!";
> Console.WriteLine(ExpectedString);
> Console.WriteLine(ExpectedString.Length);
> Assert.That(ExpectedString, Is.StringMatching(ExpectedString));
> }
>
> -Roberto
>
>
> ----- Mensaje original ----
> De: Charlie Poole <charlie@xxxxxxxxx>
> Para: rcarrillopadron@xxxxxxxxx
> Enviado: miércoles, 5 de enero, 2011 19:38:48
> Asunto: [Bug 697919] Re: Exception in -Is.StringMatching(string)- method
>
> Is.StringMatching() takes a string argument, which is to be used as a
> regular expression. Hence, it must be a valid regular expression. You
> should either use Is.EqualTo() or escape the ')' like this: @"NUnit is
> :\) happy!"
>
> --
> You received this bug notification because you are a direct subscriber
> of the bug.
> https://bugs.launchpad.net/bugs/697919
>
> Title:
> Exception in -Is.StringMatching(string)- method
>
> Status in NUnit Test Framework:
> New
>
> Bug description:
> This is my code:
>
> [Test]
> public void Test_NUnitBug()
> {
> const string ExpectedString = "NUnit is :) happy!";
> Encoding encoding = Encoding.Unicode;
> byte[] bytes = encoding.GetBytes(ExpectedString);
> string actualString = encoding.GetString(bytes);
>
> Console.WriteLine(actualString);
> Console.WriteLine(ExpectedString);
> Console.WriteLine(actualString.Length);
> Console.WriteLine(ExpectedString.Length);
> Assert.That(actualString, Is.StringMatching(ExpectedString));
> }
>
> This is the exception:
>
> NUnit is :) happy!
> NUnit is :) happy!
> 18
> 18
>
> System.ArgumentException : parsing "NUnit is :) happy!" - Too many )'s.
> at System.Text.RegularExpressions.RegexParser.ScanRegex()
> at System.Text.RegularExpressions.RegexParser.Parse(String re, RegexOptions op)
> at System.Text.RegularExpressions.Regex..ctor(String pattern, RegexOptions
> options, Boolean useCache)
> at System.Text.RegularExpressions.Regex.IsMatch(String input, String pattern,
> RegexOptions options)
> at NUnit.Framework.Constraints.RegexConstraint.Matches(Object actual)
> at NUnit.Framework.Assert.That(Object actual, IResolveConstraint expression,
> String message, Object[] args)
> at MyCopy.Test_NUnitBug() in MyTest.cs: line 48
>
>
> ------
> I ran NUnit using the console and ReSharper.
>
> To unsubscribe from this bug, go to:
> https://bugs.launchpad.net/nunit-3.0/+bug/697919/+subscribe
>
> --
> You received this bug notification because you are subscribed to NUnit
> Framework.
> https://bugs.launchpad.net/bugs/697919
>
> Title:
> Exception in -Is.StringMatching(string)- method
>
--
You received this bug notification because you are a member of NUnit
Core Developers, which is the registrant for NUnit Framework.
https://bugs.launchpad.net/bugs/697919
Title:
Exception in -Is.StringMatching(string)- method
Status in NUnit Test Framework:
New
Bug description:
This is my code:
[Test]
public void Test_NUnitBug()
{
const string ExpectedString = "NUnit is :) happy!";
Encoding encoding = Encoding.Unicode;
byte[] bytes = encoding.GetBytes(ExpectedString);
string actualString = encoding.GetString(bytes);
Console.WriteLine(actualString);
Console.WriteLine(ExpectedString);
Console.WriteLine(actualString.Length);
Console.WriteLine(ExpectedString.Length);
Assert.That(actualString, Is.StringMatching(ExpectedString));
}
This is the exception:
NUnit is :) happy!
NUnit is :) happy!
18
18
System.ArgumentException : parsing "NUnit is :) happy!" - Too many )'s.
at System.Text.RegularExpressions.RegexParser.ScanRegex()
at System.Text.RegularExpressions.RegexParser.Parse(String re, RegexOptions op)
at System.Text.RegularExpressions.Regex..ctor(String pattern, RegexOptions options, Boolean useCache)
at System.Text.RegularExpressions.Regex.IsMatch(String input, String pattern, RegexOptions options)
at NUnit.Framework.Constraints.RegexConstraint.Matches(Object actual)
at NUnit.Framework.Assert.That(Object actual, IResolveConstraint expression, String message, Object[] args)
at MyCopy.Test_NUnitBug() in MyTest.cs: line 48
------
I ran NUnit using the console and ReSharper.
References