Assserts that the semaphore is available.

As discussed in issue #1, the tests should fail when we try to take a semaphore with a count of zero, since all unit tests run single threaded.