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); } }
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")); } } } }