You should expose the behavior you are looking for by exposing a service that accesses your concurrent stack and blocking collection. That way you can mock the behavior at test time as well.
interface IWhateverYourCollectionService {
//TryPeak();
//Any other methods that make sense for what your doing.
}
In this way you could store both of the objects in the service or have them grabbed from a factory and expose the appropriate behavior through your service.