示例#1
0
        public void DocumentMask()
        {
            var mask = new DocumentMask {
                fieldPaths = new string[] { "a", "b", "c" }
            };
            var fields = JsonMapper.ToJson(mask);

            Assert.That(fields, Is.EqualTo(@"{""fieldPaths"":[""a"",""b"",""c""]}"));
        }
 /// <summary>Snippet for UpdateDocument</summary>
 public void UpdateDocument()
 {
     // Snippet: UpdateDocument(Document,DocumentMask,CallSettings)
     // Create client
     FirestoreClient firestoreClient = FirestoreClient.Create();
     // Initialize request argument(s)
     Document     document   = new Document();
     DocumentMask updateMask = new DocumentMask();
     // Make the request
     Document response = firestoreClient.UpdateDocument(document, updateMask);
     // End snippet
 }
        /// <summary>Snippet for UpdateDocumentAsync</summary>
        public async Task UpdateDocumentAsync()
        {
            // Snippet: UpdateDocumentAsync(Document,DocumentMask,CallSettings)
            // Additional: UpdateDocumentAsync(Document,DocumentMask,CancellationToken)
            // Create client
            FirestoreClient firestoreClient = await FirestoreClient.CreateAsync();

            // Initialize request argument(s)
            Document     document   = new Document();
            DocumentMask updateMask = new DocumentMask();
            // Make the request
            Document response = await firestoreClient.UpdateDocumentAsync(document, updateMask);

            // End snippet
        }
        public async Task UpdateDocumentAsync()
        {
            Mock <Firestore.FirestoreClient> mockGrpcClient  = new Mock <Firestore.FirestoreClient>(MockBehavior.Strict);
            UpdateDocumentRequest            expectedRequest = new UpdateDocumentRequest
            {
                Document   = new Document(),
                UpdateMask = new DocumentMask(),
            };
            Document expectedResponse = new Document
            {
                Name = "name3373707",
            };

            mockGrpcClient.Setup(x => x.UpdateDocumentAsync(expectedRequest, It.IsAny <CallOptions>()))
            .Returns(new Grpc.Core.AsyncUnaryCall <Document>(Task.FromResult(expectedResponse), null, null, null, null));
            FirestoreClient client     = new FirestoreClientImpl(mockGrpcClient.Object, null);
            Document        document   = new Document();
            DocumentMask    updateMask = new DocumentMask();
            Document        response   = await client.UpdateDocumentAsync(document, updateMask);

            Assert.Same(expectedResponse, response);
            mockGrpcClient.VerifyAll();
        }
        public void UpdateDocument()
        {
            Mock <Firestore.FirestoreClient> mockGrpcClient  = new Mock <Firestore.FirestoreClient>(MockBehavior.Strict);
            UpdateDocumentRequest            expectedRequest = new UpdateDocumentRequest
            {
                Document   = new Document(),
                UpdateMask = new DocumentMask(),
            };
            Document expectedResponse = new Document
            {
                Name = "name3373707",
            };

            mockGrpcClient.Setup(x => x.UpdateDocument(expectedRequest, It.IsAny <CallOptions>()))
            .Returns(expectedResponse);
            FirestoreClient client     = new FirestoreClientImpl(mockGrpcClient.Object, null);
            Document        document   = new Document();
            DocumentMask    updateMask = new DocumentMask();
            Document        response   = client.UpdateDocument(document, updateMask);

            Assert.Same(expectedResponse, response);
            mockGrpcClient.VerifyAll();
        }
示例#6
0
        public async Task FSWrite()
        {
            try
            {
                FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Green, "\n:: Streaming Writes to a Document ::\n");
                FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.White, "\nEnter Document Id: ");
                String docId = Console.ReadLine();
                FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Green, "\nStreaming writes to ");
                FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.White, docId);
                FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Green, "...\n");

                Document updatedDoc = GetDocument(docId);
                MapField <string, Value> fields;
                if (updatedDoc == null)
                {
                    updatedDoc      = new Document();
                    updatedDoc.Name = Parent + "/documents/GrpcTestData/" + docId;
                    fields          = new MapField <string, Value>();
                }
                else
                {
                    FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.White, "\nAvailable fields in this document to update:\n");
                    Utils.ProcessFields(updatedDoc);
                    fields = updatedDoc.Fields;
                }

                String streamId = "";
                Google.Protobuf.ByteString streamToken = null;

                using (var writeCall = FsClient.Write())
                {
                    var writeRequest = new WriteRequest();
                    writeRequest.Database = Parent;
                    await writeCall.RequestStream.WriteAsync(writeRequest);

                    await writeCall.ResponseStream.MoveNext();

                    var responseStr = writeCall.ResponseStream.Current;
                    streamId    = responseStr.StreamId;
                    streamToken = responseStr.StreamToken;

                    var responseReaderTask = Task.Run(async() =>
                    {
                        while (await writeCall.ResponseStream.MoveNext())
                        {
                            var response     = writeCall.ResponseStream.Current;
                            var writeResults = response.WriteResults;
                            foreach (var writeResult in writeResults)
                            {
                                FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.White, "\nWrite result:" + writeResult.ToString());
                            }
                        }
                    });

                    var currentWrite = new Write();
                    var docMask      = new DocumentMask();
                    // update/create fields
                    while (true)
                    {
                        FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.White, "\nEnter Field Name (blank when finished): ");
                        string fieldName = Console.ReadLine();
                        if (fieldName == "")
                        {
                            break;
                        }
                        else
                        {
                            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.White, "\nEnter Field Value: ");
                            var fieldInValue = Console.ReadLine();
                            Utils.AddField(fields, fieldName, fieldInValue);
                            docMask.FieldPaths.Add(fieldName);
                        }
                    }
                    writeRequest.Database    = Parent;
                    currentWrite.Update      = updatedDoc;
                    currentWrite.UpdateMask  = docMask;
                    writeRequest.StreamId    = streamId;
                    writeRequest.StreamToken = streamToken;
                    writeRequest.Writes.Add(currentWrite);
                    await writeCall.RequestStream.WriteAsync(writeRequest);

                    await writeCall.RequestStream.CompleteAsync();

                    await responseReaderTask;
                }
            }
            catch (Grpc.Core.RpcException e)
            {
                Console.WriteLine("RPC failed", e);
                throw;
            }
            FirestoreTestUtils.ColoredConsoleWrite(ConsoleColor.Green, "\nSuccessfully streamed updates to the document!\n");
        }