示例#1
0
		public void WhenDeserializing_ThenIgnoresNonExistentProperty()
		{
			var serializer = new UsonSerializer();
			var uson = "foo:bar";

			var json = serializer.Deserialize<QueryOptions>(uson);
		}
示例#2
0
        public void WhenDeserializing_ThenIgnoresNonExistentProperty()
        {
            var serializer = new UsonSerializer();
            var uson       = "foo:bar";

            var json = serializer.Deserialize <QueryOptions>(uson);
        }
示例#3
0
		public void WhenDeserializingIntProperty_ThenSucceeds()
		{
			var serializer = new UsonSerializer();

			var value = serializer.Deserialize<Options>("Count:25");

			Assert.Equal(25, value.Count);
		}
示例#4
0
		public void WhenDeserializingStringProperty_ThenSucceeds()
		{
			var serializer = new UsonSerializer();

			var value = serializer.Deserialize<Options>("Tag:foo");

			Assert.Equal("foo", value.Tag);
		}
示例#5
0
        public void WhenDeserializingMissingProperty_ThenSetsDefaultValue()
        {
            var serializer = new UsonSerializer();

            var value = serializer.Deserialize <Options>("");

            Assert.Equal(10, value.Count);
        }
示例#6
0
        public void WhenDeserializingIntProperty_ThenSucceeds()
        {
            var serializer = new UsonSerializer();

            var value = serializer.Deserialize <Options>("Count:25");

            Assert.Equal(25, value.Count);
        }
示例#7
0
        public void WhenDeserializingStringProperty_ThenSucceeds()
        {
            var serializer = new UsonSerializer();

            var value = serializer.Deserialize <Options>("Tag:foo");

            Assert.Equal("foo", value.Tag);
        }
示例#8
0
		public void WhenDeserializingMissingProperty_ThenSetsDefaultValue()
		{
			var serializer = new UsonSerializer();

			var value = serializer.Deserialize<Options>("");

			Assert.Equal(10, value.Count);
		}
示例#9
0
        public void WhenDeserializing_ThenLastSetterWins()
        {
            var serializer = new UsonSerializer();
            var uson       = "tag:wpf owner.id:25 parent.Name:kzu owner.id:10";

            var json = serializer.Deserialize <QueryOptions>(uson);

            Assert.Equal(10, json.Owner.Id);
        }
示例#10
0
		public void WhenDeserializing_ThenLastSetterWins()
		{
			var serializer = new UsonSerializer();
			var uson = "tag:wpf owner.id:25 parent.Name:kzu owner.id:10";

			var json = serializer.Deserialize<QueryOptions>(uson);

			Assert.Equal(10, json.Owner.Id);
		}
示例#11
0
        public void WhenSerializingDefaultPropertyName_ThenDoesNotRenderIt()
        {
            var serializer = new UsonSerializer();

            var json = serializer.Serialize(new QueryOptions {
                Content = { "foo", "bar" }
            });

            Assert.False(json.Contains("Content"));
        }
示例#12
0
		public void WhenDeserializing_ThenReadsJson()
		{
			var serializer = new UsonSerializer();
			var uson = "tag:wpf owner.id:25 parent.Name:kzu";

			var json = serializer.Deserialize<QueryOptions>(uson);

			Assert.Equal("wpf", json.Tag);
			Assert.Equal(25, json.Owner.Id);
			Assert.Equal("kzu", json.Parent.Name);
		}
示例#13
0
        public void WhenDeserializing_ThenAddsValuesToList()
        {
            var serializer = new UsonSerializer();
            var uson       = "content:foo content:bar";

            var json = serializer.Deserialize <QueryOptions>(uson);

            Assert.Equal(2, json.Content.Count);
            Assert.Equal("foo", json.Content[0]);
            Assert.Equal("bar", json.Content[1]);
        }
示例#14
0
        public void WhenDeserializing_ThenReadsJson()
        {
            var serializer = new UsonSerializer();
            var uson       = "tag:wpf owner.id:25 parent.Name:kzu";

            var json = serializer.Deserialize <QueryOptions>(uson);

            Assert.Equal("wpf", json.Tag);
            Assert.Equal(25, json.Owner.Id);
            Assert.Equal("kzu", json.Parent.Name);
        }
示例#15
0
        public void WhenDeserializingTimespan_ThenParsesValue()
        {
            var serializer = new UsonSerializer();
            var uson       = "timeout:\"00:05:00\"";

            var json = serializer.Deserialize <QueryOptions>(uson);

            json.Timeout = TimeSpan.FromMinutes(5);

            Assert.Equal(TimeSpan.FromMinutes(5), json.Timeout);
        }
示例#16
0
        public void WhenDeserializingWithoutPropertyName_ThenAddsValuesToDefaultProperty()
        {
            var serializer = new UsonSerializer();
            var uson       = "foo bar";

            var json = serializer.Deserialize <QueryOptions>(uson);

            Assert.Equal(2, json.Content.Count);
            Assert.Equal("foo", json.Content[0]);
            Assert.Equal("bar", json.Content[1]);
        }
示例#17
0
        public void WhenWritingAllValues_ThenSucceeds()
        {
            var settings = new JsonSerializerSettings
            {
                NullValueHandling    = NullValueHandling.Include,
                DefaultValueHandling = DefaultValueHandling.Include,
            };

            var uson = UsonSerializer.Create(settings);

            Console.WriteLine(uson.Serialize(new Options()));
        }
示例#18
0
        public void WhenSerializing_ThenRoundrips()
        {
            var options = new QueryOptions
            {
                Content = { "foo", "bar" },
                Tag     = "wpf",
                Max     = 10,
                Owner   = new User
                {
                    Id   = 5,
                    Name = "kzu",
                },
            };

            var json = new UsonSerializer().Serialize(options);

            var value = new UsonSerializer().Deserialize <QueryOptions>(json);

            Assert.Equal(options.Content.Count, value.Content.Count);
            Assert.Equal(options.Tag, value.Tag);
            Assert.Equal(options.Max, value.Max);
            Assert.Equal(options.Owner.Id, value.Owner.Id);
            Assert.Equal(options.Owner.Name, value.Owner.Name);
        }
示例#19
0
		public void WhenDeserializingWithoutPropertyName_ThenAddsValuesToDefaultProperty()
		{
			var serializer = new UsonSerializer();
			var uson = "foo bar";

			var json = serializer.Deserialize<QueryOptions>(uson);

			Assert.Equal(2, json.Content.Count);
			Assert.Equal("foo", json.Content[0]);
			Assert.Equal("bar", json.Content[1]);
		}
示例#20
0
		public void WhenDeserializing_ThenAddsValuesToList()
		{
			var serializer = new UsonSerializer();
			var uson = "content:foo content:bar";

			var json = serializer.Deserialize<QueryOptions>(uson);

			Assert.Equal(2, json.Content.Count);
			Assert.Equal("foo", json.Content[0]);
			Assert.Equal("bar", json.Content[1]);
		}
示例#21
0
		public void WhenSerializingDefaultPropertyName_ThenDoesNotRenderIt()
		{
			var serializer = new UsonSerializer();

			var json = serializer.Serialize(new QueryOptions { Content = { "foo", "bar" } });

			Assert.False(json.Contains("Content"));
		}
示例#22
0
		public void WhenSerializing_ThenRoundrips()
		{
			var options = new QueryOptions
			{
				Content = { "foo", "bar" },
				Tag = "wpf",
				Max = 10,
				Owner = new User
				{
					Id = 5,
					Name = "kzu",
				},
			};

			var json = new UsonSerializer().Serialize(options);

			var value = new UsonSerializer().Deserialize<QueryOptions>(json);

			Assert.Equal(options.Content.Count, value.Content.Count);
			Assert.Equal(options.Tag, value.Tag);
			Assert.Equal(options.Max, value.Max);
			Assert.Equal(options.Owner.Id, value.Owner.Id);
			Assert.Equal(options.Owner.Name, value.Owner.Name);
		}
示例#23
0
		public void WhenDeserializingTimespan_ThenParsesValue()
		{
			var serializer = new UsonSerializer();
			var uson = "timeout:\"00:05:00\"";

			var json = serializer.Deserialize<QueryOptions>(uson);

			json.Timeout = TimeSpan.FromMinutes(5);

			Assert.Equal(TimeSpan.FromMinutes(5), json.Timeout);
		}