//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldIterateOverBlocks() public virtual void ShouldIterateOverBlocks() { // GIVEN PropertyRecord record = new PropertyRecord(0); PropertyBlock[] blocks = new PropertyBlock[3]; for (int i = 0; i < blocks.Length; i++) { blocks[i] = new PropertyBlock(); record.AddPropertyBlock(blocks[i]); } // WHEN IEnumerator <PropertyBlock> iterator = record.GetEnumerator(); // THEN foreach (PropertyBlock block in blocks) { //JAVA TO C# CONVERTER TODO TASK: Java iterators are only converted within the context of 'while' and 'for' loops: assertTrue(iterator.hasNext()); //JAVA TO C# CONVERTER TODO TASK: Java iterators are only converted within the context of 'while' and 'for' loops: assertEquals(block, iterator.next()); } //JAVA TO C# CONVERTER TODO TASK: Java iterators are only converted within the context of 'while' and 'for' loops: assertFalse(iterator.hasNext()); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldBeAbleToRemoveBlocksDuringIteration() public virtual void ShouldBeAbleToRemoveBlocksDuringIteration() { // GIVEN PropertyRecord record = new PropertyRecord(0); ISet <PropertyBlock> blocks = new HashSet <PropertyBlock>(); for (int i = 0; i < 4; i++) { PropertyBlock block = new PropertyBlock(); record.AddPropertyBlock(block); blocks.Add(block); } // WHEN IEnumerator <PropertyBlock> iterator = record.GetEnumerator(); AssertIteratorRemoveThrowsIllegalState(iterator); // THEN int size = blocks.Count; for (int i = 0; i < size; i++) { //JAVA TO C# CONVERTER TODO TASK: Java iterators are only converted within the context of 'while' and 'for' loops: assertTrue(iterator.hasNext()); //JAVA TO C# CONVERTER TODO TASK: Java iterators are only converted within the context of 'while' and 'for' loops: PropertyBlock block = iterator.next(); if (i % 2 == 1) { //JAVA TO C# CONVERTER TODO TASK: .NET enumerators are read-only: iterator.remove(); AssertIteratorRemoveThrowsIllegalState(iterator); blocks.remove(block); } } //JAVA TO C# CONVERTER TODO TASK: Java iterators are only converted within the context of 'while' and 'for' loops: assertFalse(iterator.hasNext()); // and THEN there should only be the non-removed blocks left assertEquals(blocks, Iterables.asSet(record)); }