public void NpgsqlInet() { var v = new NpgsqlInet(IPAddress.Parse("2001:1db8:85a3:1142:1000:8a2e:1370:7334"), 32); Assert.That(v.ToString(), Is.EqualTo("2001:1db8:85a3:1142:1000:8a2e:1370:7334/32")); Assert.That(v != null); // #776 }
public void Cidr() { var expectedInet = new NpgsqlInet("192.168.1.0/24"); var cmd = new NpgsqlCommand("SELECT '192.168.1.0/24'::CIDR", Conn); var reader = cmd.ExecuteReader(); reader.Read(); // Regular type (IPAddress) Assert.That(reader.GetFieldType(0), Is.EqualTo(typeof(NpgsqlInet))); Assert.That(reader.GetFieldValue <NpgsqlInet>(0), Is.EqualTo(expectedInet)); Assert.That(reader[0], Is.EqualTo(expectedInet)); Assert.That(reader.GetValue(0), Is.EqualTo(expectedInet)); Assert.That(reader.GetString(0), Is.EqualTo("192.168.1.0/24")); Assert.That(reader.GetFieldType(0), Is.EqualTo(typeof(NpgsqlInet))); reader.Dispose(); cmd.Dispose(); }
public void InetV6() { const string addr = "2001:1db8:85a3:1142:1000:8a2e:1370:7334"; var expectedIp = IPAddress.Parse(addr); var expectedInet = new NpgsqlInet(expectedIp, 24); var cmd = new NpgsqlCommand("SELECT @p1, @p2, @p3, @p4", Conn); var p1 = new NpgsqlParameter("p1", NpgsqlDbType.Inet) { Value = expectedInet }; var p2 = new NpgsqlParameter { ParameterName = "p2", Value = expectedInet }; var p3 = new NpgsqlParameter("p3", NpgsqlDbType.Inet) { Value = expectedIp }; var p4 = new NpgsqlParameter { ParameterName = "p4", Value = expectedIp }; cmd.Parameters.Add(p1); cmd.Parameters.Add(p2); cmd.Parameters.Add(p3); cmd.Parameters.Add(p4); var reader = cmd.ExecuteReader(); reader.Read(); for (var i = 0; i < 2; i++) { // Regular type (IPAddress) Assert.That(reader.GetFieldType(i), Is.EqualTo(typeof(IPAddress))); Assert.That(reader.GetFieldValue <IPAddress>(i), Is.EqualTo(expectedIp)); Assert.That(reader[i], Is.EqualTo(expectedIp)); Assert.That(reader.GetValue(i), Is.EqualTo(expectedIp)); Assert.That(reader.GetString(i), Is.EqualTo(addr + "/24")); Assert.That(reader.GetFieldType(i), Is.EqualTo(typeof(IPAddress))); // Provider-specific type (NpgsqlInet) Assert.That(reader.GetProviderSpecificFieldType(i), Is.EqualTo(typeof(NpgsqlInet))); Assert.That(reader.GetProviderSpecificValue(i), Is.EqualTo(expectedInet)); Assert.That(reader.GetFieldValue <NpgsqlInet>(i), Is.EqualTo(expectedInet)); Assert.That(reader.GetString(i), Is.EqualTo(expectedInet.ToString())); Assert.That(reader.GetProviderSpecificFieldType(i), Is.EqualTo(typeof(NpgsqlInet))); } for (var i = 2; i < 4; i++) { // Regular type (IPAddress) Assert.That(reader.GetFieldType(i), Is.EqualTo(typeof(IPAddress))); Assert.That(reader.GetFieldValue <IPAddress>(i), Is.EqualTo(expectedIp)); Assert.That(reader[i], Is.EqualTo(expectedIp)); Assert.That(reader.GetValue(i), Is.EqualTo(expectedIp)); Assert.That(reader.GetFieldType(i), Is.EqualTo(typeof(IPAddress))); // Provider-specific type (NpgsqlInet) Assert.That(reader.GetProviderSpecificFieldType(i), Is.EqualTo(typeof(NpgsqlInet))); Assert.That(reader.GetProviderSpecificValue(i), Is.EqualTo(new NpgsqlInet(expectedIp))); Assert.That(reader.GetFieldValue <NpgsqlInet>(i), Is.EqualTo(new NpgsqlInet(expectedIp))); Assert.That(reader.GetString(i), Is.EqualTo(new NpgsqlInet(expectedIp).ToString())); Assert.That(reader.GetProviderSpecificFieldType(i), Is.EqualTo(typeof(NpgsqlInet))); } reader.Dispose(); cmd.Dispose(); }
public async Task InetV6() { using (var conn = await OpenConnectionAsync()) using (var cmd = new NpgsqlCommand("SELECT @p1, @p2, @p3, @p4, @p5, @p6", conn)) { const string addr = "2001:1db8:85a3:1142:1000:8a2e:1370:7334"; var expectedIp = IPAddress.Parse(addr); var expectedTuple = (Address : expectedIp, Subnet : 24); var expectedNpgsqlInet = new NpgsqlInet(expectedIp, 24); cmd.Parameters.Add(new NpgsqlParameter("p1", NpgsqlDbType.Inet) { Value = expectedIp }); cmd.Parameters.Add(new NpgsqlParameter { ParameterName = "p2", Value = expectedIp }); cmd.Parameters.Add(new NpgsqlParameter("p3", NpgsqlDbType.Inet) { Value = expectedTuple }); cmd.Parameters.Add(new NpgsqlParameter { ParameterName = "p4", Value = expectedTuple }); cmd.Parameters.Add(new NpgsqlParameter("p5", NpgsqlDbType.Inet) { Value = expectedNpgsqlInet }); cmd.Parameters.Add(new NpgsqlParameter { ParameterName = "p6", Value = expectedNpgsqlInet }); using (var reader = await cmd.ExecuteReaderAsync()) { reader.Read(); // Address only, no subnet for (var i = 0; i < 2; i++) { // Regular type (IPAddress) Assert.That(reader.GetFieldType(i), Is.EqualTo(typeof(IPAddress))); Assert.That(reader.GetFieldValue <IPAddress>(i), Is.EqualTo(expectedIp)); Assert.That(reader[i], Is.EqualTo(expectedIp)); Assert.That(reader.GetValue(i), Is.EqualTo(expectedIp)); Assert.That(reader.GetFieldType(i), Is.EqualTo(typeof(IPAddress))); // Provider-specific type (ValueTuple<IPAddress, int>) Assert.That(reader.GetProviderSpecificFieldType(i), Is.EqualTo(typeof((IPAddress, int)))); Assert.That(reader.GetProviderSpecificValue(i), Is.EqualTo((expectedIp, 128))); Assert.That(reader.GetFieldValue <NpgsqlInet>(i), Is.EqualTo(new NpgsqlInet(expectedIp))); } // Address and subnet for (var i = 2; i < 6; i++) { // Regular type (IPAddress) Assert.That(reader.GetFieldType(i), Is.EqualTo(typeof(IPAddress))); Assert.That(reader.GetFieldValue <IPAddress>(i), Is.EqualTo(expectedIp)); Assert.That(reader[i], Is.EqualTo(expectedIp)); Assert.That(reader.GetValue(i), Is.EqualTo(expectedIp)); Assert.That(reader.GetFieldType(i), Is.EqualTo(typeof(IPAddress))); // Provider-specific type (NpgsqlInet) Assert.That(reader.GetProviderSpecificFieldType(i), Is.EqualTo(typeof((IPAddress, int)))); Assert.That(reader.GetProviderSpecificValue(i), Is.EqualTo(expectedTuple)); Assert.That(reader.GetFieldValue <NpgsqlInet>(i), Is.EqualTo(expectedNpgsqlInet)); } } } }
public void InetV4() { using (var conn = OpenConnection()) using (var cmd = new NpgsqlCommand("SELECT @p1, @p2, @p3, @p4", conn)) { var expectedIp = IPAddress.Parse("192.168.1.1"); var expectedInet = new NpgsqlInet(expectedIp, 24); var p1 = new NpgsqlParameter("p1", NpgsqlDbType.Inet) { Value = expectedInet }; var p2 = new NpgsqlParameter { ParameterName = "p2", Value = expectedInet }; var p3 = new NpgsqlParameter("p3", NpgsqlDbType.Inet) { Value = expectedIp }; var p4 = new NpgsqlParameter { ParameterName = "p4", Value = expectedIp }; cmd.Parameters.Add(p1); cmd.Parameters.Add(p2); cmd.Parameters.Add(p3); cmd.Parameters.Add(p4); using (var reader = cmd.ExecuteReader()) { reader.Read(); for (var i = 0; i < 2; i++) { // Regular type (IPAddress) Assert.That(reader.GetFieldType(i), Is.EqualTo(typeof(IPAddress))); Assert.That(reader.GetFieldValue <IPAddress>(i), Is.EqualTo(expectedIp)); Assert.That(reader[i], Is.EqualTo(expectedIp)); Assert.That(reader.GetValue(i), Is.EqualTo(expectedIp)); Assert.That(reader.GetFieldType(i), Is.EqualTo(typeof(IPAddress))); // Provider-specific type (NpgsqlInet) Assert.That(reader.GetProviderSpecificFieldType(i), Is.EqualTo(typeof(NpgsqlInet))); Assert.That(reader.GetProviderSpecificValue(i), Is.EqualTo(expectedInet)); Assert.That(reader.GetFieldValue <NpgsqlInet>(i), Is.EqualTo(expectedInet)); Assert.That(reader.GetString(i), Is.EqualTo(expectedInet.ToString())); Assert.That(reader.GetProviderSpecificFieldType(i), Is.EqualTo(typeof(NpgsqlInet))); } for (var i = 2; i < 4; i++) { // Regular type (IPAddress) Assert.That(reader.GetFieldType(i), Is.EqualTo(typeof(IPAddress))); Assert.That(reader.GetFieldValue <IPAddress>(i), Is.EqualTo(expectedIp)); Assert.That(reader[i], Is.EqualTo(expectedIp)); Assert.That(reader.GetValue(i), Is.EqualTo(expectedIp)); Assert.That(reader.GetFieldType(i), Is.EqualTo(typeof(IPAddress))); // Provider-specific type (NpgsqlInet) Assert.That(reader.GetProviderSpecificFieldType(i), Is.EqualTo(typeof(NpgsqlInet))); Assert.That(reader.GetProviderSpecificValue(i), Is.EqualTo(new NpgsqlInet(expectedIp))); Assert.That(reader.GetFieldValue <NpgsqlInet>(i), Is.EqualTo(new NpgsqlInet(expectedIp))); Assert.That(reader.GetString(i), Is.EqualTo(new NpgsqlInet(expectedIp).ToString())); Assert.That(reader.GetProviderSpecificFieldType(i), Is.EqualTo(typeof(NpgsqlInet))); } } } }
public void InetV4() { using (var conn = OpenConnection()) using (var cmd = new NpgsqlCommand("SELECT @p1, @p2, @p3, @p4, @p5, @p6", conn)) { var expectedIp = IPAddress.Parse("192.168.1.1"); var expectedTuple = (Address : expectedIp, Subnet : 24); var expectedNpgsqlInet = new NpgsqlInet(expectedIp, 24); cmd.Parameters.Add(new NpgsqlParameter("p1", NpgsqlDbType.Inet) { Value = expectedIp }); cmd.Parameters.Add(new NpgsqlParameter { ParameterName = "p2", Value = expectedIp }); cmd.Parameters.Add(new NpgsqlParameter("p3", NpgsqlDbType.Inet) { Value = expectedTuple }); cmd.Parameters.Add(new NpgsqlParameter { ParameterName = "p4", Value = expectedTuple }); cmd.Parameters.Add(new NpgsqlParameter("p5", NpgsqlDbType.Inet) { Value = expectedNpgsqlInet }); cmd.Parameters.Add(new NpgsqlParameter { ParameterName = "p6", Value = expectedNpgsqlInet }); using (var reader = cmd.ExecuteReader()) { reader.Read(); // Address only, no subnet for (var i = 0; i < 2; i++) { // Regular type (IPAddress) Assert.That(reader.GetFieldType(i), Is.EqualTo(typeof(IPAddress))); Assert.That(reader.GetFieldValue <IPAddress>(i), Is.EqualTo(expectedIp)); Assert.That(reader[i], Is.EqualTo(expectedIp)); Assert.That(reader.GetValue(i), Is.EqualTo(expectedIp)); Assert.That(reader.GetFieldType(i), Is.EqualTo(typeof(IPAddress))); // Provider-specific type (ValueTuple<IPAddress, int>) Assert.That(reader.GetProviderSpecificFieldType(i), Is.EqualTo(typeof((IPAddress, int)))); Assert.That(reader.GetProviderSpecificValue(i), Is.EqualTo((expectedIp, 32))); Assert.That(reader.GetFieldValue <NpgsqlInet>(i), Is.EqualTo(new NpgsqlInet(expectedIp))); } // Address and subnet for (var i = 2; i < 6; i++) { // Regular type (IPAddress) Assert.That(reader.GetFieldType(i), Is.EqualTo(typeof(IPAddress))); Assert.That(reader.GetFieldValue <IPAddress>(i), Is.EqualTo(expectedIp)); Assert.That(reader[i], Is.EqualTo(expectedIp)); Assert.That(reader.GetValue(i), Is.EqualTo(expectedIp)); Assert.That(reader.GetFieldType(i), Is.EqualTo(typeof(IPAddress))); // Provider-specific type (NpgsqlInet) Assert.That(reader.GetProviderSpecificFieldType(i), Is.EqualTo(typeof((IPAddress, int)))); Assert.That(reader.GetProviderSpecificValue(i), Is.EqualTo(expectedTuple)); Assert.That(reader.GetFieldValue <NpgsqlInet>(i), Is.EqualTo(expectedNpgsqlInet)); } } } }