public async Task GetQueueAsync_returns_existent_queue()
        {
            // GIVEN
            var expected = typeof (IQueueOf<string>);

            _sut = new FakeQueueFactory(_mongoContext);

            // WHEN
            var actual = await _sut.GetQueueAsync<string>("anyqueue");

            // THEN
            Assert.That(actual, Is.InstanceOf(expected));
        }
        public async Task CreateQueueAsync_returns_existing_queue_if_it_exists()
        {
            // GIVEN
            var expected = typeof (IQueueOf<string>);

            _mongoContext.CollectionExistsAsync("anyqueue")
                .Returns(Task.FromResult(true));

            _sut = new FakeQueueFactory(_mongoContext);

            // WHEN
            var actual = await _sut.CreateQueueAsync<string>("anyqueue", 1000);

            // THEN
            _mongoContext.Received(1).CollectionExistsAsync("anyqueue").IgnoreAwaitForNSubstituteAssertion();
            Assert.That(actual, Is.InstanceOf(expected));
        }
        public async Task GetQueueAsync_returns_null_for_unexistent_queue()
        {
            // GIVEN
            _mongoContext.GetCollectionAsync<BsonDocument>("anyqueue", true)
                .Returns(Task.FromResult((IMongoCollection<BsonDocument>) null));

            _sut = new FakeQueueFactory(_mongoContext);

            // WHEN
            var actual = await _sut.GetQueueAsync<string>("anyqueue");

            // THEN
            Assert.That(actual, Is.Null);
        }