public void Should_execute_transaction_with_object_parameter_and_return_document_ID() { Database.ClearTestCollection(Database.TestDocumentCollectionName); var db = new ADatabase(Database.Alias); var transactionData = new TransactionEntity { Foo = "Some string value" }; var transactionResult = db.Transaction .WriteCollection(Database.TestDocumentCollectionName) .Param("data", transactionData) .Execute <string>(@" function (params) { var db = require('internal').db; return db." + Database.TestDocumentCollectionName + @".save(params.data)._id; } "); Assert.AreEqual(200, transactionResult.StatusCode); Assert.IsTrue(transactionResult.Success); Assert.IsTrue(transactionResult.HasValue); Assert.IsFalse(string.IsNullOrEmpty(transactionResult.Value)); var docId = transactionResult.Value; var getResult = db.Document .Get(docId); Assert.AreEqual(200, getResult.StatusCode); Assert.IsTrue(getResult.Success); Assert.IsTrue(getResult.HasValue); Assert.AreEqual(getResult.Value.ID(), docId); Assert.AreEqual(transactionData.Foo, getResult.Value.String("Foo")); }
public void Should_execute_transaction_with_object_parameter_and_return_document_ID() { Database.ClearTestCollection(Database.TestDocumentCollectionName); var db = new ADatabase(Database.Alias); var transactionData = new TransactionEntity { Foo = "Some string value" }; var transactionResult = db.Transaction .WriteCollection(Database.TestDocumentCollectionName) .Param("data", transactionData) .Execute<string>(@" function (params) { var db = require('internal').db; return db." + Database.TestDocumentCollectionName + @".save(params.data)._id; } "); Assert.AreEqual(200, transactionResult.StatusCode); Assert.IsTrue(transactionResult.Success); Assert.IsTrue(transactionResult.HasValue); Assert.IsFalse(string.IsNullOrEmpty(transactionResult.Value)); var docId = transactionResult.Value; var getResult = db.Document .Get(docId); Assert.AreEqual(200, getResult.StatusCode); Assert.IsTrue(getResult.Success); Assert.IsTrue(getResult.HasValue); Assert.AreEqual(getResult.Value.ID(), docId); Assert.AreEqual(transactionData.Foo, getResult.Value.String("Foo")); }