Hello Christian, let me expand. There's one single way of comparing objects in 
NUnit, let's call it NUnit equality. 
The qay it works is this: If the identity of the two objects being compared is 
the same (Object.ReferenceEquals) then the objects are equal, otherwise other 
mechanisms for comparing them take place. 
With this I mean that what Contains does is check each element of the 
collection for NUnit equality with the expected item.

Are you suggesting that Contains should check only identity equality?

-- 
You received this bug notification because you are a member of NUnit
Developers, which is subscribed to NUnit V2.
https://bugs.launchpad.net/bugs/1051847

Title:
  self contained item in array causes stack overflow

Status in NUnit V2 Test Framework:
  Confirmed

Bug description:
  using System.Collections;
  using System.Collections.Generic;
  using NUnit.Framework;

  [TestFixture]
  public class Reproduction {
        class SelfContainer : IEnumerable { public IEnumerator GetEnumerator() 
{ yield return this; } }

        [Test]
        public void SelfContainedItemFoundInArray() {
                var item = new SelfContainer();
                var items = new SelfContainer[] { new SelfContainer(), item };

                // work around
                Assert.True(((ICollection<SelfContainer>)items).Contains(item));

                // causes StackOverflowException
                Assert.Contains(item, items);
        }
  }

  Reproduced in NUnit 2.6.1

  See also bug #491300

To manage notifications about this bug go to:
https://bugs.launchpad.net/nunitv2/+bug/1051847/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~nunit-core
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~nunit-core
More help   : https://help.launchpad.net/ListHelp

Reply via email to