Пример #1
0
        public static void Test_CloneTextReader_01(string file)
        {
            FileStream fileStream = null;

            string traceFile = zpath.PathSetFileName(file, zPath.GetFileNameWithoutExtension(file) + "_out_text_clone");

            Trace.WriteLine("Test.Test_Unit.Test_Unit_PBBsonReader.Test_CloneTextReader_01()");
            Trace.WriteLine("trace to file \"{0}\"", traceFile);
            Trace.WriteLine();
            Trace.CurrentTrace.DisableBaseLog();
            Trace.CurrentTrace.AddTraceFile(traceFile, LogOptions.RazLogFile);
            try
            {
                Trace.WriteLine("Test.Test_Unit.Test_Unit_PBBsonReader.Test_CloneTextReader_01()");
                Trace.WriteLine();
                Trace.WriteLine("read file \"{0}\"", file);
                Trace.WriteLine();

                PBBsonReader.TraceLevel = 0;

                PBBsonReader reader       = new PBBsonReader(BsonReader.Create(new StreamReader(new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read), Encoding.UTF8)));
                PBBsonReader readerClone1 = null;
                int          pos1         = 0;
                int          pos          = 1;
                while (reader.Read())
                {
                    TracePBBsonReader(reader, pos++);

                    if (pos == 5)
                    {
                        Trace.WriteLine("**** create clone 1 at {0}", pos);
                        readerClone1 = reader.Clone();
                        pos1         = pos;
                    }
                }

                Trace.WriteLine();
                Trace.WriteLine("read clone 1");
                reader = readerClone1;
                pos    = pos1;
                while (reader.Read())
                {
                    TracePBBsonReader(reader, pos++);
                }
            }
            finally
            {
                if (fileStream != null)
                {
                    fileStream.Close();
                }
                Trace.CurrentTrace.EnableBaseLog();
                Trace.CurrentTrace.RemoveTraceFile(traceFile);
            }
        }
        public void TestSymbol()
        {
            var document = new BsonDocument {
                { "symbol", BsonSymbol.Create("name") }
            };

            using (var bsonReader = BsonReader.Create(document)) {
                var rehydrated = BsonDocument.ReadFrom(bsonReader);
                Assert.IsTrue(document.Equals(rehydrated));
            }
        }
        public void TestNull()
        {
            var document = new BsonDocument {
                { "maxkey", BsonNull.Value }
            };

            using (var bsonReader = BsonReader.Create(document)) {
                var rehydrated = BsonDocument.ReadFrom(bsonReader);
                Assert.IsTrue(document.Equals(rehydrated));
            }
        }
        public void TestGuid()
        {
            var document = new BsonDocument {
                { "guid", new Guid("B5F21E0C2A0D42d6AD03D827008D8AB6") }
            };

            using (var bsonReader = BsonReader.Create(document)) {
                var rehydrated = BsonDocument.ReadFrom(bsonReader);
                Assert.IsTrue(document.Equals(rehydrated));
            }
        }
        public void TestJavaScriptWithScope()
        {
            var document = new BsonDocument {
                { "f", new BsonJavaScriptWithScope("function f() { return n; }", new BsonDocument("n", 1)) }
            };

            using (var bsonReader = BsonReader.Create(document)) {
                var rehydrated = BsonDocument.ReadFrom(bsonReader);
                Assert.IsTrue(document.Equals(rehydrated));
            }
        }
        public void TestBinary()
        {
            var document = new BsonDocument {
                { "bin", new BsonBinaryData(new byte[] { 1, 2, 3 }) }
            };

            using (var bsonReader = BsonReader.Create(document)) {
                var rehydrated = BsonDocument.ReadFrom(bsonReader);
                Assert.IsTrue(document.Equals(rehydrated));
            }
        }
        public void TestTimestamp()
        {
            var document = new BsonDocument {
                { "timestamp", new BsonTimestamp(1234567890) }
            };

            using (var bsonReader = BsonReader.Create(document)) {
                var rehydrated = BsonDocument.ReadFrom(bsonReader);
                Assert.IsTrue(document.Equals(rehydrated));
            }
        }
Пример #8
0
        public void TestDouble()
        {
            var json = "1.5";

            using (bsonReader = BsonReader.Create(json)) {
                Assert.AreEqual(BsonType.Double, bsonReader.ReadBsonType());
                Assert.AreEqual(1.5, bsonReader.ReadDouble());
                Assert.AreEqual(BsonReaderState.Done, bsonReader.State);
            }
            Assert.AreEqual(json, BsonSerializer.Deserialize <double>(new StringReader(json)).ToJson());
        }
Пример #9
0
 public static IEnumerable <T> StringReader <T>(string text)
 {
     using (StringReader stringReader = new StringReader(text))
     {
         BsonReader reader = BsonReader.Create(stringReader);
         while (reader.ReadBsonType() != BsonType.EndOfDocument)
         {
             yield return(BsonSerializer.Deserialize <T>(reader));
         }
     }
 }
Пример #10
0
        public void TestNull()
        {
            var json = "null";

            using (bsonReader = BsonReader.Create(json)) {
                Assert.AreEqual(BsonType.Null, bsonReader.ReadBsonType());
                bsonReader.ReadNull();
                Assert.AreEqual(BsonReaderState.Done, bsonReader.State);
            }
            Assert.AreEqual(json, BsonSerializer.Deserialize <BsonNull>(new StringReader(json)).ToJson());
        }
Пример #11
0
        public void TestStringEmpty()
        {
            var json = "\"\"";

            using (bsonReader = BsonReader.Create(json)) {
                Assert.AreEqual(BsonType.String, bsonReader.ReadBsonType());
                Assert.AreEqual("", bsonReader.ReadString());
                Assert.AreEqual(BsonReaderState.Done, bsonReader.State);
            }
            Assert.AreEqual(json, BsonSerializer.Deserialize <string>(new StringReader(json)).ToJson());
        }
Пример #12
0
        public void TestJavaScript()
        {
            string json = "{ \"$code\" : \"function f() { return 1; }\" }";

            using (bsonReader = BsonReader.Create(json)) {
                Assert.AreEqual(BsonType.JavaScript, bsonReader.ReadBsonType());
                Assert.AreEqual("function f() { return 1; }", bsonReader.ReadJavaScript());
                Assert.AreEqual(BsonReaderState.Done, bsonReader.State);
            }
            Assert.AreEqual(json, BsonSerializer.Deserialize <BsonJavaScript>(new StringReader(json)).ToJson());
        }
Пример #13
0
        public void TestTimestamp()
        {
            var json = "{ \"$timestamp\" : NumberLong(1234) }";

            using (bsonReader = BsonReader.Create(json)) {
                Assert.AreEqual(BsonType.Timestamp, bsonReader.ReadBsonType());
                Assert.AreEqual(1234L, bsonReader.ReadTimestamp());
                Assert.AreEqual(BsonReaderState.Done, bsonReader.State);
            }
            Assert.AreEqual(json, BsonSerializer.Deserialize <BsonTimestamp>(new StringReader(json)).ToJson());
        }
Пример #14
0
        public void TestInt32()
        {
            var json = "123";

            using (bsonReader = BsonReader.Create(json)) {
                Assert.AreEqual(BsonType.Int32, bsonReader.ReadBsonType());
                Assert.AreEqual(123, bsonReader.ReadInt32());
                Assert.AreEqual(BsonReaderState.Done, bsonReader.State);
            }
            Assert.AreEqual(json, BsonSerializer.Deserialize <int>(new StringReader(json)).ToJson());
        }
Пример #15
0
        public void TestInt64NumberLong()
        {
            var json = "NumberLong(123)";

            using (bsonReader = BsonReader.Create(json)) {
                Assert.AreEqual(BsonType.Int64, bsonReader.ReadBsonType());
                Assert.AreEqual(123, bsonReader.ReadInt64());
                Assert.AreEqual(BsonReaderState.Done, bsonReader.State);
            }
            Assert.AreEqual(json, BsonSerializer.Deserialize <long>(new StringReader(json)).ToJson());
        }
Пример #16
0
 public static Dictionary <Tkey, Tvalue> AsDictionary <Tkey, Tvalue>(this BsonValue bsonValue)
 {
     using (BsonReader reader = BsonReader.Create(bsonValue.ToJson()))
     {
         var    dictionarySerializer = new DictionarySerializer <Tkey, Tvalue>();
         object result = dictionarySerializer.Deserialize(reader,
                                                          typeof(Dictionary <Tkey, Tvalue>),
                                                          new DictionarySerializationOptions());
         return((Dictionary <Tkey, Tvalue>)result);
     }
 }
Пример #17
0
        public void TestUndefined()
        {
            var json = "undefined";

            using (bsonReader = BsonReader.Create(json)) {
                Assert.AreEqual(BsonType.Undefined, bsonReader.ReadBsonType());
                bsonReader.ReadUndefined();
                Assert.AreEqual(BsonReaderState.Done, bsonReader.State);
            }
            Assert.AreEqual(json, BsonSerializer.Deserialize <BsonUndefined>(new StringReader(json)).ToJson());
        }
Пример #18
0
        public void TestDateTimeMaxBson()
        {
            var json = "new Date(9223372036854775807)";

            using (bsonReader = BsonReader.Create(json)) {
                Assert.AreEqual(BsonType.DateTime, bsonReader.ReadBsonType());
                Assert.AreEqual(9223372036854775807, bsonReader.ReadDateTime());
                Assert.AreEqual(BsonReaderState.Done, bsonReader.State);
            }
            Assert.AreEqual(json, BsonSerializer.Deserialize <BsonDateTime>(new StringReader(json)).ToJson());
        }
Пример #19
0
        public void TestBooleanTrue()
        {
            var json = "true";

            using (bsonReader = BsonReader.Create(json)) {
                Assert.AreEqual(BsonType.Boolean, bsonReader.ReadBsonType());
                Assert.AreEqual(true, bsonReader.ReadBoolean());
                Assert.AreEqual(BsonReaderState.Done, bsonReader.State);
            }
            Assert.AreEqual(json, BsonSerializer.Deserialize <bool>(new StringReader(json)).ToJson());
        }
Пример #20
0
        public void TestDateTimeStrict()
        {
            var json = "{ \"$date\" : 0 }";

            using (bsonReader = BsonReader.Create(json)) {
                Assert.AreEqual(BsonType.DateTime, bsonReader.ReadBsonType());
                Assert.AreEqual(BsonConstants.UnixEpoch, bsonReader.ReadDateTime());
                Assert.AreEqual(BsonReaderState.Done, bsonReader.State);
            }
            Assert.AreEqual(json, BsonSerializer.Deserialize <DateTime>(new StringReader(json)).ToJson());
        }
Пример #21
0
        public void TestSymbol()
        {
            var json = "{ \"$symbol\" : \"symbol\" }";

            using (bsonReader = BsonReader.Create(json)) {
                Assert.AreEqual(BsonType.Symbol, bsonReader.ReadBsonType());
                Assert.AreEqual("symbol", bsonReader.ReadSymbol());
                Assert.AreEqual(BsonReaderState.Done, bsonReader.State);
            }
            Assert.AreEqual(json, BsonSerializer.Deserialize <BsonSymbol>(new StringReader(json)).ToJson());
        }
Пример #22
0
        public void TestMinKey()
        {
            var json = "{ \"$minkey\" : 1 }";

            using (bsonReader = BsonReader.Create(json)) {
                Assert.AreEqual(BsonType.MinKey, bsonReader.ReadBsonType());
                bsonReader.ReadMinKey();
                Assert.AreEqual(BsonReaderState.Done, bsonReader.State);
            }
            Assert.AreEqual(json, BsonSerializer.Deserialize <BsonMinKey>(new StringReader(json)).ToJson());
        }
        public void TestSingleString()
        {
            BsonDocument document = new BsonDocument()
            {
                { "abc", "xyz" }
            };

            using (var bsonReader = BsonReader.Create(document)) {
                var rehydrated = BsonDocument.ReadFrom(bsonReader);
                Assert.IsTrue(document.Equals(rehydrated));
            }
        }
Пример #24
0
        //public static MongoDBRef ToDBRef(this Guid id, string href)
        //{
        //    Guard.Instance.ArgumentNotNullOrWhiteSpace(()=>href, href);

        //    return new MongoDBRef(href, BsonValue.Create(id));
        //}

        static public BsonDocument ToBsonDocument(this string from)
        {
            if (string.IsNullOrWhiteSpace(from))
            {
                return(null);
            }

            using (var reader = BsonReader.Create(from))
            {
                return(BsonDocument.ReadFrom(reader));
            }
        }
Пример #25
0
        public void TestObjectIdShell()
        {
            var json = "ObjectId(\"4d0ce088e447ad08b4721a37\")";

            using (_bsonReader = BsonReader.Create(json))
            {
                Assert.AreEqual(BsonType.ObjectId, _bsonReader.ReadBsonType());
                var objectId = _bsonReader.ReadObjectId();
                Assert.AreEqual("4d0ce088e447ad08b4721a37", objectId.ToString());
                Assert.AreEqual(BsonReaderState.Done, _bsonReader.State);
            }
            Assert.AreEqual(json, BsonSerializer.Deserialize <ObjectId>(new StringReader(json)).ToJson());
        }
        /// <summary>
        /// Deserializes the value.
        /// </summary>
        /// <param name="value">The value.</param>
        /// <returns>The deserialized value.</returns>
        public object DeserializeValue(BsonValue value)
        {
            var tempDocument = new BsonDocument("value", value);

            using (var reader = BsonReader.Create(tempDocument))
            {
                reader.ReadStartDocument();
                reader.ReadName("value");
                var deserializedValue = _serializer.Deserialize(reader, _nominalType, _serializationOptions);
                reader.ReadEndDocument();
                return(deserializedValue);
            }
        }
Пример #27
0
        public void TestArrayEmpty()
        {
            var json = "[]";

            using (bsonReader = BsonReader.Create(json)) {
                Assert.AreEqual(BsonType.Array, bsonReader.ReadBsonType());
                bsonReader.ReadStartArray();
                Assert.AreEqual(BsonType.EndOfDocument, bsonReader.ReadBsonType());
                bsonReader.ReadEndArray();
                Assert.AreEqual(BsonReaderState.Done, bsonReader.State);
            }
            Assert.AreEqual(json, BsonSerializer.Deserialize <BsonArray>(new StringReader(json)).ToJson());
        }
Пример #28
0
 private void TryLoadData()
 {
     try
     {
         BsonReader reader = BsonReader.Create(File.ReadAllText(this.settingsFileLocation));
         this.settings = BsonSerializer.Deserialize <MusicDatabaseSettings>(reader);
     }
     catch
     {
         this.settings = MusicDatabaseSettings.CreateDefault();
         this.Save();
     }
 }
Пример #29
0
        public void TestSingleString()
        {
            BsonDocument document = new BsonDocument()
            {
                { "abc", "xyz" }
            };

            using (var bsonReader = BsonReader.Create(document))
            {
                var rehydrated = (BsonDocument)BsonDocumentSerializer.Instance.Deserialize(bsonReader, typeof(BsonDocument), null);
                Assert.IsTrue(document.Equals(rehydrated));
            }
        }
        public void TestDateTime()
        {
            DateTime     jan_1_2010 = DateTime.SpecifyKind(new DateTime(2010, 1, 1), DateTimeKind.Utc);
            BsonDocument document   = new BsonDocument()
            {
                { "date", jan_1_2010 }
            };

            using (var bsonReader = BsonReader.Create(document)) {
                var rehydrated = BsonDocument.ReadFrom(bsonReader);
                Assert.IsTrue(document.Equals(rehydrated));
            }
        }