public void Should_update_document_with_generic_object()
{
var documents = Database.ClearCollectionAndFetchTestDocumentData(Database.TestDocumentCollectionName);
var db = new ADatabase(Database.Alias);
var dummy = new Dummy();
dummy.Foo = "some other new string";
dummy.Bar = 54321;
dummy.Baz = 12345;
var updateResult = db.Document
.Update(documents[0].ID(), dummy);
Assert.AreEqual(202, updateResult.StatusCode);
Assert.IsTrue(updateResult.Success);
Assert.IsTrue(updateResult.HasValue);
Assert.AreEqual(updateResult.Value.ID(), documents[0].ID());
Assert.AreEqual(updateResult.Value.Key(), documents[0].Key());
Assert.AreNotEqual(updateResult.Value.Rev(), documents[0].Rev());
var getResult = db.Document
.Get(updateResult.Value.ID());
Assert.AreEqual(getResult.Value.ID(), updateResult.Value.ID());
Assert.AreEqual(getResult.Value.Key(), updateResult.Value.Key());
Assert.AreEqual(getResult.Value.Rev(), updateResult.Value.Rev());
Assert.AreNotEqual(getResult.Value.String("foo"), documents[0].String("foo"));
Assert.AreEqual(getResult.Value.String("foo"), dummy.Foo);
Assert.AreNotEqual(getResult.Value.Int("bar"), documents[0].Int("bar"));
Assert.AreEqual(getResult.Value.Int("bar"), dummy.Bar);
Assert.AreEqual(getResult.Value.Int("baz"), dummy.Baz);
}