public void TryReadWriteCycleWithAllBlocksOnDisk() { VirtualDisk virtualDisk = VirtualDiskTestFactory.ConstructDefaultTestDisk(); for (int i = 0; i < virtualDisk.NumberOfBlocks; i++) { byte[] bytesToWrite = new byte[virtualDisk.BlockSizeInBytes]; byte byteToPutInEveryPlaceInArray = (byte)i; for (int j = 0; j < virtualDisk.BlockSizeInBytes; j++) { bytesToWrite[j] = byteToPutInEveryPlaceInArray; } virtualDisk.WriteBytesToBlock(i, bytesToWrite); } for (int i = 0; i < virtualDisk.NumberOfBlocks; i++) { byte[] bytesRead = virtualDisk.ReadAllBytesFromBlock(i); byte byteThatMustBeInEveryPlaceInArray = (byte)i; Assert.AreEqual(virtualDisk.BlockSizeInBytes, bytesRead.Length); for (int j = 0; j < virtualDisk.BlockSizeInBytes; j++) { Assert.AreEqual(byteThatMustBeInEveryPlaceInArray, bytesRead[j]); } } }
public void TryReadingFromNonExistingBlocksOnDisk() { VirtualDisk virtualDisk = VirtualDiskTestFactory.ConstructDefaultTestDisk(); ExceptionAssert.MakeSureExceptionIsRaisedBy <ArgumentOutOfRangeException>( delegate() { virtualDisk.ReadAllBytesFromBlock(int.MaxValue); }); ExceptionAssert.MakeSureExceptionIsRaisedBy <ArgumentOutOfRangeException>( delegate() { virtualDisk.ReadAllBytesFromBlock(virtualDisk.NumberOfBlocks); }); ExceptionAssert.MakeSureExceptionIsRaisedBy <ArgumentOutOfRangeException>( delegate() { virtualDisk.ReadAllBytesFromBlock(-3); }); }