/// <summary>
 /// Create an instance of <see cref="ArangoDBClient"/> from an existing
 /// <see cref="IApiClientTransport"/> instance.
 /// </summary>
 /// <param name="transport">The ArangoDB transport layer implementation.</param>
 public ArangoDBClient(IApiClientTransport transport)
 {
     _transport  = transport;
     Cursor      = new CursorApiClient(_transport);
     Database    = new DatabaseApiClient(_transport);
     Document    = new DocumentApiClient(_transport);
     Collection  = new CollectionApiClient(_transport);
     Transaction = new TransactionApiClient(_transport);
     Graph       = new GraphApiClient(_transport);
 }
Пример #2
0
        public DocumentApiClientTest(DocumentApiClientTestFixture fixture)
        {
            _adb       = fixture.ArangoDBClient;
            _docClient = _adb.Document;

            // Truncate TestCollection before each test
            _adb.Collection.TruncateCollectionAsync(fixture.TestCollection)
            .GetAwaiter()
            .GetResult();
        }
 /// <summary>
 /// Create an instance of <see cref="ArangoDBClient"/> from an existing
 /// <see cref="HttpClient"/> instance.
 /// </summary>
 /// <param name="client"></param>
 public ArangoDBClient(HttpClient client)
 {
     _transport  = new HttpApiTransport(client);
     Cursor      = new CursorApiClient(_transport);
     Database    = new DatabaseApiClient(_transport);
     Document    = new DocumentApiClient(_transport);
     Collection  = new CollectionApiClient(_transport);
     Transaction = new TransactionApiClient(_transport);
     Graph       = new GraphApiClient(_transport);
 }
Пример #4
0
 /// <summary>
 /// Create an instance of <see cref="ArangoDBClient"/>
 /// using the provided transport and serialization layers.
 /// </summary>
 /// <param name="transport">The ArangoDB transport layer implementation.</param>
 /// <param name="serialization">The serialization layer implementation.</param>
 public ArangoDBClient(IApiClientTransport transport, IApiClientSerialization serialization)
 {
     _transport  = transport;
     Auth        = new AuthApiClient(_transport, serialization);
     Cursor      = new CursorApiClient(_transport, serialization);
     Database    = new DatabaseApiClient(_transport, serialization);
     Document    = new DocumentApiClient(_transport, serialization);
     Collection  = new CollectionApiClient(_transport, serialization);
     Transaction = new TransactionApiClient(_transport, serialization);
     Graph       = new GraphApiClient(_transport, serialization);
 }
        public async Task PatchDocumentsAsync_ShouldUseQueryParameters_WhenProvided()
        {
            var mockTransport = new Mock <IApiClientTransport>();

            var mockResponse = new Mock <IApiClientResponse>();

            var mockResponseContent = new Mock <IApiClientResponseContent>();

            mockResponse.Setup(x => x.Content)
            .Returns(mockResponseContent.Object);

            mockResponse.Setup(x => x.IsSuccessStatusCode)
            .Returns(true);

            string requestUri = null;

            mockTransport.Setup(x => x.PatchAsync(It.IsAny <string>(), It.IsAny <byte[]>()))
            .Returns((string uri, byte[] content) =>
            {
                requestUri = uri;
                return(Task.FromResult(mockResponse.Object));
            });

            var client = new DocumentApiClient(mockTransport.Object);

            await client.PatchDocumentsAsync <object, object>(
                "mycollection",
                new[]
            {
                new { Value = 1, Name = "test1" },
                new { Value = 2, Name = "test2" },
                new { Value = 3, Name = "test3" }
            },
                new PatchDocumentsQuery
            {
                IgnoreRevs   = true,
                ReturnOld    = true,
                Silent       = true,
                WaitForSync  = true,
                KeepNull     = true,
                MergeObjects = true,
                ReturnNew    = true
            });

            Assert.NotNull(requestUri);
            Assert.Contains("ignoreRevs=true", requestUri);
            Assert.Contains("returnOld=true", requestUri);
            Assert.Contains("silent=true", requestUri);
            Assert.Contains("waitForSync=true", requestUri);
            Assert.Contains("keepNull=true", requestUri);
            Assert.Contains("mergeObjects=true", requestUri);
            Assert.Contains("returnNew=true", requestUri);
        }
 /// <summary>
 /// Create an instance of <see cref="ArangoDBClient"/> from an existing
 /// <see cref="HttpClient"/> instance, using the default JSON serialization.
 /// </summary>
 /// <param name="client"></param>
 public ArangoDBClient(HttpClient client)
 {
     _transport  = new HttpApiTransport(client, HttpContentType.Json);
     AqlFunction = new AqlFunctionApiClient(_transport);
     Auth        = new AuthApiClient(_transport);
     Cursor      = new CursorApiClient(_transport);
     Database    = new DatabaseApiClient(_transport);
     Document    = new DocumentApiClient(_transport);
     Collection  = new CollectionApiClient(_transport);
     Transaction = new TransactionApiClient(_transport);
     Graph       = new GraphApiClient(_transport);
 }
 private void InitializeApis(
     IApiClientTransport transport,
     IApiClientSerialization serialization)
 {
     AqlFunction = new AqlFunctionApiClient(transport, serialization);
     Auth        = new AuthApiClient(transport, serialization);
     Cursor      = new CursorApiClient(transport, serialization);
     Database    = new DatabaseApiClient(transport, serialization);
     Document    = new DocumentApiClient(transport, serialization);
     Collection  = new CollectionApiClient(transport, serialization);
     Transaction = new TransactionApiClient(transport, serialization);
     Graph       = new GraphApiClient(transport, serialization);
     User        = new UserApiClient(transport, serialization);
 }
        public async Task PutDocument_ShouldUseQueryParameters_WhenProvided()
        {
            var mockTransport = new Mock <IApiClientTransport>();

            var mockResponse = new Mock <IApiClientResponse>();

            var mockResponseContent = new Mock <IApiClientResponseContent>();

            mockResponse.Setup(x => x.Content)
            .Returns(mockResponseContent.Object);

            mockResponse.Setup(x => x.IsSuccessStatusCode)
            .Returns(true);

            string requestUri = null;

            mockTransport.Setup(x => x.PutAsync(It.IsAny <string>(), It.IsAny <byte[]>()))
            .Returns((string uri, byte[] content) =>
            {
                requestUri = uri;
                return(Task.FromResult(mockResponse.Object));
            });

            var client = new DocumentApiClient(mockTransport.Object);

            await client.PutDocumentAsync(
                "mycollection/0123456789",
                new { },
                new PutDocumentQuery
            {
                IgnoreRevs  = true,
                ReturnOld   = true,
                ReturnNew   = true,
                Silent      = true,
                WaitForSync = true
            });

            Assert.NotNull(requestUri);
            Assert.Contains("ignoreRevs=true", requestUri);
            Assert.Contains("returnOld=true", requestUri);
            Assert.Contains("returnNew=true", requestUri);
            Assert.Contains("silent=true", requestUri);
            Assert.Contains("waitForSync=true", requestUri);
        }
Пример #9
0
 public DocumentApiClientTest(DocumentApiClientTestFixture fixture)
 {
     _adb            = fixture.ArangoDBClient;
     _docClient      = _adb.Document;
     _testCollection = fixture.TestCollection;
 }