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 MakeSureYouCannotWriteTooMuchDataIntoDiskBlock() { VirtualDisk virtualDisk = VirtualDiskTestFactory.ConstructDefaultTestDisk(); byte[] bytesToWrite = new byte[virtualDisk.BlockSizeInBytes * 2]; ExceptionAssert.MakeSureExceptionIsRaisedBy <ArgumentException>( delegate() { virtualDisk.WriteBytesToBlock(0, bytesToWrite); }); }
public void TryWritingToNonExistingBlocksOnDisk() { VirtualDisk virtualDisk = VirtualDiskTestFactory.ConstructDefaultTestDisk(); byte[] bytesToWrite = new byte[100]; ExceptionAssert.MakeSureExceptionIsRaisedBy <ArgumentOutOfRangeException>( delegate() { virtualDisk.WriteBytesToBlock(-2, bytesToWrite); }); ExceptionAssert.MakeSureExceptionIsRaisedBy <ArgumentOutOfRangeException>( delegate() { virtualDisk.WriteBytesToBlock(virtualDisk.NumberOfBlocks, bytesToWrite); }); ExceptionAssert.MakeSureExceptionIsRaisedBy <ArgumentOutOfRangeException>( delegate() { virtualDisk.WriteBytesToBlock(int.MaxValue, bytesToWrite); }); }