public static BsonType Create(BsonDataType type) { BsonType ret = null; if(type == BsonDataType.Number){ ret = new BsonNumber(); }else if(type == BsonDataType.Number){ throw new NotImplementedException(); }else if(type == BsonDataType.String){ ret = new BsonString(); }else if(type == BsonDataType.Obj){ ret = new BsonDocument(); }else if(type == BsonDataType.Array){ ret = new BsonArray(); }else if(type == BsonDataType.Integer){ ret = new BsonInteger(); }else if(type == BsonDataType.Long){ ret = new BsonLong(); }else if(type == BsonDataType.Boolean){ ret = new BsonBoolean(); }else if(type == BsonDataType.Oid){ ret = new BsonOid(); }else if(type == BsonDataType.Date){ ret = new BsonDate(); }else if(type == BsonDataType.Regex){ ret = new BsonRegex(); }else{ throw new ArgumentOutOfRangeException("Type: " + type + " not recognized"); } return ret; }
public void TestToNative() { DateTime now = DateTime.Now.ToUniversalTime(); BsonDate bd = new BsonDate(now); DateTime bnow = (DateTime)bd.ToNative(); Assert.AreEqual(now.Date,bnow.Date, "Native conversion of date failed."); //.Net uses fractional milliseconds so there is a precision loss. //Just test the hour, minute, second, and milliseconds Assert.AreEqual(now.Hour, bnow.Hour, "Time differed"); Assert.AreEqual(now.Minute, bnow.Minute, "Time differed"); Assert.AreEqual(now.Second, bnow.Second, "Time differed"); Assert.AreEqual(now.Millisecond, bnow.Millisecond, "Time differed"); }
public static BsonType Create(BsonDataType type) { BsonType ret = null; if(type == BsonDataType.Number){ ret = new BsonNumber(); }else if(type == BsonDataType.Number){ throw new NotImplementedException(); }else if(type == BsonDataType.String){ ret = new BsonString(); }else if(type == BsonDataType.Obj){ ret = new BsonDocument(); }else if(type == BsonDataType.Array){ ret = new BsonArray(); }else if(type == BsonDataType.Integer){ ret = new BsonInteger(); }else if(type == BsonDataType.Long){ ret = new BsonLong(); }else if(type == BsonDataType.Boolean){ ret = new BsonBoolean(); }else if(type == BsonDataType.Oid){ ret = new BsonOid(); }else if(type == BsonDataType.Date){ ret = new BsonDate(); }else if(type == BsonDataType.Regex){ ret = new BsonRegex(); }else if(type == BsonDataType.Undefined){ ret = new BsonUndefined(); }else if(type == BsonDataType.Null){ ret = new BsonNull(); }else if(type == BsonDataType.Code){ ret = new BsonCode(); }else if(type == BsonDataType.CodeWScope){ ret = new BsonCodeWScope(); }else{ string typename = Enum.GetName(typeof(BsonDataType), type); throw new ArgumentOutOfRangeException("type",typename + "is not recognized"); } return ret; }
public void TestPosixEpochConvertsTo1_1_1970() { long epoch = 0; BsonDate bepoch = new BsonDate(epoch); Assert.AreEqual(0, bepoch.Val); }
public void TestNet1_1_1970IsZero() { DateTime nepoch = new DateTime(1970,1,1,0,0,0,DateTimeKind.Utc); BsonDate bd = new BsonDate(nepoch); Assert.AreEqual(0, bd.Val); }
public void TestConversionOfNow() { BsonDate bd1 = new BsonDate(DateTime.Now); BsonDate bd2 = new BsonDate(bd1.Val); Assert.AreEqual(bd1.Val, bd2.Val, "Dates weren't the same value."); }