예제 #1
0
        public async Task GetAsyncEnumerator_CalledTwice_StreamAlreadyReadException(string filename)
        {
            // Arrange

            using var stream = ResourceHelper.ReadResourceAsStream(filename);

            using var streamingResult = new StreamingQueryResult <dynamic>(stream, new DefaultSerializer());
            await streamingResult.InitializeAsync();

            // Act/Assert

            await streamingResult.ToListAsync();

            await Assert.ThrowsAsync <StreamAlreadyReadException>(() => streamingResult.ToListAsync().AsTask());
        }
예제 #2
0
        public async Task GetAsyncEnumerator_CalledTwice_StreamAlreadyReadException()
        {
            // Arrange

            using var stream = ResourceHelper.ReadResourceAsStream(@"Documents\Query\query-200-success.json");

            using var streamingResult = new StreamingQueryResult <dynamic>(stream, new DefaultSerializer(), ErrorContextFactory);
            await streamingResult.InitializeAsync();

            // Act/Assert

            await streamingResult.ToListAsync();

            await Assert.ThrowsAsync <StreamAlreadyReadException>(() => streamingResult.ToListAsync().AsTask());
        }
예제 #3
0
        public async Task GetAsyncEnumerator_HasNotInitialized_InvalidOperationException()
        {
            // Arrange

            using var stream = ResourceHelper.ReadResourceAsStream(@"Documents\Query\query-200-success.json");

            using var streamingResult = new StreamingQueryResult <dynamic>(stream, new DefaultSerializer());

            // Act/Assert

            await Assert.ThrowsAsync <InvalidOperationException>(() => streamingResult.ToListAsync().AsTask());
        }
예제 #4
0
        public async Task GetAsyncEnumerator_ErrorAfterResults_13014_Throws_AuthenticationException(string filename)
        {
            // Arrange

            using var stream = ResourceHelper.ReadResourceAsStream(filename);

            using var streamingResult = new StreamingQueryResult <dynamic>(stream, new DefaultSerializer(), ErrorContextFactory);
            streamingResult.Success   = true; // In this scenario we're getting a 200, so Success will be set to true
            await streamingResult.InitializeAsync();

            // Act/Assert

            await Assert.ThrowsAsync <AuthenticationFailureException>(() => streamingResult.ToListAsync().AsTask());
        }
예제 #5
0
        public async Task GetAsyncEnumerator_NoResults_Empty()
        {
            // Arrange

            using var stream = ResourceHelper.ReadResourceAsStream(@"Documents\Query\query-n1ql-error-response-400.json");

            using var streamingResult = new StreamingQueryResult <dynamic>(stream, new DefaultSerializer());
            await streamingResult.InitializeAsync();

            // Act

            var result = await streamingResult.ToListAsync();

            // Assert

            Assert.Empty(result);
        }
예제 #6
0
        public async Task GetAsyncEnumerator_NoResults_Empty()
        {
            // Arrange

            using var stream = ResourceHelper.ReadResourceAsStream(@"Documents\Query\query-200-success-empty.json");

            using var streamingResult = new StreamingQueryResult <dynamic>(stream, new DefaultSerializer(), ErrorContextFactory);
            await streamingResult.InitializeAsync();

            // Act

            var result = await streamingResult.ToListAsync();

            // Assert

            Assert.Empty(result);
        }
예제 #7
0
        public async Task GetAsyncEnumerator_HasInitialized_GetsResults()
        {
            // Arrange

            using var stream = ResourceHelper.ReadResourceAsStream(@"Documents\Query\query-200-success.json");

            using var streamingResult = new StreamingQueryResult <dynamic>(stream, new DefaultSerializer());
            await streamingResult.InitializeAsync();

            // Act

            var result = await streamingResult.ToListAsync();

            // Assert

            Assert.True(streamingResult.Success);
            Assert.Equal(QueryStatus.Success, streamingResult.MetaData.Status);
            Assert.NotEmpty(result);
        }
예제 #8
0
        public async Task GetAsyncEnumerator_AfterEnumeration_PreResultFieldsStillPresent()
        {
            // Arrange

            using var stream = ResourceHelper.ReadResourceAsStream(@"Documents\Query\query-200-success.json");

            using var streamingResult = new StreamingQueryResult <dynamic>(stream, new DefaultSerializer());
            await streamingResult.InitializeAsync();

            // Act

            await streamingResult.ToListAsync();

            // Assert

            Assert.Equal("b7a6b094-4699-4edb-b576-9092ab1404cb", streamingResult.MetaData.RequestId);
            Assert.Equal("1e6df61d-29ef-4821-9e49-02b3edd06ce5", streamingResult.MetaData.ClientContextId);
            Assert.NotNull(streamingResult.MetaData.Signature);
        }
예제 #9
0
        public async Task GetAsyncEnumerator_AfterEnumeration_HasErrors(string filename, QueryStatus expectedStatus)
        {
            // Arrange

            using var stream = ResourceHelper.ReadResourceAsStream(filename);

            using var streamingResult = new StreamingQueryResult <dynamic>(stream, new DefaultSerializer());
            await streamingResult.InitializeAsync();

            // Act

            await streamingResult.ToListAsync();

            var result = streamingResult.MetaData.Status;

            // Assert

            Assert.False(streamingResult.Success);
            Assert.Equal(expectedStatus, result);
            Assert.NotEmpty(streamingResult.Errors);
        }