public void Should_create_edge_from_generic_object()
{
Database.ClearTestCollection(Database.TestEdgeCollectionName);
var db = new ADatabase(Database.Alias);
var dummy = new Dummy();
dummy.Foo = "foo string value";
dummy.Bar = 12345;
var createResult = db
.Document
.CreateEdge(Database.TestEdgeCollectionName, _documents[0].ID(), _documents[1].ID(), dummy);
Assert.AreEqual(202, createResult.StatusCode);
Assert.IsTrue(createResult.Success);
Assert.IsTrue(createResult.HasValue);
Assert.IsTrue(createResult.Value.IsString("_id"));
Assert.IsTrue(createResult.Value.IsString("_key"));
Assert.IsTrue(createResult.Value.IsString("_rev"));
var getResult = db
.Document
.Get(createResult.Value.ID());
Assert.AreEqual(200, getResult.StatusCode);
Assert.IsTrue(getResult.Success);
Assert.IsTrue(getResult.HasValue);
Assert.AreEqual(getResult.Value.ID(), createResult.Value.ID());
Assert.AreEqual(getResult.Value.Key(), createResult.Value.Key());
Assert.AreEqual(getResult.Value.Rev(), createResult.Value.Rev());
Assert.IsTrue(getResult.Value.IsString("_from"));
Assert.IsTrue(getResult.Value.IsString("_to"));
Assert.AreEqual(getResult.Value.String("foo"), dummy.Foo);
Assert.AreEqual(getResult.Value.Int("bar"), dummy.Bar);
Assert.AreEqual(0, dummy.Baz);
}