Skip to content

Commit

Permalink
Added some missing tests
Browse files Browse the repository at this point in the history
  • Loading branch information
davidwdan committed Jan 7, 2017
1 parent 0c4cb2e commit 7cdadb0
Show file tree
Hide file tree
Showing 11 changed files with 616 additions and 3 deletions.
5 changes: 3 additions & 2 deletions src/Observable.php
Expand Up @@ -1814,12 +1814,13 @@ public function partition(callable $predicate): array
*
* @param AnonymousObservable[] $observables
* @param SchedulerInterface $scheduler
* @return AnonymousObservable
* @return Observable
*
* @demo race/race.php
* @operator
* @reactivex amb
*/
public static function race(array $observables, SchedulerInterface $scheduler = null): AnonymousObservable
public static function race(array $observables, SchedulerInterface $scheduler = null): Observable
{
if (count($observables) === 1) {
return $observables[0];
Expand Down
36 changes: 36 additions & 0 deletions test/Rx/Functional/Operator/BufferWithCountTest.php
Expand Up @@ -223,4 +223,40 @@ public function bufferWithCountdisposed()
subscribe(200, 370)
], $xs->getSubscriptions());
}

/**
* @test
*
* @expectedException \InvalidArgumentException
*/
public function bufferWithCount_invalid_skip()
{
$xs = $this->createHotObservable([
onNext(100, 1),
onNext(210, 2),
onCompleted(300)
]);

$this->scheduler->startWithCreate(function () use ($xs) {
return $xs->bufferWithCount(0, 1);
});
}

/**
* @test
*
* @expectedException \InvalidArgumentException
*/
public function bufferWithCount_invalid_count()
{
$xs = $this->createHotObservable([
onNext(100, 1),
onNext(210, 2),
onCompleted(300)
]);

$this->scheduler->startWithCreate(function () use ($xs) {
return $xs->bufferWithCount(1, 0);
});
}
}
30 changes: 30 additions & 0 deletions test/Rx/Functional/Operator/CatchErrorTest.php
Expand Up @@ -360,6 +360,36 @@ public function catchError_HandlerThrows()
);
}

/**
* @test
*/
public function catchError_handler_returns_invalid_string()
{
$o1 = $this->createHotObservable(
[
onNext(150, 1),
onNext(210, 2),
onNext(220, 3),
onError(230, new \Exception())
]
);

$results = $this->scheduler->startWithCreate(function () use ($o1) {
return $o1->catch(function () {
return 'unexpected string';
});
});

$this->assertMessages(
[
onNext(210, 2),
onNext(220, 3),
onError(230, new \Exception())
],
$results->getMessages()
);
}

/**
* @test
*/
Expand Down
21 changes: 21 additions & 0 deletions test/Rx/Functional/Operator/DeferTest.php
Expand Up @@ -123,6 +123,27 @@ public function defer_throw()

}

/**
* @test
*/
public function defer_factory_returns_invalid_string()
{
$invoked = 0;

$results = $this->scheduler->startWithCreate(function () use (&$invoked) {
return Observable::defer(function () use (&$invoked) {
$invoked++;
return 'unexpected string';
});
});

$this->assertMessages([
onError(200, new \Exception())
], $results->getMessages());

$this->assertEquals(1, $invoked);
}

/**
* @test
* @expectedException \Exception
Expand Down
21 changes: 21 additions & 0 deletions test/Rx/Functional/Operator/DoOnEachOperatorTest.php
Expand Up @@ -743,4 +743,25 @@ function ($e) use (&$sawError, $ex) {
});

}

/**
* @test
*
* @expectedException \InvalidArgumentException
*/
public function do_throws_when_args_invalid()
{
$xs = $this->createHotObservable([
onNext(150, 1),
onNext(210, 2),
onNext(220, 3),
onNext(230, 4),
onNext(240, 5),
onCompleted(250)
]);

$this->scheduler->startWithCreate(function () use ($xs) {
return $xs->do('invalid arg');
});
}
}

0 comments on commit 7cdadb0

Please sign in to comment.