public void TestCastsToDocument() { var ogen = new OidGenerator(); var dref = new DBRef("tests.dbrefs", ogen.Generate()); var doc = (Document)dref; Assert.AreEqual(dref.CollectionName, doc[DBRef.RefName]); }
public void TestFollowNonReference(){ var id = new Oid("BAD067c30a57000000008ecb"); var rf = new DBRef("refs", id); var target = DB.FollowReference(rf); Assert.IsNull(target, "FollowReference returned wasn't null"); }
public void TestCastsToDocument() { var ogen = new OidGenerator(); var dref = new DBRef("tests.dbrefs", ogen.Generate()); var doc = (Document)dref; Assert.AreEqual(dref.CollectionName, doc[DBRef.RefName]); }
public void TestFromDocument() { const string colname = "tests"; const string id = "32312312"; var doc = new Document().Add(DBRef.RefName, colname).Add(DBRef.IdName, id); var expected = new DBRef(colname, id); Assert.AreEqual(expected, DBRef.FromDocument(doc)); }
public void TestEqualsUsingSameValues() { const string colname = "tests"; const string id = "32312312"; var r = new DBRef(colname, id); var r2 = new DBRef(colname, id); Assert.AreEqual(r, r2); }
public void TestFollowNonReference() { var id = new Oid("BAD067c30a57000000008ecb"); var rf = new DBRef("refs", id); var target = DB.FollowReference(rf); Assert.IsNull(target, "FollowReference returned wasn't null"); }
public void TestEqualsUsingSameValues() { const string colname = "tests"; const string id = "32312312"; var r = new DBRef(colname, id); var r2 = new DBRef(colname, id); Assert.AreEqual(r, r2); }
public void TestFromDocument() { const string colname = "tests"; const string id = "32312312"; var doc = new Document().Add(DBRef.RefName, colname).Add(DBRef.IdName, id); var expected = new DBRef(colname, id); Assert.AreEqual(expected, DBRef.FromDocument(doc)); }
public void CanBeXmlSerialized() { var source = new DBRef("collection", "id"); var serializer = new XmlSerializer(typeof(DBRef)); var writer = new StringWriter(); serializer.Serialize(writer, source); var dest = (DBRef)serializer.Deserialize(new StringReader(writer.ToString())); Assert.AreEqual(source, dest); }
/// <summary> /// Ends the object. /// </summary> /// <param name = "instance">The instance.</param> /// <returns></returns> public object EndObject(object instance) { var document = (Document)instance; if (DBRef.IsDocumentDBRef(document)) { return(DBRef.FromDocument(document)); } return(document); }
public void CanBeXmlSerialized() { var source = new DBRef("collection", "id"); var serializer = new XmlSerializer(typeof(DBRef)); var writer = new StringWriter(); serializer.Serialize(writer, source); var dest = (DBRef)serializer.Deserialize(new StringReader(writer.ToString())); Assert.AreEqual(source, dest); }
public void CanBeBinarySerialized() { var source = new DBRef("collection", "id"); var formatter = new BinaryFormatter(); var mem = new MemoryStream(); formatter.Serialize(mem, source); mem.Position = 0; var dest = (DBRef)formatter.Deserialize(mem); Assert.AreEqual(source, dest); }
public void TestFollowReference(){ var refs = DB["refs"]; var id = new Oid("4a7067c30a57000000008ecb"); var msg = "this has an oid key"; var doc = new Document {{"_id", id}, {"msg", msg}}; refs.Insert(doc); var rf = new DBRef("refs", id); var target = DB.FollowReference(rf); Assert.IsNotNull(target, "FollowReference returned null"); Assert.IsTrue(target.ContainsKey("msg")); Assert.AreEqual(msg, target["msg"]); }
public void CanBeBinarySerialized() { var source = new DBRef("collection", "id"); var formatter = new BinaryFormatter(); var mem = new MemoryStream(); formatter.Serialize(mem, source); mem.Position = 0; var dest = (DBRef)formatter.Deserialize(mem); Assert.AreEqual(source, dest); }
public void Fetch() { IDBCollection c = Mongo.DefaultDatabase.GetCollection("test"); c.Drop(); Document obj = new Document() {{"test","me"}}; c.Save(obj); DBRef r = new DBRef(c, obj.ID); IDocument deref = r.Fetch(); Assert.That(deref, Is.Not.Null); Assert.That(deref.ID, Is.EqualTo(obj.ID)); }
public void TestDBRef() { Document source = new Document(); source.Append("x", 1).Append("ref", new DBRef("refs", "ref1")); Document copy = WriteAndRead(source); Assert.IsTrue(copy.Contains("ref")); Assert.IsTrue(copy["ref"].GetType() == typeof(DBRef)); DBRef sref = (DBRef)source["ref"]; DBRef cref = (DBRef)copy["ref"]; Assert.AreEqual(sref.Id, cref.Id); }
public void TestReferenceNonOid() { var refs = DB["refs"]; var doc = new Document().Add("_id", 123).Add("msg", "this has a non oid key"); refs.Insert(doc); var rf = new DBRef("refs", 123); var recv = DB.FollowReference(rf); Assert.IsNotNull(recv); Assert.IsTrue(recv.ContainsKey("msg")); Assert.AreEqual(recv["_id"], (long)123); }
public void TestFollowReference() { var refs = DB["refs"]; var id = new Oid("4a7067c30a57000000008ecb"); var msg = "this has an oid key"; var doc = new Document { { "_id", id }, { "msg", msg } }; refs.Insert(doc); var rf = new DBRef("refs", id); var target = DB.FollowReference(rf); Assert.IsNotNull(target, "FollowReference returned null"); Assert.IsTrue(target.ContainsKey("msg")); Assert.AreEqual(msg, target["msg"]); }
public void TestIsDocumentDBRef() { var doc = new Document(); Assert.IsFalse(DBRef.IsDocumentDBRef(null)); Assert.IsFalse(DBRef.IsDocumentDBRef(doc)); doc[DBRef.RefName] = "tests"; Assert.IsFalse(DBRef.IsDocumentDBRef(doc)); doc.Remove(DBRef.RefName); doc[DBRef.IdName] = "12312131"; Assert.IsFalse(DBRef.IsDocumentDBRef(doc)); doc[DBRef.RefName] = "tests"; Assert.IsTrue(DBRef.IsDocumentDBRef(doc)); doc[DBRef.MetaName] = new Document(); Assert.IsTrue(DBRef.IsDocumentDBRef(doc)); }
/// <summary> /// Writes the specified reference. /// </summary> /// <param name = "reference">The reference.</param> public void Write(DBRef reference) { WriteObject((Document)reference); }
public void TestEqualsAreSameObject() { var r = new DBRef("tests", "2312314"); Assert.AreEqual(r, r); }
public void TestEqualsAreSameObject() { var r = new DBRef("tests", "2312314"); Assert.AreEqual(r, r); }
public void TestFromIncompleteDocumentThrowsArguementException() { DBRef.FromDocument(new Document(DBRef.RefName, "tests")); }
/// <summary> /// Calculates the size. /// </summary> /// <param name = "reference">The reference.</param> /// <returns></returns> public int CalculateSize(DBRef reference) { return CalculateSizeObject((Document)reference); }
public void TestReferenceNonOid(){ var refs = DB["refs"]; var doc = new Document().Add("_id", 123).Add("msg", "this has a non oid key"); refs.Insert(doc); var rf = new DBRef("refs", 123); var recv = DB.FollowReference(rf); Assert.IsNotNull(recv); Assert.IsTrue(recv.ContainsKey("msg")); Assert.AreEqual(recv["_id"], (long)123); }
/// <summary> /// Writes the specified reference. /// </summary> /// <param name = "reference">The reference.</param> public void Write(DBRef reference) { WriteObject((Document)reference); }
/// <summary> /// Calculates the size. /// </summary> /// <param name = "reference">The reference.</param> /// <returns></returns> public int CalculateSize(DBRef reference) { return(CalculateSizeObject((Document)reference)); }
public Object ReadElementType(sbyte typeNum) { switch ((BsonDataType)typeNum) { case BsonDataType.Null: case BsonDataType.Undefined: return(MongoDBNull.Value); case BsonDataType.MinKey: return(MongoMinKey.Value); case BsonDataType.MaxKey: return(MongoMaxKey.Value); case BsonDataType.Boolean: position++; return(reader.ReadBoolean()); case BsonDataType.Integer: position += 4; return(reader.ReadInt32()); case BsonDataType.Long: position += 8; return(reader.ReadInt64()); case BsonDataType.Date: position += 8; long millis = reader.ReadInt64(); return(epoch.AddMilliseconds(millis)); case BsonDataType.Oid: position += 12; return(new Oid(reader.ReadBytes(12))); case BsonDataType.Number: position += 8; return(reader.ReadDouble()); case BsonDataType.String: { return(ReadLenString()); } case BsonDataType.Obj: { Document doc = this.ReadDocument(); if (DBRef.IsDocumentDBRef(doc)) { return(DBRef.FromDocument(doc)); } return(doc); } case BsonDataType.Array: { Document doc = this.ReadDocument(); return(ConvertToArray(doc)); } case BsonDataType.Regex: { MongoRegex r = new MongoRegex(); r.Expression = this.ReadString(); r.Options = this.ReadString(); return(r); } case BsonDataType.Code: { Code c = new Code(); c.Value = ReadLenString(); return(c); } case BsonDataType.CodeWScope: { int startpos = position; int size = reader.ReadInt32(); position += 4; String val = this.ReadLenString(); Document scope = this.ReadDocument(); if (size != position - startpos) { throw new System.IO.InvalidDataException(string.Format("Should have read {0} bytes from stream but read {1} in CodeWScope", size, position - startpos)); } return(new CodeWScope(val, scope)); } case BsonDataType.Binary: { int size = reader.ReadInt32(); position += 4; byte subtype = reader.ReadByte(); position++; if (subtype == (byte)Binary.TypeCode.General) { size = reader.ReadInt32(); position += 4; } byte[] bytes = reader.ReadBytes(size); position += size; // From http://en.wikipedia.org/wiki/Universally_Unique_Identifier // The most widespread use of this standard is in Microsoft's Globally Unique Identifiers (GUIDs). if (subtype == 3 && 16 == size) { return(new Guid(bytes)); } Binary b = new Binary(); b.Bytes = bytes; b.Subtype = (Binary.TypeCode)subtype; return(b); } default: throw new ArgumentOutOfRangeException(String.Format("Type Number: {0} not recognized", typeNum)); } }