public void GetAsync_Allows_No_GetOptions()
        {
            var mockBucket = new Mock <FakeBucket>();
            var collection = new CouchbaseCollection(mockBucket.Object, new ClusterContext(), 0, "_default");

            collection.GetAsync("key").GetAwaiter().GetResult();
        }
        public void Get_Timed_Out_Throw_TimeoutException()
        {
            var mockBucket = new Mock <FakeBucket>();
            var collection = new CouchbaseCollection(mockBucket.Object, new ClusterContext(), 0, "_default");

            Assert.ThrowsAsync <TimeoutException>(async() => await collection.GetAsync("key", options =>
            {
                options.WithTimeout(TimeSpan.FromMilliseconds(1d));
            }));
        }
        //[InlineData(ResponseStatus.CasMismatch)] TODO
        // [InlineData(ResponseStatus.KeyDeleted)] TODO
        public async Task Get_Fails_Throw_KeyValueException(ResponseStatus responseStatus, Type exceptionType)
        {
            var bucket     = new FakeBucket(responseStatus);
            var collection = new CouchbaseCollection(bucket, new ClusterContext(), 0, "_default");

            try
            {
                using (await collection.GetAsync("key"))
                {
                }
            }
            catch (Exception e)
            {
                Assert.IsType(exceptionType, e);
            }
        }