using System;
using System.Text.RegularExpressions;
-namespace MonoTests.System.Text.RegularExpressions {
-
+namespace MonoTests.System.Text.RegularExpressions
+{
[TestFixture]
- public class MatchTest {
-
+ public class MatchTest
+ {
[Test]
- [ExpectedException (typeof (ArgumentNullException))]
- public void Synchronized_Null ()
+ public void Synchronized_Inner_Null ()
{
- Match.Synchronized (null);
+ try {
+ Match.Synchronized (null);
+ Assert.Fail ("#1");
+ } catch (ArgumentNullException ex) {
+ Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
+ Assert.IsNull (ex.InnerException, "#3");
+ Assert.IsNotNull (ex.Message, "#4");
+ Assert.IsNotNull (ex.ParamName, "#5");
+ Assert.AreEqual ("inner", ex.ParamName, "#6");
+ }
}
[Test]
{
Match em = Match.Empty;
Match sm = Match.Synchronized (em);
- Assert.IsTrue (Object.ReferenceEquals (em, sm), "Synchronized");
+ Assert.AreSame (em, sm, "Synchronized");
+ }
+
+ [Test]
+ public void Result_Replacement_Null ()
+ {
+ try {
+ Match.Empty.Result (null);
+ Assert.Fail ("#1");
+ } catch (ArgumentNullException ex) {
+ Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
+ Assert.IsNull (ex.InnerException, "#3");
+ Assert.IsNotNull (ex.Message, "#4");
+ Assert.IsNotNull (ex.ParamName, "#5");
+ Assert.AreEqual ("replacement", ex.ParamName, "#6");
+ }
+ }
+
+ [Test]
+ public void Result_Replacement_Empty ()
+ {
+ Regex email = new Regex ("(?<user>[^@]+)@(?<domain>.+)");
+ Match m = email.Match ("mono@go-mono.com");
+ string exp = m.Result (string.Empty);
+ Assert.AreEqual (string.Empty, exp);
}
[Test]
- [ExpectedException (typeof (ArgumentNullException))]
- public void Result_Null ()
+ public void Result_Match_Empty ()
{
- Match.Empty.Result (null);
+ try {
+ Match.Empty.Result ("whatever");
+ Assert.Fail ("#1");
+ } catch (NotSupportedException ex) {
+ // Result cannot be called on failed Match
+ Assert.AreEqual (typeof (NotSupportedException), ex.GetType (), "#2");
+ Assert.IsNull (ex.InnerException, "#3");
+ Assert.IsNotNull (ex.Message, "#4");
+ }
}
[Test]
- [ExpectedException (typeof (NotSupportedException))]
- public void Result_Empty ()
+ public void Match_Backref ()
{
- Match.Empty.Result (String.Empty);
+ Assert.IsTrue (Regex.IsMatch ("F2345678910LL1", @"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11"), "ltr");
+ // FIXME
+ //Assert.IsTrue (Regex.IsMatch ("F2345678910LL1", @"(F)(2)(3)(4)(5)(6)(7)(8)(9)(10)(L)\11", RegexOptions.RightToLeft), "rtl");
}
}
}