You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
3.2 KiB
142 lines
3.2 KiB
<?php
|
|
|
|
namespace spec\Gaufrette;
|
|
|
|
use PHPSpec2\ObjectBehavior;
|
|
|
|
class StreamMode extends ObjectBehavior
|
|
{
|
|
function it_should_be_initializable()
|
|
{
|
|
$this->beConstructedWith('r');
|
|
$this->shouldHaveType('Gaufrette\StreamMode');
|
|
}
|
|
|
|
function it_should_gives_access_to_mode()
|
|
{
|
|
$this->beConstructedWith('r+');
|
|
$this->getMode()->shouldReturn('r+');
|
|
}
|
|
|
|
function it_allows_write_only()
|
|
{
|
|
$this->beConstructedWith('w');
|
|
|
|
$this->allowsWrite()->shouldReturn(true);
|
|
$this->allowsRead()->shouldReturn(false);
|
|
}
|
|
|
|
function it_allows_write_and_read()
|
|
{
|
|
$this->beConstructedWith('w+');
|
|
|
|
$this->allowsWrite()->shouldReturn(true);
|
|
$this->allowsRead()->shouldReturn(true);
|
|
}
|
|
|
|
function it_allows_read_only()
|
|
{
|
|
$this->beConstructedWith('r');
|
|
|
|
$this->allowsWrite()->shouldReturn(false);
|
|
$this->allowsRead()->shouldReturn(true);
|
|
}
|
|
|
|
function it_allows_to_existing_file_opening()
|
|
{
|
|
$this->beConstructedWith('r');
|
|
|
|
$this->allowsExistingFileOpening()->shouldReturn(true);
|
|
}
|
|
|
|
function it_does_not_allow_to_existing_file_opening()
|
|
{
|
|
$this->beConstructedWith('x');
|
|
|
|
$this->allowsExistingFileOpening()->shouldReturn(false);
|
|
}
|
|
|
|
function it_allows_new_file_opening()
|
|
{
|
|
$this->beConstructedWith('w');
|
|
|
|
$this->allowsNewFileOpening()->shouldReturn(true);
|
|
}
|
|
|
|
function it_does_not_allow_new_file_opening()
|
|
{
|
|
$this->beConstructedWith('r');
|
|
|
|
$this->allowsNewFileOpening()->shouldReturn(false);
|
|
}
|
|
|
|
function it_implies_existing_content_deletion()
|
|
{
|
|
$this->beConstructedWith('w+');
|
|
|
|
$this->allowsNewFileOpening()->shouldReturn(true);
|
|
}
|
|
|
|
function it_does_not_implies_existing_content_deletion()
|
|
{
|
|
$this->beConstructedWith('r+');
|
|
|
|
$this->allowsNewFileOpening()->shouldReturn(false);
|
|
}
|
|
|
|
function it_implies_positioning_cursor_at_the_beginning()
|
|
{
|
|
$this->beConstructedWith('r+');
|
|
|
|
$this->impliesPositioningCursorAtTheBeginning()->shouldReturn(true);
|
|
}
|
|
|
|
function it_does_no_implies_positioning_cursor_at_the_beginning()
|
|
{
|
|
$this->beConstructedWith('a');
|
|
|
|
$this->impliesPositioningCursorAtTheBeginning()->shouldReturn(false);
|
|
}
|
|
|
|
function it_implies_positioning_cursor_at_the_end()
|
|
{
|
|
$this->beConstructedWith('a');
|
|
|
|
$this->impliesPositioningCursorAtTheEnd()->shouldReturn(true);
|
|
}
|
|
|
|
function it_does_no_implies_positioning_cursor_at_the_end()
|
|
{
|
|
$this->beConstructedWith('w');
|
|
|
|
$this->impliesPositioningCursorAtTheEnd()->shouldReturn(false);
|
|
}
|
|
|
|
function it_should_be_binary()
|
|
{
|
|
$this->beConstructedWith('wb+');
|
|
|
|
$this->isBinary()->shouldReturn(true);
|
|
}
|
|
|
|
function it_should_not_be_binary()
|
|
{
|
|
$this->beConstructedWith('w+');
|
|
|
|
$this->isBinary()->shouldReturn(false);
|
|
}
|
|
|
|
function it_should_not_be_text()
|
|
{
|
|
$this->beConstructedWith('wb+');
|
|
|
|
$this->isText()->shouldReturn(false);
|
|
}
|
|
|
|
function it_should_be_text()
|
|
{
|
|
$this->beConstructedWith('w+');
|
|
|
|
$this->isText()->shouldReturn(true);
|
|
}
|
|
}
|
|
|