public void It_should_be_able_to_get_valid_length()
 {
     using (var stream = new StreamingAssetsStream(RyujuEngineIOText))
     {
         Assert.That(stream.Length, Is.EqualTo(RyujuEngineIOTextContent.Length), "It must be able to get valid length.");
     }
 }
 public void It_should_be_able_to_set_position(int position)
 {
     using (var stream = new StreamingAssetsStream(RyujuEngineIOText))
     {
         Assert.That(() => stream.Position = position, Throws.Nothing, "It must be able to set position");
         Assert.That(stream.Position, Is.EqualTo(position), "It must be able to return valid position.");
     }
 }
 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_open_a_stream()
    {
        StreamingAssetsStream stream = null;

        Assert.That(() => stream = new StreamingAssetsStream(RyujuEngineIOText), Throws.Nothing, "It must be able to open.");
        Assert.That(stream.CanRead, Is.True, "It must be able to read.");
        Assert.That(stream.CanSeek, Is.True, "It must be able to seek.");
        Assert.That(() => stream.Dispose(), Throws.Nothing, "It must be able to dispose.");
    }
 public void It_should_be_able_to_seek_from_current_with_offset(int position, int offset)
 {
     using (var stream = new StreamingAssetsStream(RyujuEngineIOText))
     {
         stream.Position = position;
         Assert.That(stream.Seek(offset, SeekOrigin.Current), Is.EqualTo(position + offset), "It must be able to seek to valid position.");
         Assert.That(stream.Position, Is.EqualTo(position + offset), "It must be able to return valid position.");
     }
 }
 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_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."
             );
     }
 }
    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_throw_not_found_exception()
    {
        StreamingAssetsStream stream = null;

        Assert.That(() => stream = new StreamingAssetsStream(RyujuEngineIOInvalidText), Throws.TypeOf <FileNotFoundException>(), "It must be able to detect non-exist file.");
    }