forked from samus/mongodb-csharp
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add failing serialization tests to Binary, DBRef, Document, MongoRege…
…x and MongoSymbol.
- Loading branch information
Showing
6 changed files
with
218 additions
and
95 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,76 +1,107 @@ | ||
using System; | ||
using System.IO; | ||
using System.Runtime.Serialization.Formatters.Binary; | ||
using System.Xml.Serialization; | ||
using NUnit.Framework; | ||
|
||
namespace MongoDB.UnitTests | ||
{ | ||
[TestFixture] | ||
public class TestDBRef | ||
{ | ||
[Test] | ||
public void TestEqualsAreSameObject (){ | ||
DBRef r = new DBRef ("tests", "2312314"); | ||
Assert.AreEqual (r, r); | ||
} | ||
|
||
[Test] | ||
public void TestEqualsUsingSameValues (){ | ||
String colname = "tests"; | ||
String id = "32312312"; | ||
DBRef r = new DBRef (colname, id); | ||
DBRef r2 = new DBRef (colname, id); | ||
|
||
Assert.AreEqual (r, r2); | ||
} | ||
|
||
[Test] | ||
public void TestFromDocument (){ | ||
String colname = "tests"; | ||
String id = "32312312"; | ||
Document doc = new Document ().Add(DBRef.RefName, colname).Add(DBRef.IdName, id); | ||
|
||
DBRef expected = new DBRef (colname, id); | ||
Assert.AreEqual (expected, DBRef.FromDocument (doc)); | ||
} | ||
|
||
[Test] | ||
public void TestFromIncompleteDocumentThrowsArguementException (){ | ||
bool thrown = false; | ||
try { | ||
DBRef.FromDocument (new Document ().Add(DBRef.RefName, "tests")); | ||
} catch (ArgumentException) { | ||
thrown = true; | ||
} | ||
Assert.IsTrue (thrown, "ArgumentException should have been thrown when trying to create convert from incomplete document"); | ||
|
||
} | ||
|
||
[Test] | ||
public void TestIsDocumentDBRef (){ | ||
Document 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)); | ||
} | ||
|
||
[Test] | ||
public void TestCastsToDocument (){ | ||
OidGenerator ogen = new OidGenerator (); | ||
DBRef dref = new DBRef ("tests.dbrefs", ogen.Generate ()); | ||
Document doc = (Document)dref; | ||
Assert.AreEqual (dref.CollectionName, doc[DBRef.RefName]); | ||
} | ||
} | ||
} | ||
namespace MongoDB.UnitTests | ||
{ | ||
[TestFixture] | ||
public class TestDBRef | ||
{ | ||
[Test] | ||
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); | ||
} | ||
|
||
[Test] | ||
public void CanBeXmlSerialized() | ||
{ | ||
var source = new DBRef("collection", "id"); | ||
var serializer = new XmlSerializer(typeof(Oid)); | ||
|
||
var writer = new StringWriter(); | ||
serializer.Serialize(writer, source); | ||
var dest = (DBRef)serializer.Deserialize(new StringReader(writer.ToString())); | ||
|
||
Assert.AreEqual(source, dest); | ||
} | ||
|
||
[Test] | ||
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]); | ||
} | ||
|
||
[Test] | ||
public void TestEqualsAreSameObject() | ||
{ | ||
var r = new DBRef("tests", "2312314"); | ||
Assert.AreEqual(r, r); | ||
} | ||
|
||
[Test] | ||
public void TestEqualsUsingSameValues() | ||
{ | ||
const string colname = "tests"; | ||
var id = "32312312"; | ||
var r = new DBRef(colname, id); | ||
var r2 = new DBRef(colname, id); | ||
|
||
Assert.AreEqual(r, r2); | ||
} | ||
|
||
[Test] | ||
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)); | ||
} | ||
|
||
[Test] | ||
[ExpectedException(typeof(ArgumentException))] | ||
public void TestFromIncompleteDocumentThrowsArguementException() | ||
{ | ||
DBRef.FromDocument(new Document(DBRef.RefName, "tests")); | ||
} | ||
|
||
[Test] | ||
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)); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,39 @@ | ||
using System.IO; | ||
using System.Runtime.Serialization.Formatters.Binary; | ||
using System.Xml.Serialization; | ||
using NUnit.Framework; | ||
|
||
namespace MongoDB.UnitTests | ||
{ | ||
[TestFixture] | ||
public class TestMongoRegex | ||
{ | ||
[Test] | ||
public void CanBeBinarySerialized() | ||
{ | ||
var source = new MongoRegex("exp", "opt"); | ||
var formatter = new BinaryFormatter(); | ||
|
||
var mem = new MemoryStream(); | ||
formatter.Serialize(mem, source); | ||
mem.Position = 0; | ||
|
||
var dest = (MongoRegex)formatter.Deserialize(mem); | ||
|
||
Assert.AreEqual(source, dest); | ||
} | ||
|
||
[Test] | ||
public void CanBeXmlSerialized() | ||
{ | ||
var source = new MongoRegex("exp", "opt"); | ||
var serializer = new XmlSerializer(typeof(Oid)); | ||
|
||
var writer = new StringWriter(); | ||
serializer.Serialize(writer, source); | ||
var dest = (MongoRegex)serializer.Deserialize(new StringReader(writer.ToString())); | ||
|
||
Assert.AreEqual(source, dest); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.