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());
}