public void Should_execute_transaction_with_single_value_parameter_and_return_document_ID()
{
Database.ClearTestCollection(Database.TestDocumentCollectionName);
var db = new ADatabase(Database.Alias);
var transactionResult = db.Transaction
.WriteCollection(Database.TestDocumentCollectionName)
.Param("data", "some string value")
.Execute<string>(@"
function (params) {
var db = require('internal').db;
return db." + Database.TestDocumentCollectionName + @".save({ foo: 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);
}