public void It_should_be_able_to_read_all_bytes()
 {
     using (var stream = new StreamingAssetsStream(RyujuEngineIOText))
     {
         var buffer = new byte[stream.Length];
         Assert.That(stream.Read(buffer, 0, buffer.Length), Is.EqualTo(stream.Length), "It must be able to read all bytes.");
         Assert.That(buffer, Is.EqualTo(RyujuEngineIOTextContent), "It must be able to read valid content.");
     }
 }
 public void It_should_be_able_to_read_no_bytes_from_tail()
 {
     using (var stream = new StreamingAssetsStream(RyujuEngineIOText))
     {
         var buffer = new byte[42];
         int count  = 0;
         stream.Seek(0, SeekOrigin.End);
         Assert.That(() => count = stream.Read(buffer, 0, buffer.Length), Throws.Nothing, "It must be able to read no bytes from tail.");
         Assert.That(count, Is.EqualTo(0), "It must be able to return zero even if read from tail.");
     }
 }
    public void It_should_be_able_to_read_chunk_bytes(int chunkSize)
    {
        using (var stream = new StreamingAssetsStream(RyujuEngineIOText))
        {
            var length = (int)stream.Length;
            var buffer = new byte[length];

            int restCount = length;
            for (; restCount >= chunkSize; restCount -= chunkSize)
            {
                var readCount = stream.Read(buffer, length - restCount, chunkSize);
                Assert.That(readCount, Is.EqualTo(chunkSize), "It must be read chunk bytes.");
            }
            if (restCount > 0)
            {
                var readCount = stream.Read(buffer, length - restCount, restCount);
                Assert.That(readCount, Is.EqualTo(restCount), "It must be read rest bytes.");
            }
            Assert.That(buffer, Is.EqualTo(RyujuEngineIOTextContent), "It must be able to read valid content.");
        }
    }
 public void It_should_be_able_to_read_bytes_even_if_specify_large_size(int additionalCount)
 {
     using (var stream = new StreamingAssetsStream(RyujuEngineIOText))
     {
         var length    = (int)stream.Length;
         var buffer    = new byte[length + additionalCount];
         var readCount = stream.Read(buffer, 0, length + additionalCount);
         Assert.That(readCount, Is.EqualTo(length), "It must be able to read only existing bytes.");
         Assert.That(
             new List <byte>(buffer).GetRange(0, length),
             Is.EqualTo(RyujuEngineIOTextContent),
             "It must be able to read valid content."
             );
     }
 }