public void MoveNext_NeverWithSingleProperty_CurrentThrows_HasNextIsTrue() { var classStub = CreateClassStub(); var propertyStub = CreatePropertyStub(classStub, "FirstProperty"); var enumerator = new ResolvedBusinessObjectPropertyPathPropertyEnumerator(new[] { propertyStub }); Assert.That(() => enumerator.Current, Throws.InvalidOperationException.With.Message.EqualTo("Enumeration has not started. Call MoveNext.")); Assert.That(enumerator.HasNext, Is.True); }
public void MoveNext_OnceWithSingleProperty_ReturnsTrue_CurrentIsSetToProperty_HasNextIsFalse() { var classStub = CreateClassStub(); var propertyStub = CreatePropertyStub(classStub, "FirstProperty"); var enumerator = new ResolvedBusinessObjectPropertyPathPropertyEnumerator(new[] { propertyStub }); Assert.That(enumerator.MoveNext(classStub), Is.True); Assert.That(enumerator.Current, Is.SameAs(propertyStub)); Assert.That(enumerator.HasNext, Is.False); }
public void MoveNext_TwiceWithSingleProperty_ReturnsFalse_CurrentThrows_HasNextIsFalse() { var classStub = CreateClassStub(); var propertyStub = CreatePropertyStub(classStub, "FirstProperty"); var enumerator = new ResolvedBusinessObjectPropertyPathPropertyEnumerator(new[] { propertyStub }); Assert.That(enumerator.MoveNext(classStub), Is.True); Assert.That(enumerator.MoveNext(MockRepository.GenerateStub <IBusinessObjectClass>()), Is.False); Assert.That(() => enumerator.Current, Throws.InvalidOperationException.With.Message.EqualTo("Enumeration already finished.")); Assert.That(enumerator.HasNext, Is.False); }
public void MoveNext_WithMultipleProperties_ReturnsFalseAfterLastProperty_CurrentThrows_HasNextIsFalse() { var firstClassStub = CreateClassStub(); var secondClassStub = CreateClassStub(); var firstPropertyStub = CreateReferencePropertyStub(firstClassStub, "FirstProperty", secondClassStub); var secondPropertyStub = CreatePropertyStub(secondClassStub, "SecondProperty"); var enumerator = new ResolvedBusinessObjectPropertyPathPropertyEnumerator(new[] { firstPropertyStub, secondPropertyStub }); Assert.That(enumerator.MoveNext(firstClassStub), Is.True); Assert.That(enumerator.Current, Is.SameAs(firstPropertyStub)); Assert.That(enumerator.HasNext, Is.True); Assert.That(enumerator.MoveNext(secondClassStub), Is.True); Assert.That(enumerator.Current, Is.SameAs(secondPropertyStub)); Assert.That(enumerator.HasNext, Is.False); Assert.That(enumerator.MoveNext(MockRepository.GenerateStub <IBusinessObjectClass>()), Is.False); Assert.That(() => enumerator.Current, Throws.InvalidOperationException.With.Message.EqualTo("Enumeration already finished.")); Assert.That(enumerator.HasNext, Is.False); }