public void SerializeRoundTrip()
        {
            var settings = new JsonSerializerSettings {
                TypeNameHandling = TypeNameHandling.All
            };

            var createdAt = new DateTime(2020, 3, 19, 10, 0, 0);
            var updatedAt = new DateTime(2020, 3, 19, 10, 15, 0);

            var item = new BenzingaNews
            {
                Id        = 1,
                Symbol    = Symbols.SPY,
                Title     = "title",
                CreatedAt = createdAt,
                UpdatedAt = updatedAt,
            };

            var serialized   = JsonConvert.SerializeObject(item, settings);
            var deserialized = JsonConvert.DeserializeObject <BenzingaNews>(serialized, settings);

            Assert.AreEqual(1, deserialized.Id);
            Assert.AreEqual(Symbols.SPY, deserialized.Symbol);
            Assert.AreEqual("title", deserialized.Title);
            Assert.AreEqual(createdAt, deserialized.CreatedAt);
            Assert.AreEqual(updatedAt, deserialized.UpdatedAt);
            Assert.AreEqual(updatedAt, deserialized.Time);
            Assert.AreEqual(updatedAt, deserialized.EndTime);
        }
        public void SerializeWithConverterNullValuesIgnored()
        {
            var date = new DateTime(2020, 3, 19);

            var converter = new BenzingaNewsJsonConverter();
            var instance  = new BenzingaNews
            {
                Author     = "",
                Categories = new List <string>(),
                Contents   = "",
                CreatedAt  = date,
                Id         = default(int),
                Symbol     = null,
                Symbols    = new List <Symbol>
                {
                    Symbol.Create("AAPL", SecurityType.Equity, QuantConnect.Market.USA),
                    Symbol.Create("SPY", SecurityType.Equity, QuantConnect.Market.USA)
                },
                Tags = new List <string>
                {
                    "Politics"
                },
                Teaser    = "",
                Time      = date,
                Title     = "",
                UpdatedAt = date,
            };

            var expectedSerialized = @"{""id"":0,""author"":"""",""created"":""2020-03-19T00:00:00Z"",""updated"":""2020-03-19T00:00:00Z"",""title"":"""",""teaser"":"""",""body"":"""",""channels"":[],""stocks"":[{""name"":""AAPL""},{""name"":""SPY""}],""tags"":[{""name"":""Politics""}],""EndTime"":""2020-03-19T00:00:00Z"",""DataType"":0,""IsFillForward"":false,""Time"":""2020-03-19T00:00:00Z"",""Value"":0.0,""Price"":0.0}";
            var actualSerialized   = JsonConvert.SerializeObject(instance, new JsonSerializerSettings
            {
                Converters           = new[] { converter },
                DateTimeZoneHandling = DateTimeZoneHandling.Utc,
                Formatting           = Formatting.None
            });

            Assert.AreEqual(expectedSerialized, actualSerialized);

            var instanceRoundTripActual = JsonConvert.DeserializeObject <BenzingaNews>(actualSerialized, converter);

            Assert.AreEqual(instance.Author, instanceRoundTripActual.Author);
            Assert.IsTrue(instance.Categories.SequenceEqual(instanceRoundTripActual.Categories));
            Assert.AreEqual(instance.Contents, instanceRoundTripActual.Contents);
            Assert.AreEqual(instance.CreatedAt, instanceRoundTripActual.CreatedAt);
            Assert.AreEqual(instance.Id, instanceRoundTripActual.Id);
            Assert.AreEqual(instance.Symbol, instanceRoundTripActual.Symbol);
            Assert.IsTrue(instance.Symbols.SequenceEqual(instanceRoundTripActual.Symbols));
            Assert.IsTrue(instance.Tags.SequenceEqual(instanceRoundTripActual.Tags));
            Assert.AreEqual(instance.Teaser, instanceRoundTripActual.Teaser);
            Assert.AreEqual(instance.Time, instanceRoundTripActual.Time);
            Assert.AreEqual(instance.Title, instanceRoundTripActual.Title);
            Assert.AreEqual(instance.UpdatedAt, instanceRoundTripActual.UpdatedAt);
        }
Ejemplo n.º 3
0
        public void BenzingaNewsEmptyTagsSymbolsRoundTrip()
        {
            var symbol = Symbol.CreateBase(
                typeof(BenzingaNews),
                Symbol.Create("AAPL", SecurityType.Equity, Market.USA),
                Market.USA);

            var news = new BenzingaNews
            {
                Id         = 1000,
                Author     = "Benzinga",
                DataType   = MarketDataType.Base,
                CreatedAt  = DateTime.UtcNow,
                UpdatedAt  = DateTime.UtcNow,
                Title      = "Round Trip To Planet Protobuf Successful",
                Teaser     = "Round trip to planet Protobuf is successful, ushering us into a new era for mining",
                Contents   = "Round trip to planet Protobuf is successful, ushering us into a new era for mining",
                Categories = new List <string>
                {
                    "aerospace",
                    "technology"
                },
                Symbols = new List <Symbol>(),
                Tags    = new List <string>(),

                Time   = DateTime.UtcNow,
                Symbol = symbol
            };

            var serializedNews = news.ProtobufSerialize();

            using (var stream = new MemoryStream(serializedNews))
            {
                var result = (BenzingaNews)Serializer.Deserialize <IEnumerable <BaseData> >(stream).First();

                Assert.AreEqual(news.Id, result.Id);
                Assert.AreEqual(news.Author, result.Author);
                Assert.AreEqual(news.DataType, result.DataType);
                Assert.AreEqual(news.CreatedAt, result.CreatedAt);
                Assert.AreEqual(news.UpdatedAt, result.UpdatedAt);
                Assert.AreEqual(news.Title, result.Title);
                Assert.AreEqual(news.Teaser, result.Teaser);
                Assert.AreEqual(news.Contents, result.Contents);
                Assert.IsTrue(news.Categories.SequenceEqual(result.Categories));
                Assert.IsTrue(news.Symbols.SequenceEqual(result.Symbols));
                Assert.IsTrue(news.Tags.SequenceEqual(result.Tags));
                Assert.AreEqual(news.Time, result.Time);
                Assert.AreEqual(news.EndTime, result.EndTime);
            }
        }
Ejemplo n.º 4
0
        public void BenzingaNewsRoundTrip()
        {
            var symbol = Symbol.CreateBase(
                typeof(BenzingaNews),
                Symbol.Create("AAPL", SecurityType.Equity, Market.USA),
                Market.USA);

            var news = new BenzingaNews
            {
                Id         = 1000,
                Author     = "Benzinga",
                DataType   = MarketDataType.Base,
                CreatedAt  = DateTime.UtcNow,
                UpdatedAt  = DateTime.UtcNow,
                Title      = "Round Trip To Planet Protobuf Successful",
                Teaser     = "Round trip to planet Protobuf is successful, ushering us into a new era for mining",
                Contents   = "Round trip to planet Protobuf is successful, ushering us into a new era for mining",
                Categories = new List <string>
                {
                    "aerospace",
                    "technology"
                },
                Symbols = new List <Symbol>
                {
                    Symbol.Create("GOOG", SecurityType.Equity, Market.USA),
                    Symbol.Create("CBS", SecurityType.Equity, Market.USA),
                    Symbol.Create("GLD", SecurityType.Equity, Market.USA)
                },
                Tags = new List <string>
                {
                    "mining",
                    "space",
                    "aero-space",
                    "technology"
                },

                Time   = DateTime.UtcNow,
                Symbol = symbol
            };
        }
        public void ReaderDeserializesInUtc()
        {
            var date = new DateTime(2020, 3, 19);
            var spy  = Symbol.Create("SPY", SecurityType.Equity, QuantConnect.Market.USA);

            var converter = new BenzingaNewsJsonConverter();
            var instance  = new BenzingaNews
            {
                Author     = "",
                Categories = new List <string>(),
                Contents   = "",
                CreatedAt  = date,
                Id         = default(int),
                Symbol     = spy,
                Symbols    = new List <Symbol>
                {
                    Symbol.Create("AAPL", SecurityType.Equity, QuantConnect.Market.USA),
                    Symbol.Create("SPY", SecurityType.Equity, QuantConnect.Market.USA)
                },
                Tags = new List <string>
                {
                    "Politics"
                },
                Teaser    = "",
                Time      = date,
                Title     = "",
                UpdatedAt = date,
            };

            var serialized = JsonConvert.SerializeObject(instance, new JsonSerializerSettings
            {
                Converters           = new[] { converter },
                Formatting           = Formatting.None,
                DateTimeZoneHandling = DateTimeZoneHandling.Utc
            });

            var config = new SubscriptionDataConfig(
                typeof(BenzingaNews),
                spy,
                Resolution.Minute,
                TimeZones.Utc,
                TimeZones.Utc,
                true,
                false,
                false);

            var news = new BenzingaNews();
            var instanceRoundTripActual = (BenzingaNews)news.Reader(config, serialized, default(DateTime), false);

            Assert.AreEqual(instance.Author, instanceRoundTripActual.Author);
            Assert.IsTrue(instance.Categories.SequenceEqual(instanceRoundTripActual.Categories));
            Assert.AreEqual(instance.Contents, instanceRoundTripActual.Contents);
            Assert.AreEqual(instance.CreatedAt, instanceRoundTripActual.CreatedAt);
            Assert.AreEqual(instance.Id, instanceRoundTripActual.Id);
            Assert.AreEqual(instance.Symbol, instanceRoundTripActual.Symbol);
            Assert.IsTrue(instance.Symbols.SequenceEqual(instanceRoundTripActual.Symbols));
            Assert.IsTrue(instance.Tags.SequenceEqual(instanceRoundTripActual.Tags));
            Assert.AreEqual(instance.Teaser, instanceRoundTripActual.Teaser);
            Assert.AreEqual(instance.Time, instanceRoundTripActual.Time);
            Assert.AreEqual(instance.Title, instanceRoundTripActual.Title);
            Assert.AreEqual(instance.UpdatedAt, instanceRoundTripActual.UpdatedAt);
        }