public void Should_store_and_retrieve_basic_arango_specific_fields_from_document() { var doc = new Dictionary <string, object>() .ID("col/123_a:b-c") .Key("123_a:b-c") .Rev("123456789"); Assert.IsTrue(doc.HasID()); Assert.AreEqual("col/123_a:b-c", doc.ID()); Assert.IsTrue(doc.HasKey()); Assert.AreEqual("123_a:b-c", doc.Key()); Assert.IsTrue(doc.HasRev()); Assert.AreEqual("123456789", doc.Rev()); Assert.Throws <ArgumentException>(() => { var doc1 = new Dictionary <string, object>() .ID("col/123 a"); }); Assert.Throws <ArgumentException>(() => { var doc1 = new Dictionary <string, object>() .Key("123 a"); }); Assert.Throws <ArgumentException>(() => { var doc1 = new Dictionary <string, object>() .Rev("123a"); }); }
public void Should_store_and_retrieve_basic_arango_specific_fields_from_document() { var doc = new Dictionary<string, object>() .ID("col/123_a:b-c") .Key("123_a:b-c") .Rev("123456789"); Assert.IsTrue(doc.HasID()); Assert.AreEqual("col/123_a:b-c", doc.ID()); Assert.IsTrue(doc.HasKey()); Assert.AreEqual("123_a:b-c", doc.Key()); Assert.IsTrue(doc.HasRev()); Assert.AreEqual("123456789", doc.Rev()); Assert.Throws<ArgumentException>(() => { var doc1 = new Dictionary<string, object>() .ID("col/123 a"); }); Assert.Throws<ArgumentException>(() => { var doc1 = new Dictionary<string, object>() .Key("123 a"); }); Assert.Throws<ArgumentException>(() => { var doc1 = new Dictionary<string, object>() .Rev("123a"); }); }
public async Task UpdateDocumentWithoutMergeArrays() { var collection = _db.GetCollection <Dictionary <string, object> >(TestDocumentCollectionName); var newDocument = new Dictionary <string, object>(); newDocument.Add("Foo", "some string"); newDocument.Add("Bar", new Dictionary <string, object>() { { "Foo", "string value" } }); var createResult = await collection .Insert() .ReturnNew() .Document(newDocument); newDocument = createResult.Value; var document = new Dictionary <string, object>(); document.Add("Foo", "some other new string"); document.Add("Bar", new Dictionary <string, object>() { { "Bar", "other string value" } }); var updateResult = await collection .Update() .MergeObjects(false) .DocumentById(newDocument.ID(), document); Assert.AreEqual(202, updateResult.StatusCode); Assert.IsTrue(updateResult.Success); Assert.IsTrue(updateResult.HasValue); Assert.AreEqual(updateResult.Value.ID(), newDocument.ID()); Assert.AreEqual(updateResult.Value.Key(), newDocument.Key()); Assert.AreNotEqual(updateResult.Value.Rev(), newDocument.Rev()); var getResult = await collection .Get() .ById(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["Foo"], newDocument["Foo"]); Assert.AreEqual(getResult.Value["Foo"], document["Foo"]); Assert.IsFalse(((Dictionary <string, object>)getResult.Value["Bar"]).ContainsKey("Foo")); Assert.IsTrue(((Dictionary <string, object>)getResult.Value["Bar"]).ContainsKey("Bar")); }
public void Should_store_and_retrieve_basic_arango_specific_fields_from_document() { var doc = new Dictionary <string, object>() .ID("col/123_a:b-c") .Key("123_a:b-c") .Rev("123456789") .From("col2/456_d:e-f") .To("col3/789_g:h-i"); Assert.IsTrue(doc.HasID()); Assert.AreEqual("col/123_a:b-c", doc.ID()); Assert.IsTrue(doc.HasKey()); Assert.AreEqual("123_a:b-c", doc.Key()); Assert.IsTrue(doc.HasRev()); Assert.AreEqual("123456789", doc.Rev()); Assert.IsTrue(doc.HasFrom()); Assert.AreEqual("col2/456_d:e-f", doc.From()); Assert.IsTrue(doc.HasTo()); Assert.AreEqual("col3/789_g:h-i", doc.To()); //TODO //Assert.Throws<ArgumentException>(() => { // var doc1 = new Dictionary<string, object>() // .ID("col/123 a"); //}); //Assert.Throws<ArgumentException>(() => { // var doc1 = new Dictionary<string, object>() // .Key("123 a"); //}); //Assert.Throws<ArgumentException>(() => { // var doc1 = new Dictionary<string, object>() // .Rev(""); //}); //Assert.Throws<ArgumentException>(() => { // var doc1 = new Dictionary<string, object>() // .From("col2/456 a"); //}); //Assert.Throws<ArgumentException>(() => { // var doc1 = new Dictionary<string, object>() // .To("col3/789 a"); //}); }
public void Should_update_document_with_mergeArrays_set_to_false() { var db = new ADatabase(Database.Alias); var newDocument = new Dictionary <string, object>() .String("foo", "some string") .Document("bar", new Dictionary <string, object>().String("foo", "string value")); var createResult = db.Document .Create(Database.TestDocumentCollectionName, newDocument); newDocument.Merge(createResult.Value); var document = new Dictionary <string, object>() .String("foo", "some other new string") .Document("bar", new Dictionary <string, object>().String("bar", "other string value")); var updateResult = db.Document .MergeObjects(false) .Update(newDocument.ID(), document); Assert.AreEqual(202, updateResult.StatusCode); Assert.IsTrue(updateResult.Success); Assert.IsTrue(updateResult.HasValue); Assert.AreEqual(updateResult.Value.ID(), newDocument.ID()); Assert.AreEqual(updateResult.Value.Key(), newDocument.Key()); Assert.AreNotEqual(updateResult.Value.Rev(), newDocument.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"), newDocument.String("foo")); Assert.AreEqual(getResult.Value.String("foo"), document.String("foo")); Assert.IsFalse(getResult.Value.Has("bar.foo")); Assert.IsTrue(getResult.Value.Has("bar.bar")); }
public void Should_replace_edge_with_ifMatch_and_return_412() { Database.ClearTestCollection(Database.TestEdgeCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .String("foo", "some string") .Int("bar", 12345); var createResult = db .Document .CreateEdge(Database.TestEdgeCollectionName, _documents[0].ID(), _documents[1].ID(), document); document.Merge(createResult.Value); var newDocument = new Dictionary<string, object>() .From(_documents[0].ID()) .To(_documents[1].ID()) .String("foo", "some other new string") .Int("baz", 54321); var replaceResult = db .Document .IfMatch("123456789") .Replace(createResult.Value.ID(), newDocument); Assert.AreEqual(412, replaceResult.StatusCode); Assert.IsFalse(replaceResult.Success); Assert.IsTrue(replaceResult.HasValue); Assert.AreEqual(replaceResult.Value.ID(), document.ID()); Assert.AreEqual(replaceResult.Value.Key(), document.Key()); Assert.AreEqual(replaceResult.Value.Rev(), document.Rev()); }
public void Should_update_edge_with_mergeArrays_set_to_true() { Database.ClearTestCollection(Database.TestEdgeCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .String("foo", "some string") .Document("bar", new Dictionary<string, object>().String("foo", "string value")); var createResult = db .Document .CreateEdge(Database.TestEdgeCollectionName, _documents[0].ID(), _documents[1].ID(), document); document.Merge(createResult.Value); var newDocument = new Dictionary<string, object>() .String("foo", "some other new string") .Document("bar", new Dictionary<string, object>().String("bar", "other string value")); var updateResult = db .Document .MergeObjects(true) // this is also default behavior .Update(createResult.Value.ID(), newDocument); Assert.AreEqual(202, updateResult.StatusCode); Assert.IsTrue(updateResult.Success); Assert.IsTrue(updateResult.HasValue); Assert.AreEqual(updateResult.Value.ID(), document.ID()); Assert.AreEqual(updateResult.Value.Key(), document.Key()); Assert.AreNotEqual(updateResult.Value.Rev(), document.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"), document.String("foo")); Assert.AreEqual(getResult.Value.String("foo"), newDocument.String("foo")); Assert.IsTrue(getResult.Value.Has("bar.foo")); Assert.IsTrue(getResult.Value.Has("bar.bar")); }
public void Should_update_edge_with_keepNull() { Database.ClearTestCollection(Database.TestEdgeCollectionName); var db = new ADatabase(Database.Alias); var document = new Dictionary<string, object>() .String("foo", "some string") .Object("bar", null); var createResult = db .Document .CreateEdge(Database.TestEdgeCollectionName, _documents[0].ID(), _documents[1].ID(), document); document.Merge(createResult.Value); var newDocument = new Dictionary<string, object>() .String("foo", "some other new string") .Object("baz", null); var updateResult = db .Document .KeepNull(false) .Update(createResult.Value.ID(), newDocument); Assert.AreEqual(202, updateResult.StatusCode); Assert.IsTrue(updateResult.Success); Assert.IsTrue(updateResult.HasValue); Assert.AreEqual(updateResult.Value.ID(), document.ID()); Assert.AreEqual(updateResult.Value.Key(), document.Key()); Assert.AreNotEqual(updateResult.Value.Rev(), document.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"), document.String("foo")); Assert.AreEqual(getResult.Value.String("foo"), newDocument.String("foo")); Assert.IsTrue(getResult.Value.Has("bar")); Assert.IsFalse(getResult.Value.Has("baz")); }
public void Should_update_document_with_mergeArrays_set_to_false() { var db = new ADatabase(Database.Alias); var newDocument = new Dictionary<string, object>() .String("foo", "some string") .Document("bar", new Dictionary<string, object>().String("foo", "string value")); var createResult = db.Document .Create(Database.TestDocumentCollectionName, newDocument); newDocument.Merge(createResult.Value); var document = new Dictionary<string, object>() .String("foo", "some other new string") .Document("bar", new Dictionary<string, object>().String("bar", "other string value")); var updateResult = db.Document .MergeObjects(false) .Update(newDocument.ID(), document); Assert.AreEqual(202, updateResult.StatusCode); Assert.IsTrue(updateResult.Success); Assert.IsTrue(updateResult.HasValue); Assert.AreEqual(updateResult.Value.ID(), newDocument.ID()); Assert.AreEqual(updateResult.Value.Key(), newDocument.Key()); Assert.AreNotEqual(updateResult.Value.Rev(), newDocument.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"), newDocument.String("foo")); Assert.AreEqual(getResult.Value.String("foo"), document.String("foo")); Assert.IsFalse(getResult.Value.Has("bar.foo")); Assert.IsTrue(getResult.Value.Has("bar.bar")); }