Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/elliotchance/concise into…
Browse files Browse the repository at this point in the history
… feature/72-expose-method-for-mocks
  • Loading branch information
elliotchance committed Aug 1, 2014
2 parents fd3f22c + 55b70ba commit f100f54
Show file tree
Hide file tree
Showing 10 changed files with 213 additions and 1 deletion.
4 changes: 4 additions & 0 deletions README.md
Expand Up @@ -164,6 +164,10 @@ Matchers

### Strings

* `?:string contains string ?:string` - A string contains a substring
* `?:string contains string ?:string ignoring case` - A string contains a substring (ignoring case-sensitivity)
* `?:string does not contain string ?:string` - A string does not contain a substring.
* `?:string does not contain string ?:string ignoring case` - A string does not contain a substring (ignoring case-sensitivity)
* `?:string does not match regular expression ?:regex` - Assert a string does not match a regular expression.
* `?:string doesnt match regular expression ?:regex`
* `?:string does not match regex ?:regex`
Expand Down
23 changes: 23 additions & 0 deletions src/Concise/Matcher/ContainsString.php
@@ -0,0 +1,23 @@
<?php

namespace Concise\Matcher;

class ContainsString extends AbstractMatcher
{
public function supportedSyntaxes()
{
return array(
'?:string contains string ?:string' => 'A string contains a substring',
);
}

public function match($syntax, array $data = array())
{
return strpos($data[0], $data[1]) !== false;
}

public function getTags()
{
return array(Tag::STRINGS);
}
}
23 changes: 23 additions & 0 deletions src/Concise/Matcher/ContainsStringIgnoringCase.php
@@ -0,0 +1,23 @@
<?php

namespace Concise\Matcher;

class ContainsStringIgnoringCase extends ContainsString
{
public function supportedSyntaxes()
{
return array(
'?:string contains string ?:string ignoring case' => 'A string contains a substring (ignoring case-sensitivity)',
);
}

public function match($syntax, array $data = array())
{
return parent::match(null, array(strtolower($data[0]), strtolower($data[1])));
}

public function getTags()
{
return array(Tag::STRINGS);
}
}
23 changes: 23 additions & 0 deletions src/Concise/Matcher/DoesNotContainString.php
@@ -0,0 +1,23 @@
<?php

namespace Concise\Matcher;

class DoesNotContainString extends ContainsString
{
public function supportedSyntaxes()
{
return array(
'?:string does not contain string ?:string' => 'A string does not contain a substring.',
);
}

public function match($syntax, array $data = array())
{
return !parent::match(null, $data);
}

public function getTags()
{
return array(Tag::STRINGS);
}
}
23 changes: 23 additions & 0 deletions src/Concise/Matcher/DoesNotContainStringIgnoringCase.php
@@ -0,0 +1,23 @@
<?php

namespace Concise\Matcher;

class DoesNotContainStringIgnoringCase extends ContainsStringIgnoringCase
{
public function supportedSyntaxes()
{
return array(
'?:string does not contain string ?:string ignoring case' => 'A string does not contain a substring (ignoring case-sensitivity)',
);
}

public function match($syntax, array $data = array())
{
return !parent::match(null, $data);
}

public function getTags()
{
return array(Tag::STRINGS);
}
}
29 changes: 29 additions & 0 deletions tests/Concise/Matcher/ContainsStringIgnoringCaseTest.php
@@ -0,0 +1,29 @@
<?php

namespace Concise\Matcher;

use \Concise\TestCase;

class ContainsStringIgnoringCaseTest extends AbstractMatcherTestCase
{
public function setUp()
{
parent::setUp();
$this->matcher = new ContainsStringIgnoringCase();
}

public function testSuccessIfStringContainsASubstring()
{
$this->assert('foobar', contains_string, 'oob', ignoring_case);
}

public function testFailsIfSubstringDoesNotExistInString()
{
$this->assertFailure('foobar', contains_string, 'baz', ignoring_case);
}

public function testIsNotSensitiveToCase()
{
$this->assert('foobar', contains_string, 'Foo', ignoring_case);
}
}
29 changes: 29 additions & 0 deletions tests/Concise/Matcher/ContainsStringTest.php
@@ -0,0 +1,29 @@
<?php

namespace Concise\Matcher;

use \Concise\TestCase;

class ContainsStringTest extends AbstractMatcherTestCase
{
public function setUp()
{
parent::setUp();
$this->matcher = new ContainsString();
}

public function testSuccessIfStringContainsASubstring()
{
$this->assert('foobar', contains_string, 'oob');
}

public function testFailsIfSubstringDoesNotExistInString()
{
$this->assertFailure('foobar', contains_string, 'baz');
}

public function testIsSensitiveToCase()
{
$this->assertFailure('foobar', contains_string, 'Foo');
}
}
29 changes: 29 additions & 0 deletions tests/Concise/Matcher/DoesNotContainStringIgnoringCaseTest.php
@@ -0,0 +1,29 @@
<?php

namespace Concise\Matcher;

use \Concise\TestCase;

class DoesNotContainStringIgnoringCaseTest extends AbstractMatcherTestCase
{
public function setUp()
{
parent::setUp();
$this->matcher = new DoesNotContainStringIgnoringCase();
}

public function testSuccessIfStringContainsASubstring()
{
$this->assertFailure('foobar', does_not_contain_string, 'oob', ignoring_case);
}

public function testFailsIfSubstringDoesNotExistInString()
{
$this->assert('foobar', does_not_contain_string, 'baz', ignoring_case);
}

public function testIsNotSensitiveToCase()
{
$this->assertFailure('foobar', does_not_contain_string, 'Foo', ignoring_case);
}
}
29 changes: 29 additions & 0 deletions tests/Concise/Matcher/DoesNotContainStringTest.php
@@ -0,0 +1,29 @@
<?php

namespace Concise\Matcher;

use \Concise\TestCase;

class DoesNotContainStringTest extends AbstractMatcherTestCase
{
public function setUp()
{
parent::setUp();
$this->matcher = new DoesNotContainString();
}

public function testSuccessIfStringContainsASubstring()
{
$this->assertFailure('foobar', does_not_contain_string, 'oob');
}

public function testFailsIfSubstringDoesNotExistInString()
{
$this->assert('foobar', does_not_contain_string, 'baz');
}

public function testIsSensitiveToCase()
{
$this->assert('foobar', does_not_contain_string, 'Foo');
}
}
2 changes: 1 addition & 1 deletion wiki
Submodule wiki updated from f55d3a to d8c828

0 comments on commit f100f54

Please sign in to comment.