public void Convert_NullToCompositeStruct_ReturnsDefaultInstance()
        {
            JsonSerializer serializer = new JsonSerializer();

            serializer.Converters.Add(new CompositeStructJsonConverter());

            var    expected = new CompositeStruct();
            string json     = "null";

            using (var sr = new StringReader(json))
            {
                var value = serializer.Deserialize(sr, typeof(CompositeStruct));

                Assert.AreEqual(expected, value);
            }
        }
        public void Convert_ValidStringToCompositeStruct_ReturnsInstance()
        {
            JsonSerializer serializer = new JsonSerializer();

            serializer.Converters.Add(new CompositeStructJsonConverter());

            var expected = new CompositeStruct()
            {
                Id = 1, Duration = 4.5
            };
            string json = "{ \"id\": 1, \"duration\": 4.5 }";

            using (var sr = new StringReader(json))
            {
                var value = serializer.Deserialize(sr, typeof(CompositeStruct));

                Assert.AreEqual(expected, value);
            }
        }
Exemple #3
0
        public void Struct()
        {
            using (var conn = OpenConnection())
            {
                conn.ExecuteNonQuery("CREATE TYPE pg_temp.composite_struct AS (x int, some_text text)");
                conn.ReloadTypes();
                conn.MapComposite<CompositeStruct>("composite_struct");

                var expected = new CompositeStruct {x = 8, SomeText = "foo"};
                using (var cmd = new NpgsqlCommand("SELECT @p::composite_struct", conn))
                {
                    cmd.Parameters.AddWithValue("p", expected);
                    using (var reader = cmd.ExecuteReader())
                    {
                        reader.Read();
                        var actual = reader.GetFieldValue<CompositeStruct>(0);
                        Assert.That(actual.x, Is.EqualTo(8));
                        Assert.That(actual.SomeText, Is.EqualTo("foo"));
                    }
                }
            }
        }